linux系统监控命令

来源:互联网 发布:mac电脑自带抠图软件 编辑:程序博客网 时间:2024/05/18 17:01

linux系统监控命令

top

Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。 
这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小、缓冲区使用大小,进程PID、所使用命令以及其他。它还可以显示正在运行进程的内存和CPU占用多的情况。

[iteqa@xxx.com logs]$ topop - 14:31:17 up 183 days, 21:41,  2 users,  load average: 0.24, 0.11, 0.10Tasks: 357 total,   1 running, 350 sleeping,   0 stopped,   6 zombieCpu(s):  0.5% us,  0.5% sy,  0.0% ni, 98.9% id,  0.0% wa,  0.0% hi,  0.0% siMem:  65944836k total, 64843976k used,  1100860k free,   525120k buffersSwap:        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 auxUSER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMANDroot         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 startiteqa    31557 31036  0 Feb24 ?        00:00:00 ./httpd -k start11242    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]$ vmstatprocs -----------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]$ iostatLinux 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.88Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtnsda               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 #显示硬盘的ioiostat -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]$ dfFilesystem           1K-blocks      Used Available Use% Mounted on/dev/sda2              8513656   5281072   3232584  63% //dev/sda3            1406859160 140034428 1266824732  10% /homeocean_netdisk_mfs0:9421                     316731209024 93028134336 223703074688  30% /mfs_netdisk_2/home/tmp            1406859160 140034428 1266824732  10% /tmp
0 0
原创粉丝点击