Linux性能测试与调优的15条常用命令
一、CPU性能评估
通过下面的命令能了解到CPU是否出现性能瓶颈,再结合top、ps等命令进一步检查,即可定位到那些进程导致CPU负载过大
vmstat命令:查看CPU负载
1
|
[oracle@oracle backup]$ vmstat 2 3 # 间隔2s,打印3次<br>procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- <br>r b swpd free buff cache si so bi bo in cs us sy id wa st <br>0 0 328088 65340 26020 745768 0 1 4 20 58 64 0 0 100 0 0 <br>0 0 328088 65340 26020 745764 0 0 0 0 126 245 0 0 100 0 0 <br>0 0 328088 65340 26020 745768 0 0 2 20 137 250 0 0 99 1 0 |
sar命令:统计CPU性能
场景:在一个多CPU的系统中,CPU的整体使用率不高,但是系统应用响应缓慢。
结论:单线程只使用一个CPU,导致这个CPU占用率为100%,无法处理其他请求,而其他的CPU却闲置,这就导致了整体CPU使用率不高,而应用缓慢现象的发生。
sar -P 0 3 5 :对第一个CPU进行统计
[oracle@oracle backup]$ sar -P 0 3 5 显示CPU利用率,间隔3s,显示5次
Linux 2.6.32-431.el6.x86_64 (oracle) 03/17/2020 _x86_64_ (1 CPU) 02:40:21 AM CPU %user %nice %system %iowait %steal %idle
02:40:24 AM 0 0.00 0.00 2.13 0.00 0.00 97.87
02:40:27 AM 0 0.00 0.00 0.33 0.00 0.00 99.67
02:40:30 AM 0 0.00 0.00 0.33 0.33 0.00 99.33
02:40:33 AM 0 0.33 0.00 0.33 0.00 0.00 99.33
02:40:36 AM 0 0.00 0.00 0.33 0.00 0.00 99.67
Average: 0 0.07 0.00 0.68 0.07 0.00 99.19
iostat命令:查看CPU使用情况
[oracle@oracle backup]$ iostat -cLinux 2.6.32-431.el6.x86_64 (oracle) 03/17/2020 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.06 0.00 0.08 0.18 0.00 99.68
uptime命令:1、5、15分钟平均负载
经验:8核CPU,load average三个值长期大于8,说明负载很高,会影响系统性能。
[oracle@oracle backup]$ uptime 02:42:25 up 6 days, 23:41, 1 user, load average: 0.00, 0.00, 0.00
二、内存性能评估
free命令:查看内存使用情况
经验:可用内存/物理内存<20%,说明内存紧缺,需要增加内存
[oracle@oracle backup]$ free -m -m 以MB为单位,-s 时间段内不间断监控
total used free shared buffers cached
Mem: 980 906 74 0 26 716
-/+ buffers/cache: 163 817
Swap: 2495 321 2174
vmstat命令:监控内存
[oracle@oracle backup]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 1 329148 76376 27440 733380 0 1 4 20 58 64 0 0 100 0 0
sar -r命令:监控内存
[oracle@oracle backup]$ sar -rLinux 2.6.32-431.el6.x86_64 (oracle) 03/17/2020 _x86_64_ (1 CPU) 12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
12:10:01 AM 72404 932008 92.79 14544 736452 1905844 53.53
12:20:01 AM 71288 933124 92.90 15528 736612 1905844 53.53
12:30:01 AM 70668 933744 92.96 16480 736664 1905844 53.53
12:40:01 AM 69676 934736 93.06 17464 736724 1905848 53.53
12:50:01 AM 68560 935852 93.17 18424 736812 1905848 53.53
01:00:01 AM 67568 936844 93.27 19392 736840 1905848 53.53
01:10:01 AM 68764 935648 93.15 20368 736784 1905848 53.53
01:20:01 AM 67648 936764 93.26 21348 736920 1905852 53.53
三、磁盘I/O性能评估
sar -d命令:统计磁盘I/O状态经验:
-
1、正常svctm<await。
-
2、svctm接近await表示几乎没有I/O等待,性能很好
-
3、cpu/内存复合/过多请求都会使svctm增加
-
4、%util接近100%,表示I/O满负荷。
[oracle@oracle backup]$ sar -dLinux 2.6.32-431.el6.x86_64 (oracle) 03/17/2020 _x86_64_ (1 CPU) 12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
12:10:01 AM dev8-0 0.37 5.67 3.50 24.65 0.00 3.38 2.31 0.09
12:10:01 AM dev8-16 1.75 1.54 44.05 26.00 0.00 2.46 1.89 0.33
12:10:01 AM dev8-32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM dev8-48 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
iostat -d命令:
1 [oracle@oracle backup]$ iostat -dx /dev/sda3
Linux 2.6.32-431.el6.x86_64 (oracle) 03/17/2020 _x86_64_ (1 CPU) 2 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda3 0.03 0.16 0.01 0.00 0.29 1.32 186.07 0.00 63.32 6.07 182.97 8.40 0.01
四、网络性能评估
ping命令:检测网络连通
netstat命令:-i 查看网络接口信息,-r 检测系统路由表信息
sar -n命令:显示系统网络运行状态
[oracle@oracle backup]$ sar -n DEV 2 3 # DEV:网络接口,EDEV:网络错误统计数据,SOCK:套接字信息,FULL:显示所有
Linux 2.6.32-431.el6.x86_64 (oracle) 03/17/2020 _x86_64_ (1 CPU) 02:49:05 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
02:49:07 AM lo 1.01 1.01 0.05 0.05 0.00 0.00 0.00
02:49:07 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
traceroute命令:跟踪数据包传输路径
nslookup命令:判断DNS解析信息
五、动态监控性能
[oracle@oracle backup]$ watch -n 3 -d free # -n 重复执行时间,-d 高亮显示变动
Every 3.0s: free Tue Mar 17 02:50:44 2020 total used free shared buffers cached
Mem: 1004412 930144 74268 0 28516 733728
-/+ buffers/cache: 167900 836512
Swap: 2555888 329132 2226756