Linux 系统性能监控
1 htop
[root@localhost ~]# htop
1 [|| 2.1%] Tasks: 51, 73 thr; 1 running
2 [| 0.3%] Load average: 0.00 0.02 0.00
Mem[||||||||||||||||||||||||||||||||||||133/474MB] Uptime: 08:38:50
Swp[ 0/2047MB]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
4607 root 20 0 109M 1780 1232 R 0.0 0.4 0:00.26 htop
4556 root 20 0 109M 1716 1232 S 1.0 0.4 0:14.89 htop
1 root 20 0 19356 1612 1304 S 0.0 0.3 0:02.04 /sbin/init
447 root 16 -4 11232 1344 332 S 0.0 0.3 0:00.59 /sbin/udevd -d
1338 root 16 -4 27596 848 592 S 0.0 0.2 0:00.21 auditd
1337 root 16 -4 27596 848 592 S 0.0 0.2 0:00.38 auditd
1368 root 20 0 243M 1680 1092 S 0.0 0.3 0:00.11 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
1369 root 20 0 243M 1680 1092 S 0.0 0.3 0:00.16 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
1370 root 20 0 243M 1680 1092 S 0.0 0.3 0:00.08 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
交互式命令
u:显示指定用户的进程信息
按u,再选择你要看的用户的进程
s:显示进程的系统调用
选中进程,再按s
l:显示进程打开的文件
t:以层级格式显示进程信息
a:设定进程绑定到某个CPU,即只在这个CPU上运行该程序
选中进程,再按a,显示如下图[x] 1和[x]2 有两个核心,按上下箭头选择
[root@localhost ~]# htop
1 [||| 3.9%] Tasks: 52, 73 thr; 1 running
2 [| 0.6%] Load average: 0.00 0.00 0.00
Mem[||||||||||||||||||||||||||||||||||||133/474MB] Uptime: 08:46:20
Swp[ 0/2047MB]
Use CPUs: PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
[x] 1 4556 root 20 0 109M 1728 1236 S 2.0 0.4 0:23.76 htop
[x] 2 4647 root 20 0 109M 1792 1236 R 1.0 0.4 0:00.23 htop
4579 root 20 0 98M 4444 3428 S 1.0 0.9 0:00.51 sshd: root@pts/0
1 root 20 0 19356 1612 1304 S 0.0 0.3 0:02.04 /sbin/init
447 root 16 -4 11232 1344 332 S 0.0 0.3 0:00.59 /sbin/udevd -d
1338 root 16 -4 27596 848 592 S 0.0 0.2 0:00.21 auditd
1337 root 16 -4 27596 848 592 S 0.0 0.2 0:00.39 auditd
1368 root 20 0 243M 1680 1092 S 0.0 0.3 0:00.11 /sbin/rsyslogd -i /var/run/sysl
1369 root 20 0 243M 1680 1092 S 0.0 0.3 0:00.16 /sbin/rsyslogd -i /var/run/sysl
1370 root 20 0 243M 1680 1092 S 0.0 0.3 0:00.08 /sbin/rsyslogd -i /var/run/sysl
1367 root 20 0 243M 1680 1092 S 0.0 0.3 0:00.39 /sbin/rsyslogd -i /var/run/sysl
1397 root 20 0 18240 704 456 S 0.0 0.1 0:12.71 irqbalance --pid=/var/run/irqba
命令行选项
-d: 延时时间,即多长时间刷新一次
-u:显示指定用户的进程信息
-s:根据指定的字段进行排序
例如上图显示的PID,USER,PRI等字段
2 glances
[root@localhost ~]# glances
localhost.localdomain (CentOS 6.6 64bit / Linux 2.6.32-504.el6.x86_64) Uptime: 8:49:00
CPU 3.0% Load 2-core Mem 30.3% active: 150M Swap 0.0%
user: 1.1% nice: 0.0% 1 min: 0.44 total: 475M inactive: 131M total: 2.00G
system: 1.9% iowait: 0.0% 5 min: 0.13 used: 144M buffers: 44.3M used: 0
idle: 97.0% irq: 0.0% 15 min: 0.04 free: 331M cached: 203M free: 2.00G
Network Rx/s Tx/s Tasks 146 (219 thr), 1 run, 145 slp, 0 oth sorted automatically
eth1 2Kb 2Kb
lo 0b 0b VIRT RES CPU% MEM% PID USER NI S TIME+ NAME
206M 12M 3.5 2.5 4660 root 0 R 0:01.30 glances
Disk I/O In/s Out/s 110M 2M 2.2 0.4 4556 root 0 S 0:27.53 htop
dm-0 17K 0 0 0 1.0 0.0 1042 root 0 S 0:00.67 flush-253:3
dm-1 0 0 0 0 0.3 0.0 12 root 0 S 0:31.78 events/1
dm-2 0 0 19M 2M 0.0 0.3 1 root 0 S 0:02.13 /sbin/init
dm-3 12K 1K 0 0 0.0 0.0 2 root 0 S 0:00.80 kthreadd
-b:以Byte/s为单位显示网卡设备数据交换速率;上图的eth1显示的数据
-d:关闭磁盘I/O功能模块;上图的Disk I/O 显示的
-f /PATH/TO/SOMEFILE:设置输出文件的位置
-o {HTML|CSV}:输出文件的保存格式
-m:关闭mount功能模块
-n:关闭网络功能模块
-r:关能模块闭进程列表功
-t #: 指定延迟时长,默认为3秒
-1单独显示每颗CPU相关负载数据信息
针对多核心的CPU
glances支持远程模式:
即可以以C/S模式工作:
Server: 以监听模式启动glances;
Client: 以远程模式启动glances,远程连入指定服务器,并Server上的相关性能数据;
服务模式:
glances -s -B IPADDR
-B: 用于指明监听的本地地址
客户端模式:
glances -c IPADDR
-c: 用于连入的服务器的地址
3 dstat [-afv] [options..] [delay [count]]
[root@localhost ~]# dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
0 0 100 0 0 0|8021B 4169B| 0 0 | 0 0 | 27 22
0 1 98 0 0 0| 0 0 | 424B 826B| 0 0 | 62 33
0 0 100 0 0 0| 0 132k| 152B 346B| 0 0 | 26 26
1 1 98 0 0 0| 0 0 | 396B 346B| 0 0 | 59 36
1 1 99 0 0 0| 0 56k| 396B 346B| 0 0 | 83 101
0 1 98 0 0 0| 0 0 | 212B 346B| 0 0 | 59 27
-c: 显示cpu性能指标相关的统计数据
-d: 显示disk相关的速率数据
-g: 显示page相关的速率数据
-i: 显示interrupt相关的速率数据
上面四项对应于上图四列信息
-l: 显示load average相关的统计数据
[root@localhost ~]# dstat -l
---load-avg---
1m 5m 15m
0.04 0.22 0.13
0.04 0.22 0.13
-m: 显示memory相关的统计数据
[root@localhost ~]# dstat -m
------memory-usage-----
used buff cach free
146M 23.5M 279M 25.9M
146M 23.5M 279M 25.9M
-n: 显示网络收发数据的速率
-p: 显示进程相关的统计数据
[root@localhost ~]# dstat -p
---procs---
run blk new
0 0 0.3
0 0 0
0 0 0
-r: io请求的速率;
[root@localhost ~]# dstat -r
--io/total-
read writ
0.68 0.49
0 0
-s: 显示swap的相关数据
[root@localhost ~]# dstat -s
----swap---
used free
0 2048M
-y: 显示系统相关的数据,包括中断和进程切换
--top-cpu:显示最占用CPU的进程
[root@localhost ~]# dstat --top-cpu
-most-expensive-
cpu process
htop 0.1
htop 1.5
--top-bio:显示最消耗block io的进程
--top-io:最占用io的进程
--top-mem:显示最占用内存的进程
--ipc: 显示进程间通信相关的速率数据--ipc: 显示进程间通信相关的速率数据
[root@localhost ~]# dstat --ipc
--sysv-ipc-
msg sem shm
0 4 1
0 4 1
--raw: 显示raw套接的相关的数据
--tcp: 显示tcp套接字的相关数据
--udp: 显示udp套接字的相关数据
--unix: 显示unix sock接口相关的统计数据
--socket: 显示套接字统计信息
-a: -cdngy