作为一个Linux运维人员,主要就是对Linux服务器的性能做一些优化,本篇博文仅仅介绍如何性能检测常用的指令!
[root@localhost ~]# uptime
19:08:17 up 127 days, 3:00, 1 user, load average: 0.00, 0.01, 0.05
命令返回的信息:
dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里。
常用选项:
vmstat命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
常用选项:
[root@localhost ~]# vmstat 10 3 表示每行打印10秒内的平均值,只打印3次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 711396 2108 184456 0 0 22 4 53 81 0 0 99 0 0
0 0 0 711372 2108 184456 0 0 0 0 39 36 0 0 100 0 0
0 0 0 711372 2108 184456 0 0 0 0 39 35 0 0 100 0 0
输出的信息:
r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1); b: 等待IO的进程数量; memory(内存)
使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能;
“ 注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。 ”
“ 注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。 ”
“ 注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。 ”
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
mpstat命令指令主要用于多CPU环境下,它显示各个可用CPU的状态信息。这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
[root@localhost ~]# mpstat #输出从系统启动以来的平均值
[root@localhost ~]# mpstat -P ALL 2 3
每2秒产生了2个处理器的统计数据报告,一共产生三个interval 的信息,然后再给出这三个interval的平均信息。默认时,输出是按照CPU 号排序。第一个行给出了从系统引导以来的所有活跃数据。接下来每行对应一个处理器的活跃状态。
pidstat用于打印各个进程对CPU的占用情况,类似top命令中显示的内容。pidstat的优势在于,可以滚动的打印进程运行情况,而不像top那样会清屏。
[root@localhost ~]# pidstat 1
Linux 3.10.0-862.el7.x86_64 (localhost.localdomain) 2020年03月09日 _x86_64_ (2 CPU)
20时19分43秒 UID PID %usr %system %guest %CPU CPU Command
20时19分44秒 0 495 0.00 0.99 0.00 0.99 0 kworker/0:3
20时19分44秒 0 1038 0.00 0.99 0.00 0.99 1 dockerd
20时19分44秒 0 2308 0.99 0.00 0.00 0.99 1 consul
20时19分44秒 0 2422 0.00 1.98 0.00 1.98 0 pidstat
20时19分44秒 UID PID %usr %system %guest %CPU CPU Command
20时19分45秒 0 44 0.00 1.00 0.00 1.00 1 kworker/u256:1
20时19分45秒 0 2308 1.00 0.00 0.00 1.00 1 consul
20时19分45秒 0 2422 1.00 3.00 0.00 4.00 0 pidstat
iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
常用选项:
[root@localhost ~]# iostat -x /dev/sda1 #磁盘I/O的详细情况
Linux 3.10.0-862.el7.x86_64 (localhost.localdomain)
2020年03月09日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.57 0.00 1.49 0.05 0.00 97.88
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda1 0.00 0.00 3.57 0.01 45.12 3.75 27.33 0.00 0.09 0.09 1.25 0.08 0.03
详细说明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况(具体内容和mpstat命令相同)。这里主要关注后面I/O输出的信息,如下所示:
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
常用选项:
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1821 422 845 10 554 1164
Swap: 2047 0 2047
返回信息:
sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
常用选项:
[root@localhost ~]# sar -n DEV 1
-n DEV 1:每秒统计一次网络的使用情况
-n EDEV 1:每秒统计一次错误的网络信息
Linux 3.10.0-862.el7.x86_64 (localhost.localdomain) 2020年03月09日 _x86_64_ (2 CPU)
20时46分45秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
20时46分46秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
20时46分46秒 virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00
20时46分46秒 virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
20时46分46秒 ens33 0.00 0.00 0.00 0.00 0.00 0.00 0.00
20时46分46秒 vethfd45d02 0.00 0.00 0.00 0.00 0.00 0.00 0.00
20时46分46秒 docker_gwbridge 0.00 0.00 0.00 0.00 0.00 0.00 0.00
20时46分46秒 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
返回信息:
[root@localhost ~]# sar -n TCP,ETCP 1
TCP, 报告关于TCPv4网络流量的统计信息;
ETCP, 报告有关TCPv4网络错误的统计信息;
Linux 3.10.0-862.el7.x86_64 (localhost.localdomain) 2020年03月09日 _x86_64_ (2 CPU)
20时49分44秒 active/s passive/s iseg/s oseg/s
20时49分45秒 0.00 0.00 0.00 0.00
返回信息:
top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
常用选项:
top交互命令:
top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92
Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie
Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers
Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached
返回信息:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。