> CentOS > CentOS入门 >

CentOS系统资源常用监控工具

Linux系统维护的主要工作就是保证系统和应用的稳定。而如果想保证稳定就必须时刻了解系统的状态;cpu、内存、磁盘、网络和各种应用程序的运行于占用资源的状态等。同时掌握了系统资源的状态信息;也可以对系统进行优化,以发挥更好的性能。

对于这些信息的查看;需要一些工具能够及时的查看和分析;下面就对Linux系统资源监控常用的工具进行简单的介绍:

1、sar(System Activity Recorder)

sar可以显示CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情

# sar -h
Usage: sar [ options ] [ <interval> [ <count> ] ]
Main options and reports:
    -b  I/and transfer rate statistics
    -B  Paging statistics
    -d  Block device statistics
    -I { <int> | SUM ALL | XALL }
        Interrupts statistics
    -m  Power management statistics
    -n { <keyword> [,...] | ALL }
        Network statistics
        Keywords are:
        DEV Network interfaces
        EDEV    Network interfaces (errors)
.....
详细请查看帮助信息

测试:

# sar -b -r -u 1        为了方便;这里一次性显示三项
Linux 2.6.32-431.el6.x86_64 (node2.soul.com)     05/25/2014     _x86_64_    (1 CPU)
#cpu信息
09:07:24 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:07:25 PM     all      0.00      0.00      2.02      0.00      0.00     97.98
#I/O信息
09:07:24 PM       tps      rtps      wtps   bread/s   bwrtn/s
09:07:25 PM      0.00      0.00      0.00      0.00      0.00
#内存信息
09:07:24 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
09:07:25 PM    764828    247524     24.45     11772    102232   1142588     36.75
 
#对于这其中每项的含义就不做一一解释;基本表示的很清楚;大都是词面意思。

sar还记录每天的cpu信息

# sar -f /var/log/sa/sa25    sa25表示本月25号的信息
Linux 2.6.32-431.el6.x86_64 (node2.soul.com)     05/25/2014     _x86_64_    (1 CPU)
 
12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      0.02      0.00      0.10      0.08      0.00     99.80
12:20:01 AM     all      0.01      0.00      0.10      0.06      0.00     99.83
....
03:20:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:30:01 PM     all      7.38      0.00      0.53      0.31      0.00     91.77
03:40:02 PM     all     23.89      0.00      0.31      0.04      0.00     75.76
03:50:01 PM     all     21.84      0.00      2.37      0.32      0.00     75.46
04:00:04 PM     all     97.14      0.00      2.86      0.00      0.00      0.00
04:10:01 PM     all     47.26      0.00      0.41      0.17      0.00     52.16
04:20:01 PM     all      0.01      0.00      0.09      0.98      0.00     98.92
Average:        all      8.23      0.00      0.43      0.24      0.00     91.09
#从上述信息可以看出下午3:20-4:10之前CPU占用率很高
#每个文件最后一行都是统计的平均数据。

显示块设备的信息

# sar -d
Linux 2.6.32-431.el6.x86_64 (node2.soul.com)     05/25/2014     _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   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:10:01 AM    dev8-0      0.20      0.27      2.11     12.07      0.00      5.64      5.19      0.10
12:10:01 AM   dev8-16      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.01      0.00      8.00      0.00      8.00      8.00      0.00

网络相关的

# sar -n NFS | more
Linux 2.6.32-431.el6.x86_64 (node2.soul.com)     05/25/2014     _x86_64_    (1 CPU)
...
08:50:01 PM      0.02      0.00      0.00      0.00      0.00      0.00
09:00:01 PM      0.02      0.00      0.00      0.00      0.00      0.00
09:10:01 PM      0.01      0.02      0.00      0.00      0.00      0.00
09:20:01 PM      0.00      0.01      0.00      0.00      0.00      0.00
Average:         0.02      0.00      0.00      0.00      0.00      0.00
 
# sar -n DEV | more
Linux 2.6.32-431.el6.x86_64 (node2.soul.com)     05/25/2014     _x86_64_    (1 CPU)
 
12:00:01 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:10:01 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
...
Average:           lo      0.92      0.92      1.47      1.47      0.00      0.00      0.00
Average:         eth0    627.52     19.67    142.99      2.63      0.00      0.00      0.00
Average:       virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00

详细查阅帮助信息即可。

-------------------------------------------------------------------------------------------

2、Htop

Htop是一个Linux实时监控的应用程序。它显示了运行的进程的完整列表和正在运行的任务。可以直接鼠标点击操作。可以上下左右的拉动菜单查看完整的信息。

系统一般默认没有安装;需要安装该工具。

#  yum -y install htop
# htop

wKioL1OB80CzP9zVAAOx1j7stzc440.jpg

可以看到详细的CPU和内存等信息;下方定义的F1-F10快捷键。也可以直接鼠标点击。

wKiom1OB9BzCEYqMAAE3ea0zEiw257.jpg

按t显示树状视图

wKiom1OB9hrgGi5DAAGIrFlwHlY247.jpg

信息显示和帮助也都很信息;一目了然。直接按"/"可以进行搜索关键字。

-------------------------------------------------------------------------------------------

3、dstat

dstat是一个全能系统信息统计工具。与sysstat相比,dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察;而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示。和sysstat相同的是, dstat也可以收集指定的性能资源, 譬如 dstat -c 即显示CPU的使用情况。

# dstat -h            查看帮助信息
Usage: dstat [-afv] [options..] [delay [count]]
Versatile tool for generating system resource statistics
Dstat options:
  -c, --cpu              enable cpu stats            
     -0,3,total           include cpu0, cpu3 and total
  -d, --disk             enable disk stats
     -D total,hda           include hda and total
  -g, --page             enable page stats
  -i, --int              enable interrupt stats
     -5,eth2              include int5 and interrupt used by eth2
  -l, --load             enable load stats
  -m, --mem              enable memory stats
  -n, --net              enable network stats
     -N eth1,total          include eth1 and total

查看cpu信息

# dstat -c 1 5        显示cpu状态;每1秒刷新1次,共5次
----total-cpu-usage----
usr sys idl wai hiq siq
  8   0  92   0   0   0
  0   0 100   0   0   0
  0   0 100   0   0   0
  0   1  99   0   0   0
  0   0 100   0   0   0
  0   0 100   0   0   0

同时显示多个状态信息

wKiom1OB-E_imaiSAAHTzbZAPMY969.jpg

可以看出每项都有颜色标记出来。显示很清楚。

还支持插件监控

# dstat --list
internal:
    aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, 
    page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm
/usr/share/dstat:
    battery, battery-remain, cpufreq, dbus, disk-util, fan, freespace, gpfs, gpfs-ops, helloworld, 
    innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, 
    mysql5-conn, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, 
    power, proc-count, rpc, rpcd, sendmail, snooze, thermal, top-bio, top-cpu, top-cputime, 
    top-cputime-avg, top-io, top-latency, top-latency-avg, top-mem, top-oom, utmp, vm-memctl, vmk-hba, 
    vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi

显示最占用cpu进程

 
# dstat --top-cpu
-most-expensive-
  cpu process   
mysqld       0.1
                
mmm_agentd   4.0
sshd: root@pt1.0
kblockd/0    1.0
events/0     1.0

占用内存最多的进程

# dstat --top-mem
--most-expensive-
  memory process 
mysqld      37.0M
mysqld      37.0M
mysqld      37.0M
mysqld      37.0M

具体需要慢慢了解。

-------------------------------------------------------------------------------------------

4、Glances

Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具。 通过 Glances,我们可以监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器 和 文件系统 空间的利用情况。

Glances 是一个用来监视 GNU/Linux 和 FreeBSD 操作系统的 GPL 授权的自由软件。

Glances 同时也提供了很多实用的选项。 其中我们能够在配置文件见到的一项主要的功能就是设置关键值及相应的标签 (careful[小心], warning[警告] 和 critical[严重]), 然后她会自动帮我们用不同颜色标出系统达到某个瓶颈的信息。

Glances主要功能:

  • CPU 信息 (用户的相关应用, 系统核心程序和空闲程序)

  • 总内存信息,包括了物理内存,交换空间和空闲内存等等

  • 之前的 1 分钟、5 分钟和 15 分钟平均的 CPU 负载

  • 网络链接的下行和上行速度

  • 处理器总数,以及其活动状态

  • 硬盘 I/O 相关(读写)速度详情

  • 当前挂载设备的磁盘使用情况

  • 高 CPU 和内存使用的进程名,和相关应用的位置

  • 在底部显示当前日期和时间

  • 将消耗最高系统资源的进程用红色标出

1
# glances

wKiom1OB_IKB5EfnAAMjsrsrQX8574.jpg

可以看出显示cpu/Memroy/network/disk I/O等的相关信息。

wKioL1OB_N-BupaDAAKEPCnD5Is791.jpg

帮助信息。

同时还可以远程监控:

在服务器端启动
# glances -s -B 192.168.0.113
Define the password for the Glances server
Password: 
Password (confirm): 
Glances server is running on 192.168.0.113:61209

客户端连接:

wKiom1OB_mTDTY3ZAAIJPseK3wE037.jpg

 

同时还可以在web页面监控:

#安装jinja
# yum -y install python-jinja2
# glances -o HTML -f /var/www/html/     -o:输出格式;HTML/CSS,-f:指定文件目录

wKiom1OCAhDjJbo0AAFIxO-0Uqs763.jpg

(责任编辑:IT)