Linux系统维护的主要工作就是保证系统和应用的稳定。而如果想保证稳定就必须时刻了解系统的状态;cpu、内存、磁盘、网络和各种应用程序的运行于占用资源的状态等。同时掌握了系统资源的状态信息;也可以对系统进行优化,以发挥更好的性能。
对于这些信息的查看;需要一些工具能够及时的查看和分析;下面就对Linux系统资源监控常用的工具进行简单的介绍:
1、sar(System Activity Recorder)
sar可以显示CPU 使用率、内存页数据、网络 I/O 和传输统计、进程创建活动和磁盘设备的活动详情
# sar -h
Usage: sar [ options ] [
Main options and reports:
-b I/O and transfer rate statistics
-B Paging statistics
-d Block device statistics
-I {
Interrupts statistics
-m Power management statistics
-n {
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
可以看到详细的CPU和内存等信息;下方定义的F1-F10快捷键。也可以直接鼠标点击。
按t显示树状视图
信息显示和帮助也都很信息;一目了然。直接按"/"可以进行搜索关键字。
-------------------------------------------------------------------------------------------
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
-C 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
-I 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
同时显示多个状态信息
可以看出每项都有颜色标记出来。显示很清楚。
还支持插件监控
# 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
可以看出显示cpu/Memroy/network/disk I/O等的相关信息。
帮助信息。
同时还可以远程监控:
在服务器端启动
# 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
客户端连接:
同时还可以在web页面监控:
#安装jinja
# yum -y install python-jinja2
# glances -o HTML -f /var/www/html/ -o:输出格式;HTML/CSS,-f:指定文件目录
-------------------------------------------------------------------------------------------