您的位置:首页 > 运维架构

系统服务监控命令

2016-03-10 13:52 288 查看

1.查看某个进程中运行的线程数量

所有进程的运行状态都可以用文件来获取。系统根目录/proc中,每一个数字子目录的名字都是运行中的进程的PID,进入任一个进程目录,可通过其中文件或目录来观察进程的各项运行指标,例如task目录就是用来描述进程中线程的,因此也可以通过下面的方法获取某进程中运行中的线程数量(PID指的是进程ID):

ls /proc/进程号/task | wc -l


2.监控java线程数和网络连接数

top命令是Linux上进行系统监控的首选命令,但有时候却达不到我们的要求,比如当前这台服务器,top监控有很大的局限性。top命令的监控最小单位是进程,所以看不到java线程数和客户连接数,而这两个指标是java的web服务非常重要的指标,通常我用ps和netstate两个命令来补充top的不足。

监控java线程数:
ps -eLf | grep java | wc -l


监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l


3.磁盘的剩余空间

磁盘的剩余空间也是一个非常关键的指标,如果没有足够的剩余空间,正常的日志写入及系统I/O都将无法进行。

通过df命令,可以看到磁盘的剩余空间:

df -h


4.具体目录所占磁盘空间大小

如果需要查看具体目录所占用的空间,分析大文件所在位置,可以使用du命令查看:

du -ah 具体目录名


5.查看cpu信息

cat /proc/cpuinfo | grep "想查看的信息关键字"


如查看cpu数量

cat /proc/cpuinfo | grep "model name" | wc -l


6.监控网络传输

通过sar命令,可以看到系统的网络状况:

sar -n DEV 1 1


-n 表示回报网络状,DEV表示查看的是各个网卡的网络流量,第一个1表示每一秒抽样一次,第二个1表示总共取一次。

得到如下图所示数据:



其中,

IFACE列,lo表示本地回环网络,eth0表示网卡1,eth1表示网卡2。

rxpck/s:表示每秒接收的数据包数量。

txpck/s:表示每秒发出的书包数量。

rxKB/s:表示每秒接收到的字节数。

txKB/s:表示每秒发送的字节数。

rxcmp/s:表示每秒收到的压缩包数量。

txcmp/s:表示每秒发送的压缩包的数量。

rxmcst/s:表示每秒收到的广播包的数量。

average:表示的是多次取样的平均值。

7.磁盘I/O

磁盘I/O的繁忙程度也是一个重要的系统指标。对于I/O密集型的应用来说,比如数据库应用和分布式文件系统等,I/O的繁忙程度也一定程度反映了系统的负载情况,容易成为应用性能的瓶颈。

查看系统I/O状况:

iostat -d -k


-d 表示查看磁盘使用情况,-k表示已KB为单位显示。

得到如下图数据:



其中,

Device:表示设备名称。

tps:表示每秒处理的I/O请求数。

kB_read/s:表示每秒从设备读取的数量。

kB_wrtn/s:表示每秒向设备写入的数据量。

kB_read:表示读取的数据总量。

kB_wrtn:表示写入的数据总量。

8.内存使用

通过free命令,可以查看系统内存的使用情况。

free -m


-m 表示已MB为单位显示。

得到如下图数据:



linux的内存包括物理内存Mem和虚拟内存swap,如图:

total:内存总共大小。

used: 已使用内存的大小。

free:可使用内存的大小。

shared:多个进程共享的内存空间大小。

buffers:缓冲区的大小。

cached:缓存的大小。

注意:Linux的内存管理机制和Windows不同,其中一个思想就是讲内存使用率最大化,内核会将剩余空闲的内存申请为cached, 而cached不属于free的范畴。所以当系统有频繁的文件读/写的操作时,会发现cached区域比较大。当程序需要申请更大内存,而free内存不够时,系统会将一部分cached和buffers内存回收,在分配给应用程序。

所以,看系统真正已用和还有多少可用内存时,可以看第三行(-/+bufers/cache:),这一行将内存进行了重新计算,used减去buffers和cached占用的内存,而free则加上了buffers和cached对应的内存。

9.虚拟内存swap I/O

对于应用来说,更值得关注的是虚拟内存swap的消耗,swap内存使用过多,表示物理内存已经不够用了,操作系统将本该物理内存存储的一部分内存页调度到磁盘上了,以腾出足够的空间给当前进程使用。当其他进程需要运行时,再从磁盘将内存的页调度到物理内存中,以恢复进程运行。该过程将产生swap I/O,如果swap I/O较为频繁,将严重影响系统性能。

通过vmstat命令,可以查看swap I/O的情况

vmstat


得到如下图数据:



观察swap列,其中:

si:表示每秒从磁盘交换到内存的数据量,单位是KB/s。

so:表示每秒从内存交换到磁盘的数量,单位也是KB/s。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: