博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux系统测试磁盘及cpu性能
阅读量:3947 次
发布时间:2019-05-24

本文共 7792 字,大约阅读时间需要 25 分钟。

一、测试磁盘性能

1.创建测试目录

mkdir -p /home/test

2.使用dd测试

测试写入速度

# if=/dev/zero不产生IO,因此可以用来测试纯写速度 # 写入文件大小 = 8k * 500000 = 4G time dd if=/dev/zero of=/home/test/out bs=8k oflag=direct count=500000  500000+0 records in 500000+0 records out 4096000000 bytes (4.1 GB) copied, 58.0348 s, 70.6 MB/s real    0m58.065s user    0m0.020s sys     0m33.681s

测试读取速度

# of=/dev/null不产生IO,可以用来测试纯读速度time dd if=/root/test/out of=/dev/null bs=8k500000+0 records in500000+0 records out4096000000 bytes (4.1 GB) copied, 16.0882 s, 255 MB/sreal    0m16.090suser    0m0.041ssys     0m16.048s

3.测试过程中可以使用以下命令查看

利用vmstat命令,对读写性能进行说明。

vmstat 1 1  表示每隔1秒采集1次信息。
vmstat 1 1procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st19  0 507904 2225404 126816 15403456    0    0     1    25    0    1 10  1 89  0  0

描述:

io:显示磁盘读写状况            bi列:表示从块设备读入数据的总量(既读磁盘)(每秒kb)            bo列:表示写入到块设备的数据总量(既写磁盘)(每秒kb)   cpu:           wa列 表示i/o等待所占用的cpu时间百分比。           bi+bo参考值为1000,而且wa值较大,说明i/o等待越严重,则表示系统磁盘i/o有问题。           根据经验,wa的参考值为20%,如果wa超过了20%,可能是磁盘大量随机读写造成的i/o等待,也可能是磁盘磁盘控制器的带宽瓶颈造成的(主要是块操作)。

利用iostat -d 命令,对读写性能进行说明。

iostat -d 1 1 表示每隔1秒输出1次磁盘信息(不包含CPU信息)

iostat -d 1 1Linux 3.10.0-1127.el7.x86_64 (airport-master) 	2020年07月03日 	_x86_64_	(48 CPU)Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtnsdb               0.00         0.00         0.00       4533          4sdc               0.54        10.76        21.12   13034950   25592048sda               8.14        14.14      1188.16   17136361 1439527064dm-0              0.31         5.03        18.19    6098724   22037488dm-1              0.65         0.46         2.14     559820    2588116dm-2              0.09         5.24         0.80    6345596     964324

描述:

KB_read/s:表示每秒读取的数据块数  KB_wrtn/s:表示每秒写入的数据块数  KB_read:表示读取的所有块数  KB_wrtn:表示写入的所有块数  如果KB_wrtn/s值很大,表示磁盘的写操作很频繁,可以考虑优化磁盘或优化程序;  如果KB_read/s值很大,表示磁盘直接读取操作很多,可以将读取的数据放入内存中进行操作。  对于以上两个值没有一个固定的大小,但是数值长期的过大说明磁盘读写则不正常。

还有其他命令如 iotop、sar -d等,可查看其他文档

二、测试cpu性能

1.编写shell脚本

vim test-cpu.sh
#!/bin/bashtest_cpu(){
cat /dev/urandom | gzip -9 > /dev/null}case $1 in-start)for i in `seq $2` do test_cpu &done;;-stop)ps -aux | grep "cat /dev/urandom" | awk '{print $2}' | xargs kill -9 2>/dev/null;;esac

2.使用脚本

#开始测试#第一个参数为“-start”,“-stop”。为开始和停止。#第二个参数为开启线程数,“20”为同时开启20个线程。bash ./test-cpu.sh -start 20
#结束测试bash ./test-cpu.sh -stop

3.测试过程中可以使用以下命令查看

top命令

top top - 10:37:35 up 25 days, 17:29,  1 user,  load average: 0.00, 0.02, 0.05Tasks: 104 total,   1 running, 103 sleeping,   0 stopped,   0 zombieCpu(s):  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stMem:   2067816k total,  2007264k used,    60552k free,    73752k buffersSwap:   524284k total,   315424k used,   208860k free,   625832k cached  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND17827 root      20   0  700m 218m  13m S  1.7 10.8   0:42.81 java 4517 apache    20   0 1240m 359m 3884 S  0.7 17.8  20:44.91 java 2650 root      20   0 25588 2204 1224 S  0.3  0.1  12:43.61 snmpd18076 root      20   0  2456  928  712 R  0.3  0.0   0:00.27 top32645 root      20   0  798m 247m 3580 S  0.3 12.3 171:19.10 java    1 root      20   0  2208  100   84 S  0.0  0.0   0:31.34 init    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd    3 root      20   0     0    0    0 S  0.0  0.0   0:09.87 ksoftirqd/0    5 root      20   0     0    0    0 S  0.0  0.0   0:00.03 kworker/u:0

多核CPU监控

在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况。

统计信息区

前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

10:37:35	当前时间up 25 days, 17:29	系统运行时间,格式为时:分1 user	当前登录用户数load average: 0.00, 0.02, 0.05	系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:Tasks: 104 total	进程总数1 running	正在运行的进程数103 sleeping	睡眠的进程数0 stopped	停止的进程数0 zombie	僵尸进程数Cpu(s):  0.1%us	用户空间占用CPU百分比0.0%sy	内核空间占用CPU百分比0.0%ni	用户进程空间内改变过优先级的进程占用CPU百分比99.9%id	空闲CPU百分比0.0%wa	等待输入输出的CPU时间百分比0.0% hi	 0.0% si	 0.0%st

最后两行为内存信息。内容如下:

Mem:   2067816k total	物理内存总量2007264k used	使用的物理内存总量60552k free	空闲内存总量73752k buffers	用作内核缓存的内存量Swap:   524284k total	交换区总量315424k used	使用的交换区总量208860k free	空闲交换区总量625832k cached	缓冲的交换区总量。内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

进程信息区

统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号	列名	含义a	PID	进程idb	PPID	父进程idc	RUSER	Real user named	UID	进程所有者的用户ide	USER	进程所有者的用户名f	GROUP	进程所有者的组名g	TTY	启动进程的终端名。不是从终端启动的进程则显示为 ?h	PR	优先级i	NI	nice值。负值表示高优先级,正值表示低优先级j	P	最后使用的CPU,仅在多CPU环境下有意义k	%CPU	上次更新到现在的CPU时间占用百分比l	TIME	进程使用的CPU时间总计,单位秒m	TIME+	进程使用的CPU时间总计,单位1/100秒n	%MEM	进程使用的物理内存百分比o	VIRT	进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESp	SWAP	进程使用的虚拟内存中,被换出的大小,单位kb。q	RES	进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATAr	CODE	可执行代码占用的物理内存大小,单位kbs	DATA	可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kbt	SHR	共享内存大小,单位kbu	nFLT	页面错误次数v	nDRT	最后一次写入到现在,被修改过的页面数。w	S	进程状态。D=不可中断的睡眠状态R=运行S=睡眠T=跟踪/停止Z=僵尸进程x	COMMAND	命令名/命令行y	WCHAN	若该进程在睡眠,则显示睡眠中的系统函数名z	Flags	任务标志,参考 sched.h默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

mpstat -P ALL 1命令

mpstat -P ALL 1Linux 3.10.0-1062.el7.x86_64 (airport-slave01) 	2020年07月03日 	_x86_64_	(40 CPU)10时06分43秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle10时06分44秒  all   36.96   32.49    4.59    0.25    0.00    0.40    0.00    0.00    0.00   25.3110时06分44秒    0   50.00   25.00    4.00    1.00    0.00    1.00    0.00    0.00    0.00   19.0010时06分44秒    1   18.18   43.43    3.03    1.01    0.00    1.01    0.00    0.00    0.00   33.3310时06分44秒    2   62.63    6.06   10.10    2.02    0.00    0.00    0.00    0.00    0.00   19.1910时06分44秒    3   46.46   20.20    2.02    0.00    0.00    1.01    0.00    0.00    0.00   30.3010时06分44秒    4   15.31   48.98    8.16    0.00    0.00    0.00    0.00    0.00    0.00   27.5510时06分44秒    5   52.53   14.14    8.08    0.00    0.00    0.00    0.00    0.00    0.00   25.2510时06分44秒    6   46.00   27.00    4.00    0.00    0.00    1.00    0.00    0.00    0.00   22.0010时06分44秒    7   40.59   29.70    6.93    0.00    0.00    0.00    0.00    0.00    0.00   22.7710时06分44秒    8   61.62   18.18    5.05    0.00    0.00    0.00    0.00    0.00    0.00   15.1510时06分44秒    9   48.00   20.00    6.00    0.00    0.00    1.00    0.00    0.00    0.00   25.0010时06分44秒   10   20.00   50.00    4.00    1.00    0.00    0.00    0.00    0.00    0.00   25.0010时06分44秒   11   56.12   24.49    5.10    0.00    0.00    0.00    0.00    0.00    0.00   14.2910时06分44秒   12    2.00   71.00    2.00    0.00    0.00    0.00    0.00    0.00    0.00   25.0010时06分44秒   13   29.59   30.61    2.04    1.02    0.00    0.00    0.00    0.00    0.00   36.7310时06分44秒   14   42.57   19.80    4.95    0.00    0.00    0.00    0.00    0.00    0.00   32.6710时06分44秒   15   38.00   38.00    4.00    0.00    0.00    0.00    0.00    0.00    0.00   20.0010时06分44秒   16   14.00   47.00    3.00    0.00    0.00    0.00    0.00    0.00    0.00   36.0010时06分44秒   17   43.00   32.00    3.00    1.00    0.00    0.00    0.00    0.00    0.00   21.0010时06分44秒   18   41.58   29.70    4.95    0.00    0.00    0.00    0.00    0.00    0.00   23.7610时06分44秒   19   58.00   26.00    3.00    0.00    0.00    0.00    0.00    0.00    0.00   13.0010时06分44秒   20   20.20   48.48    6.06    1.01    0.00    0.00    0.00    0.00    0.00   24.2410时06分44秒   21   40.40   36.36    8.08    0.00    0.00    1.01    0.00    0.00    0.00   14.1410时06分44秒   22   35.35   24.24    6.06    0.00    0.00    1.01    0.00    0.00    0.00   33.3310时06分44秒   23   24.24   33.33    5.05    0.00    0.00    1.01    0.00    0.00    0.00   36.3610时06分44秒   24   18.00   41.00    2.00    0.00    0.00    1.00    0.00    0.00    0.00   38.00

uptime 命令

uptime   10:10:12 up 13 days, 23:13,  3 users,  load average: 20.77, 22.53, 24.19

转载地址:http://mthwi.baihongyu.com/

你可能感兴趣的文章
Key Launcher上底下的shortcut如何修改默认值以及如果修改Key Launcher上widget的默认显示顺序
查看>>
Java支持播放哪些multi media格式
查看>>
Audio播放完毕后设置时间无法正确获取
查看>>
打开了一个size不为零的文件,读取到的值却为零的一种分析和解决方法
查看>>
Aplix VM安装Java应用在main menu上不能显示自己的图标,而是显示一朵小花的解决方法
查看>>
Aplix VM安装第一个Java应用在main menu上看不到图标的解决方法
查看>>
java 在cosmos下修改设置,提示“setting are not modifiable”的解释
查看>>
JAD中常见字段的介绍。
查看>>
对于SIM menu update by OTA的解释
查看>>
如何去掉OTA provisioning的PIN码验证
查看>>
如何实现首次开机自动power on 蓝牙?
查看>>
Makefile文件中蓝牙相关的宏介绍
查看>>
如何屏蔽掉乱码的push消息
查看>>
登录一些安全网站,比如twitter/facebook,提示安全链接失败,或提示下载文件。
查看>>
如何去除launcher 上默认的 google search bar.
查看>>
Android如何绘制View
查看>>
23种设计模式的索引
查看>>
Can't make emergency call without SIM card
查看>>
不插SIM卡,不能拨打紧急电话
查看>>
COSMOS上实现IP DIAL功能
查看>>