系统服务监控命令

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值