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
复制代码
原文地址:https://www.cnblogs.com/shujuyr/p/13080714.html