众所周知,云服务器的性能是我们挑选云主机的最重要的指标,今天给大家介绍的就是优 豆云主机,优 豆云是提供免 费虚拟主机免 费云服务器的,希望大家不要错过了。
这篇文章主要介绍一些常用的linux服务器性能监控命令,包括命令的常用参数、指标的含义以及一些交互操作。
free
free 命令是监控linux 内存使用最常用的命令,参数[-m]表示以M 为单位查看内存使用情况(默认为kb)。
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 482 130 352 0 9 36
-/+ buffers/cache: 83 399
Swap: 991 0 991
Mem:物理内存大小。
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
shared:多个进程共享的内存总额。
buffers:缓冲区内存总量。
cached:交换区缓冲区内存总量。
第三行(-/+ buffers/cached):系统的物理内存真实使用量,可通过used-buffers-cached计算得到,因为buffers和cached也是占用物理内存得来,可以通过释放它们来获得这部分内存。
Swap:交换区总量,也叫虚拟内存。
uptime
uptime 命令是监控系统性能最常用的一个命令,主要是来统计系统当前的运行状态,即负载情况。
[root@localhost~]# uptime
05:41:01 up 3 min, 1 user, load average: 0.23, 0.33, 0.15
输出信息依次是:系统现在的时间,系统从上次开机到现在运行了多长时间,系统当前有多少个登录用户,系统在1分钟内、5 分钟内、15 分钟内的平均负载。
如果load average值长期大于系统CPU的个数则说明CPU很繁忙,负载很高,可能会影响系统性能,导致系统卡顿响应时间长等等。
load average值与系统CPU的个数对比怎么理解?load average的值表示在单位时间内运行的进程数,而CPU一个内核同一时间只能处理一个进程,一台16核CPU的服务器如果load average大于16,那说明系统正处于超负荷运行状态。
vmstat
vmstat 可以对操作系统的内存信息、进程状态、CPU 活动、磁盘等信息进行监控,不足之处是无法对某个进程进行深入分析。
[root@localhost~]# vmstat 2 3 -S M
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 235 11 88 0 0 32 2 21 23 0 1 98 1 0
0 0 0 235 11 88 0 0 0 0 16 19 0 0 100 0 0
0 0 0 235 11 88 0 0 0 0 13 19 0 0 100 0 0
2表示每2秒取样一次,3表示取数3次,-S表示单位,可选有 k 、K 、m 、M。
procs
R 列表示运行和等待 CPU 时间片的进程数,这个值如果长期大于系统 CPU 个数,说明CPU 不足,需要增加 CPU。
B 列表示在等待资源的进程数,比如正在等待 I/O 或者内存交换等。
memory
swpd 列表示切换到内存交换区的内存大小(单位 KB),通俗讲就是虚拟内存的大小。如果 swap 值不为 0 或者比较大, 只要 si、so 的值长期为 0,这种情况一般属于正常情况
free 列表示当前空闲的物理内存(单位 KB) 。
buff 列表示 buffers cached 内存大小,也就是缓冲区大小,一般对块设备的读写才需要缓冲。
cache 列表示 page cached 的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果 cache 值非常大说明缓存文件比较多,如果此时 io中的 bi 比较小,说明文件系统效率比较好。
swap
si 列表示由磁盘调入内存,也就是内存进入内存交换区的内存大小。
so 列表示由内存进入磁盘,也就是有内存交换区进入内存的内存大小。
一般情况下,si、so 的值都为 0,如果 si、so 的值长期不为 0,则说明系统内存不足,需要增加系统内存。
io
bi 列表示由块设备读入数据的总量,即读磁盘,单位 kb/s。
bo 列表示写到块设备数据的总量,即写磁盘,单位 kb/s。
如果 bi+bo 值过大,且 wa 值较大,则表示系统磁盘 IO 瓶颈。
system
in 列表示某一时间间隔内观测到的每秒设备中断数。
cs 列表示每秒产生的上下文切换次数。
这 2 个值越大,则由内核消耗的 CPU 就越多。
cpu
us 列表示用户进程消耗的 CPU 时间百分比,us 值越高,说明用户进程消耗 cpu 时间越多,如果长期大于 50%,则需要考虑优化程序或者算法。
sy 列表示系统内核进程消耗的 CPU 时间百分比,一般来说 us+sy 应该小于 80%,如果大于 80%,说明可能处于 CPU 瓶颈。
id 列表示 CPU 处在空闲状态的时间百分比。
wa 列表示 IP 等待所占的 CPU 时间百分比,wa 值越高,说明 I/O 等待越严重,根据经验 wa 的参考值为 20%,如果超过 20%,说明 I/O 等待严重,引起 I/O 等待的原因可能是磁盘大量随机读写造成的, 也可能是磁盘或者此哦按监控器的贷款瓶颈 (主要是块操作)造成的。
vmstat命令的结果显示比较全面,可以看到操作系统的内存信息、进程状态、CPU 活动、磁盘等信息,不足之处是无法对某个进程进行深入分析。但是以上每一列的含义都是要重点掌握!具体的参数和用法在这里就不列举了,需要的可自行百度了解。
sar
Nick Young.jpg
好吧,我只是为了引起大家的注意。
sar 是非常强大性能分析命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、cpu 中断、网络等性能数据。老司机必备!
sar安装直接yum install -y sysstat,这里有个坑就是安装完成后直接使用的话会报错,提示文件不存在,解决办法是先执行sar -o 2 3,来生成所需文件,之后使用就正常啦。
sar监控CPU
[root@localhost~]# sar -u 2 3
Linux 2.6.32-573.22.1.el6.i686 (localhost) 2016年11月02日 _i686_ (1 CPU)
06时58分50秒 CPU %user %nice %system %iowait %steal %idle
06时58分52秒 all 0.00 0.00 0.50 0.00 0.00 99.50
06时58分54秒 all 0.00 0.00 0.50 0.00 0.00 99.50
06时58分56秒 all 0.00 0.00 0.50 0.00 0.00 99.50
平均时间: all 0.00 0.00 0.50 0.00 0.00 99.50
2表示每2秒取样一次,3表示取数3次,-u表示CPU使用率。
%usr:用户进程消耗的 CPU 时间百分比。
%nice: 运行正常进程消耗的 CPU 时间百分比。
%system:系统进程消耗的 CPU 时间百分比。
%iowait:I/O 等待所占 CPU 时间百分比。
%steal:在内存紧张环境下,pagein 强制对不同的页面进行的 steal 操作。虚拟服务占用的CPU时间百分比,这个值一般为0.
%idle:CPU 空闲状态的时间百分比。
在所有的显示中,我们应主要注意%iowait 和%idle,%iowait 的值过高,表示硬盘存在 I/O 瓶颈, %idle 值高,表示 CPU 较空闲,如果%idle 值高但系统响应慢时,有可能是 CPU 等待分配内存, 此时应加大内存容量。%idle 值如果持续低于 10,那么系统的 CPU 处理能力相对较低,表 明系统中最需要解决的资源是 CPU。
[root@localhost~]# sar -q 2 3
Linux 2.6.32-573.22.1.el6.i686 (localhost) 2016年11月02日 _i686_ (1 CPU)
07时16分31秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
07时16分33秒 0 118 0.16 0.07 0.09
07时16分35秒 0 118 0.16 0.07 0.09
07时16分37秒 0 118 0.15 0.07 0.09
平均时间: 0 118 0.16 0.07 0.09
2表示每2秒取样一次,3表示取数3次,-q显示运行队列的大小,它与系统当时的平均负载相同。
runq-sz:运行队列的长度(等待运行的进程数) 。
plist-sz:进程列表中进程(processes)和线程(threads)的数量。
ldavg-1:最后 1 分钟的系统平均负载(System load average) 。
ldavg-5:过去 5 分钟的系统平均负载。
ldavg-15:过去 15 分钟的系统平均负载。
sar监控内存
[root@localhost~]# sar -r 2 3
Linux 2.6.32-573.22.1.el6.i686 (localhost) 2016年11月02日 _i686_ (1 CPU)
07时22分04秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
07时22分06秒 241108 269556 52.79 12736 90360 543584 21.11
07时22分08秒 241108 269556 52.79 12736 90360 543584 21.11
07时22分10秒 241108 269556 52.79 12736 90360 543584 21.11
平均时间: 241108 269556 52.79 12736 90360 543584 21.11
2表示每2秒取样一次,3表示取数3次,-r显示显示系统内存使用情况。
kbmemfree: 这个值和 free 命令中的 free 值基本一致,所以它不包括 buffer 和 cache 的空间。
kbmemused:这个值和 free 命令中的 used 值基本一致,所以它包括 buffer 和 cache 的空间。
%memused:这个值是 kbmemused 和内存总量(不包括 swap)的一个百分比。
kbbuffers 和 kbcached:这两个值就是 free 命令中的 buffer 和 cache。
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)。
%commit:这个值是 kbcommit 与内存总量(包括 swap)的一个百分比。
[root@localhost~]# sar -B 2 3
Linux 2.6.32-573.22.1.el6.i686 (localhost) 2016年11月02日 _i686_ (1 CPU)
07时26分26秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
07时26分28秒 0.00 0.00 18.91 0.00 52.24 0.00 0.00 0.00 0.00
07时26分30秒 0.00 0.00 19.60 0.00 52.76 0.00 0.00 0.00 0.00
07时26分32秒 0.00 5.97 15.42 0.00 52.24 0.00 0.00 0.00 0.00
平均时间: 0.00 2.00 17.97 0.00 52.41 0.00 0.00 0.00 0.00
2表示每2秒取样一次,3表示取数3次,-B显示系统内存分页情况。
pgpgin/s:表示每秒从磁盘或 SWAP 置换到内存的字节数(KB)。
pgpgout/s:表示每秒从内存置换到磁盘或 SWAP 的字节数(KB)。
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)。
majflt/s:每秒钟产生的主缺页数。
[[root@localhost~]# sar -W 2 3
Linux 2.6.32-573.22.1.el6.i686 (localhost) 2016年11月02日 _i686_ (1 CPU)
08时31分10秒 pswpin/s pswpout/s
08时31分12秒 0.00 0.00
08时31分14秒 0.00 0.00
08时31分16秒 0.00 0.00
平均时间: 0.00 0.00
2表示每2秒取样一次,3表示取数3次,-W显示系统虚拟内存分页情况。
pswpin/s:每秒系统换入的交换页面(swap page)数量。
pswpout/s:每秒系统换出的交换页面(swap page)数量。
原文:https://www.cnblogs.com/zzuyanan1/p/14587908.html