linux系统监控命令
top
Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。
这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。
[iteqa@xxx.com logs]$ top
op - 14:31:17 up 183 days, 21:41, 2 users, load average: 0.24, 0.11, 0.10
Tasks: 357 total, 1 running, 350 sleeping, 0 stopped, 6 zombie
Cpu(s): 0.5% us, 0.5% sy, 0.0% ni, 98.9% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 65944836k total, 64843976k used, 1100860k free, 525120k buffers
Swap: 0k total, 0k used, 0k free, 26752252k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4531 root 20 0 616m 21m 2484 S 1.0 0.0 2724:02 noah-agent64
9025 shenyanc 20 0 16.1g 588m 8616 S 1.0 0.9 95:30.16 java
10591 root 20 0 99912 5556 2204 S 1.0 0.0 361:30.39 ssl-waf_checkPr
5449 shenyanc 20 0 619m 44m 7028 S 0.7 0.1 4:20.57 node
27597 iteqa 20 0 6480 1216 756 R 0.7 0.0 0:00.34 top
3054 iteqa 20 0 2603m 1.0g 8216 S 0.3 1.6 24:27.84 java
3260 shenyanc 20 0 1085m 423m 16m S 0.3 0.7 1:13.23 java
4796 iteqa 20 0 2655m 1.5g 9872 S 0.3 2.4 26:24.27 java
...
按Shift + O,可以选择需要的列进行排序。
按 c, 显示进程的绝对路径。
按 d, 可以修改top命令刷新的时间间隔。
按 k, 可以在不退出命令的前提下,杀掉进程。
按 q, 退出该命令。
ps
PS是LINUX下查看当前进程的命令.
ps aux 是用BSD的格式来显示 java这个进程
显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND
ps -ef 是用标准的格式显示java这个进程
显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD
[iteqa@xxx.com logs]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 4828 560 ? Ss 2013 4:48 init [3]
root 2 0.0 0.0 0 0 ? S 2013 0:00 [kthreadd]
...
root 9 0.0 0.0 0 0 ? S 2013 0:51 [ksoftirqd/1]
iteqa 31038 31036 0 2013 ? 00:00:00 ./httpd -k start
iteqa 31557 31036 0 Feb24 ? 00:00:00 ./httpd -k start
11242 31757 1 0 Apr21 ? 00:01:00 ./memcached -d -c 10240 -m 1024 -u
...
vmstat
VmStat 命令用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 块、中断、CPU 活动 等的统计信息。如果 vmstat 命令不可用,需要安装 sysstat 软件包。
[iteqa@xxx.com logs]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 0 0 952232 525476 26063752 0 0 0 7 0 0 1 1 98 0
r 表示运行队列(就是说多少个进程真的分配到CPU)。当这个值超过了CPU数目,就会出现CPU瓶颈了。
b 表示阻塞的进程。
swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了
free 空闲的物理内存的大小。
buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
cache cache直接用来记忆我们打开的文件,给文件做缓冲.
si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
bi 每秒从块设备接收到的块数,即读块设备
bo 每秒发送到块设备的块数,即写块设备。
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数。
us 用户CPU时间。
sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id 空闲 CPU时间
wa 等待IO CPU时间。
vmstat 2 6 # 每隔2s执行1次vmstat,执行6次
vmstat -s #显示内存相关统计信息及多种系统活动数量
vmstat -d #显示磁盘相关统计信息
iostat
iostat,用于报告CPU统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息。
[iteqa@xxx.com logs]$ iostat
Linux 2.6.32_1-12-0-0 (xxx.com) 05/04/2014 _x86_64_ (12 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.45 0.03 0.63 0.01 0.00 97.88
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 2.82 7.54 159.15 119839988 2529173336
avg-cpu段:
%user: 在用户级别运行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系统级别(kernel)运行所使用CPU的百分比.
%iowait: CPU等待硬件I/O时,所占用CPU百分比.
%idle: CPU空闲时间的百分比.
Device段:
tps: 每秒钟发送到的I/O请求数.
Blk_read /s: 每秒读取的block数.
Blk_wrtn/s: 每秒写入的block数.
Blk_read: 读入的block总数.
Blk_wrtn: 写入的block总数.
实例:
iostat -c #显示CPU信息
iostat -d #显示硬盘的io
iostat -x #显示扩展信息
iostat -p sda 2 6 #每隔2秒显示一次sda及上面所有分区的统计信息,共输出6次
netstat
netstat是一个用于监控进出网络的包和网络接口统计的命令行工具。
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令
[iteqa@xxx.com logs]$ netstat -tlnp|grep 8814
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:8814 0.0.0.0:* LISTEN 22751/java
netstat -at #只监控tcp
netstat -au #只监控udp
netstat -lu #显示所有被Listen的udp端口
netstat -st #显示tcp端口统计信息
netstat -p #可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中
df
df命令可显示所有文件系统对i节点和磁盘块的使用情况。
该命令各个选项的含义:
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统
-k 以k字节为单位显示。-i 显示i节点信息,而不是磁盘块
-t 显示各指定类型的文件系统的磁盘空间使用情况
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)
-T 显示文件系统类型
[iteqa@xxx.com logs]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 8513656 5281072 3232584 63% /
/dev/sda3 1406859160 140034428 1266824732 10% /home
ocean_netdisk_mfs0:9421
316731209024 93028134336 223703074688 30% /mfs_netdisk_2
/home/tmp 1406859160 140034428 1266824732 10% /tmp