linux服务器监控

微信设置水滴昵称,个性中带点萌

这篇文章主要介绍一些常用的linux服务器性能监控命令,包括命令的常用参数、指标的含义以及一些交互操作。

几个问题

命令本身并不复杂,关键是你对操作系统基础知识的掌握和理解,先来看看下面几个问题:

  • CPU、内存以及硬盘的关系是怎样的?
  • 进程和线程是什么?有什么区别?有什么优缺点?
  • 什么是物理内存?什么是虚拟内存?什么时候要用到虚拟内存?
  • 什么是CPU中断?CPU上下文切换?CPU缺页计算?
  • 怎么理解系统负载?如何通过load average的值来判断系统负载是否过高?
  • ...

相信基础好的司机心里已经有个大致的答案,那如果你一知半解,请仔细阅读全文,部分答案会在相关的命令讲解中揭晓。对于理解错误或者不到位的地方希望老司机不吝赐教。

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:交换区总量,也叫虚拟内存。

那么,什么是虚拟内存?

img

现在明白什么是虚拟内存,什么时候要用到虚拟内存了吧。所以,当你在监控linux操作系统的时候,如果发现系统使用了交换内存,那么说明系统的 ** 物理内存已经用完了**,需要排查是哪些程序占用了物理内存,对内存进行进一步的深入分析。还有一点要说的就是,交换内存的速度是非常慢的。

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

img

好吧,我只是为了引起大家的注意。

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 时间
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值