首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别系统的资源界限

如何识别系统的资源界限
EN

Stack Overflow用户
提问于 2020-12-15 03:48:12
回答 1查看 75关注 0票数 0

我想测试以上不同存储库(即SSD-1、SSD-2、HDD-1、HDD-2.)的性能。为了暴露不同存储上的性能差异,我希望使数据库工作负载磁盘I/O密集型(使用写密集型工作负载)。

但是如何确认系统被磁盘I/O限制,而不是像CPU、内存访问等其他东西。简单地使用top来查看CPU的使用情况(Usage-in-percent/CPU-cores < 100%)有效吗?

例如,我跑

代码语言:javascript
复制
sysbench fileio --file-num=16 --file-total-size=2G --file-fsync-all=on --file-test-mode=seqwr --time=30 run

并使用top进行监控

代码语言:javascript
复制
PID    COMMAND      %CPU TIME     #TH   #WQ  #PORT MEM    PURG   CMPRS  PGRP
33998  sysbench     54.8 00:03.29 2/1   0    11    1316K  0B     0B     3399

这是否意味着系统受到磁盘IO的限制?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-12-15 06:21:20

你的问题似乎有点含糊。您是在问如何识别通用系统的瓶颈,或者仅仅是一个特定的数据库,还是不同驱动器的磁盘性能?

我想说,设计一个比其他东西更强调磁盘的基准是可能的,但可能不可能提出一个识别系统瓶颈的通用算法。

针对特定应用程序设计/设计特定基准的方式通常至少涉及到对应用程序正在做什么的高度熟悉,然后解释为什么特定的基准测试强调资源A而不是资源B。您可能需要做其他控制基准来得出资源B确实没有瓶颈,而且没有其他的东西也是.和所有工程一样,迭代是你的朋友。

如果你想知道“这个特别的SSD在多大程度上提高了我的postgres数据库的性能?”这实际上取决于应用程序工作负载。答案可能一点也没有,或者很多。

我能告诉你的是,sysbench fileio基准将对这个问题一言不发。

相反,sysbench OLTP基准测试可能不会告诉您多少关于“磁盘约束数据库工作负载”的信息,因为我认为它通常会做太多的表锁定和锁定争用,从而使其受到磁盘约束。

例如,我最近做的一些基准测试--我发现pg13能够每秒执行将近400k (是的,将近50万)100个字节的记录插入,在一台老的8核心游戏pc上,与消费SSD相比,它比sysbench OLTP基准所报告的每秒1000个事务要高得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65299738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档