Linux常用系统性能测试命令(硬盘、内存、CPU)_redhat测试硬盘速率(1)

为什么把硬盘性能查看放到最前边,因为现在服务起来说,一般CPU和内存都基本可以满足要求,但是由于很多服务器存储还是使用机械硬盘,所有往往瓶颈实在硬盘IO上,所以系统出现问题要重点查看硬盘IO占用。

1.简单粗暴的测试硬盘写入速度

[root@redhat73 ~]# dd if=/dev/zero of=/home/linshi.a bs=1024000000 count=2
2+0 records in
2+0 records out
2048000000 bytes (2.0 GB) copied, 4.67577 s, 438 MB/s

写入一个2GB的文件,用时4.67577秒,平均438 MB/s

2.iotop命令:简单的top类I/O监视器,可用来查看具体某进程所占用的硬盘IO情况。

安装

yum install iotop -y

简单使用

iotop
左右箭头 改变列
r 改变排序
a 切换累计还是当前实时速度
d 马上刷新。默认1秒刷新一次
q 退出

常用示例

iotop -d 0.1 # 刷新时间0.1秒
iotop -d 0.1 -n 10 # 刷新时间0.1秒,10次后退出

-p pid 要监控的pid进程号,不加此参数默认监控所有
-o 仅显示执行I/O的进程,执行过程中可以按o切换
-u USERNAME 监控指定用户的IO
-a 显示累计,而不是当前IO
-b 非交互模式,一般用来记录日志
-k 使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用。
-t 加时间戳,非交互模式下记录日志非常有用
-q 禁止头几行,非交互模式。有三种指定方式。
-q 只在第一次监测时显示列名
-qq 永远不显示列名。
-qqq 永远不显示I/O汇总。

各列说明:

PID 进程PID(按p切换)
PRIO
USER 用户
DISK READ 读取速度
DISK WRITE> 写入速度(>代表按当前列排序)
SWAPIN 进程或者线程花费在交换内存时间的百分比。
如果出现SWAPIN百分比很高,可以肯定内存不足了,赶快通过free -h 查看一下内存情况,并合理优化内存相关配置。
IO 占用IO百分比
COMMAND 进程名

3.iostat命令:分硬盘统计所有进程写入和读取总速度

安装

yum install -y sysstat

简单实用

iostat -m 1 3 # 每1秒输出一次,执行3次后退出,并已MB为单位显示

输出说明

最上面指示系统版本、主机名和当前日期
Linux 3.10.0-514.el7.x86_64 (redhat73.com) 01/05/2019 x86_64 (1 CPU)

总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 100.00 0.00 0.00 0.00

%user CPU在用户态执行进程的时间百分比。
%nice CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比
%system CPU处在内核态执行进程的时间百分比
%iowait CPU用于等待I/O操作占用CPU总时间的百分比
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比
%idle CPU空闲时间百分比

  1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
  2. 若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量
  3. 若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU

各磁盘设备的IO统计信息
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 752.33 0.00 366.35 0 315
scd0 0.00 0.00 0.00 0 0
dm-0 934.88 0.00 453.58 0 390
dm-1 0.00 0.00 0.00 0 0
Device 磁盘名称
tps 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。
出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
MB_read/s 读取速度(单位:MB/s)
MB_wrtn/s 写入速度(单位:MB/s)
MB_read 取样时间间隔内读取总数(单位:MB)
MB_wrtn 取样时间间隔内写入总数(单位:MB)

2.内存

[root@localhost home]# free -h
total used free shared buff/cache available
Mem: 974M 56M 818M 580K 99M 787M
Swap: 2.0G 37M 2.0G

参数解释

-m 以MB为单位输出
-g 以GB为单位输出
-h 以人类可读的单位输出,自动转换KB、MB或者GB为单位
-s N 每N秒打印一次
-c N 打印N次后退出

输出说明(Mem代表物理内存、Swap代表虚拟内存)

total 表示系统的总内存
used 表示应用程序已经使用的内存
free 表示当前还没有被使用的内存
shared 表示共享链接库使用的内存
buff/cache 表示系统的page cache和buffer使用到的内存
available 表示应用程序还可以申请到的内存

怎么判断是否需要加内存:
1.swap使用有多少
2.available剩余是多少,而不是看free

cache是Linux系统为了提高系统运行效率而将一些程序或文件写入到cache,可提高程序运行和加载速度,如果程序需要会马上释放。所以判断系统内存是否足够和是否需要增加的时候不能简单的看free
Cache Pages:
A cache is the part of the memory which transparently stores data so that future requests for that data can be served faster.
This memory is utilized by the kernel to cache disk data and improve i/o performance.

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

24b (备注软件测试)**
[外链图片转存中…(img-TRr2Z2rC-1712883546096)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值