机器性能指标cpu/内存/磁盘IO/网络带宽

本文详细介绍了在压力测试(压测)过程中如何观察和分析CPU负载、内存使用、磁盘IO及网络流量情况。通过Linux的top命令监控CPU和内存,使用dstat命令查看磁盘IO和网络流量,以确保系统在压测时的稳定性和性能。当各项指标接近或达到极限时,应避免进一步增加线程数量和QPS,以防止系统负载过高。
摘要由CSDN通过智能技术生成

1、CPU负载

        字面上就可以很简单的理解为CPU的工作量,太高是相对于CPU的算力来说的。
CPU负载太高,即目前工作量已经接近于CPU的最大算力了,这会导致很多进程拖慢,新打开一个进程要很久,导致进程卡死,甚至操作系统卡死,所以一般建议不要让CPU负载过高。这个是硬伤没有直接的优化方法,只能注意你的CPU如果太差,避免这种情况,只能不开高运算程序,比如游戏,开发环境,绘图软件等。或者加钱换更好的CPU。

2、压测时如何观察机器的CPU负载情况?

先来看一个最最常用的监测linux机器性能的命令,就是top命令,直接在linux命令行只能够输入top指令就可以了,然后我们 这里来给大家解释一下,top指令展示出来的各种信息都是什么意思。
首先我们会看到如下一行信息:
top - 15:52:00 up 42:35, 1 user, load average: 0.15, 0.05, 0.01
先来解释一下这行信息,这行信息是最直观可以看到机器的cpu负载情况的
  • 15:52:00指的是当前时间
  • up 42:35指的是 机器已经运行了多长时间
  • 1 user就是说当前机器有1个用户在使用
  • load average: 0.15, 0.05, 0.01这行信息,他说的是CPU在1分钟、5分钟、15分钟内的负载情况。
CPU负载含义:
  1. 假设我们是一个4核的CPU,此时如果CPU负载是0.15,这就说明,4核CPU中连一个核都没用满,4核CPU基本都很空闲,没啥人在用。
  2. 如果CPU负载是1,说明4核CPU中有一个核已经被使用的比较繁忙了,另外3个核还是比较空闲一些。
  3. 如果CPU负载是 1.5,说明有一个核被使用繁忙,另外一个核也在使用,但是没那么繁忙,还有2个核可能还是空闲的。
  4. 如果CPU负载是4,说明4核CPU都被跑满了。
  5. 如果CPU负载是6,说明4核CPU被繁忙的使用还不够处理当前的 任务,很多进程可能一直在等待CPU去执行自己的任务。
        所以大家现在知道了,上面看到的load average实际上就是CPU在最近1分钟,5分钟,15分钟内的平均负载数值,上面都是 0.15之类的,说明CPU根本就没怎么用。
但是如果你在压测的过程中,发现4核CPU的load average已经基本达到3.5,4了,那么说明几个CPU基本都跑满了,在满负 荷运转,那么此时你就不要再继续提高线程的数量和增加数据库的QPS了,否则CPU负载太高是不合理的。

3、压测时如何观察机器的内存负载情况?

在你执行top命令之后,中间我们跳过几行内容,可以看到如下一行内容:
Mem: 33554432k total, 20971520k used, 12268339 free, 307200k buffers
这里说的就是当前机器的内存使用情况
  • 总内存大概有32GB
  • 已经使用了20GB左右的内存
  • 还有10多G的内存是空闲的
  • 然后有大概300MB左右的内存用作OS内核的缓冲区了
对于内存而言,同样是要在压测的过程中紧密的观察, 一般来说,如果内存的使用率在80%以内,基本都还能接受 ,在正常范 围内,但是如果你的机器的内存使用率到了70%~80%了,就说明有点危险了,此时就不要继续增加压测的线程数量和QPS 了,差不多就可以了。

4、压测时如何观察机器的磁盘IO情况?

接着我们说说如何在压测的时候观察机器的磁盘IO的情况?
这里会使用dstat命令,我们之前给大家讲过几个磁盘IO相关的指标,包括存储的IO吞吐量、IOPS这些,我们下面就看看这里 是如何查看的。
使用dstat -d命令,会看到如下的东西:
-dsk/total -
read writ
103k 211k
0 11k
在上面可以清晰看到,存储的IO吞吐量是每秒钟读取103kb的数据,每秒写入211kb的数据,像这个存储IO吞吐量基本上都不 算多的,因为普通的机械硬盘都可以做到每秒钟上百MB的读写数据量。
使用命令:dstat -r,可以看到如下的信息--io/total
read writ
0.25 31.9
0 253
0 39.0
他的这个意思就是读IOPS和写IOPS分别是多少,也就是说随机磁盘读取每秒钟多少次,随机磁盘写入每秒钟执行多少次,大 概就是这个意思, 一般来说,随机磁盘读写每秒在两三百次都是可以承受的。
所以在这里,我们就需要在压测的时候密切观察机器的磁盘IO情况,如果磁盘IO吞吐量已经太高了,都达到极限的每秒上百 MB了,或者随机磁盘读写每秒都到极限的两三百次了,此时就不要继续增加线程数量了,否则磁盘IO负载就太高了。

5、压测时观察网卡的流量情况

接着我们可以使用dstat -n命令,可以看到如下的信息:
-net/total
recv send
16k 17k
这个说的就是每秒钟网卡接收到流量有多少kb,每秒钟通过网卡发送出去的流量有多少kb,通常来说,如果你的机器使用的 是千兆网卡,那么每秒钟网卡的总流量也就在100MB左右,甚至更低一些。
所以我们在压测的时候也得观察好网卡的流量情况,如果网卡传输流量已经到了极限值了,那么此时你再怎么提高sysbench 线程数量,数据库的QPS也上不去了,因为这台机器每秒钟无法通过网卡传输更多的数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值