文章目录

  • 一、进程监控
  • ps:进程监控
  • top:实时进程监控
  • 系统统计信息详解
  • 进程信息详解
  • top工具使用
  • top结合ps,netstat使用
  • kill:进程终结
  • 二、TCP/IP监控
  • netstat:参数
  • 命令实例
  • 三、磁盘监控
  • df:查看磁盘使用情况
  • du:查看目录下文件大小


一、进程监控

ps:进程监控

-e: 显示所有进程

-f:显示完整格式的输出

-l:显示长列表

-L:显示进程中的进程

[root@vm01 ~]# ps -ef

linux strace 监控进程 linux实时监控命令_top命令


| UID:启动这些进程的用户

| PID:进程ID

| PPID:父进程ID

| C:进程生命周期中的CPU利用率

| STIME:进程启动时的系统时间

| TTY:进程启动时的终端设备

| TIME:运行进程需要的累计CPU时间

| CMP:启动的程序名称

top:实时进程监控

ps只能收集特定时间点的进程信息,如果想观察频繁换进换出的进程趋势,top就刚好适合这种情况,它是实时显示的。

top这个工具经常用来找出占用系统大部分资源的罪魁祸首。

linux strace 监控进程 linux实时监控命令_优先级_02


top命令显示区分为两个部分,上面是系统统计信息;下面是进程信息。

系统统计信息详解

第一行

linux strace 监控进程 linux实时监控命令_top命令_03


第一行,需要关注的是load avg这行,通过这三个值,我们能看出系统负载的发展趋势。这个load值,除以逻辑CPU的数量,大于5就表明系统在超负荷运转了。

逻辑CPU的数量查看:

cat /proc/cpuinfo| grep “processor”| wc -l第二行

linux strace 监控进程 linux实时监控命令_top命令_04


第三行

linux strace 监控进程 linux实时监控命令_优先级_05


us表示用户进程占用的cpu;

sy表示系统内核占用的cpu

ni表示用户进程空间改变过优先级的进程cpu占用率

id表示空闲cpu占用率

wa表示等待输入输出的cpu时间百分比

hi表示硬件中断请求

si表示软件中断请求

st:steal time

Steal值比较高的话,你需要向主机供应商申请扩容虚拟机。

服务器上的另一个虚拟机可能拥有更大更多的CPU时间片,你可能需要申请升级以与之竞争。另外,高steal值可能意味着主机供应商在服务器上过量地出售虚拟机。steal值还是不降的话,你应该寻找另一家服务供应商。

注意:

这一行是CPU的信息,比较重要,需要关注us、sy、wa这3个值占用是否高。us一般超过75%就算高,sy一般超过30%就算高,wa超过5%就算高。第四行

注意单位是K

linux strace 监控进程 linux实时监控命令_top命令_06

第五行

linux strace 监控进程 linux实时监控命令_优先级_07

进程信息详解

linux strace 监控进程 linux实时监控命令_优先级_08


PID:进程id

USER:进程所有者用户名;

PR:优先级。数值越大优先级越高;

NI:nice值,负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存总量,单位KB。VIRT=SWAP+RES SWAP:进程使用的虚拟内存中被换出的大小,单位KB

RES:进程使用的、未被换出的物理内存大小,单位KB,RES=CODE+DATA SHR:共享内存大小,单位KB

SHR:共享内存大小,单位KB

S:进程状态。D表示不可中断的睡眠状态;R表示运行;S表示睡眠;T表示跟踪/停止;Z表示僵尸进程。

%CPU:上次更新到现在的CPU占用百分比 ;

%MEM:进程使用的物理内存百分比 ;

TIME+:进程使用的CPU时间总计,单位1/100秒;

top工具使用

命令格式:
top [-]
参数说明:
n :刷新次数
d:输入刷新时间,单位秒
b :顺序输出,而不是刷新输出
p: 通过指定监控进程ID来仅仅监控某个进程的状态。top -p 16091 只看某一个进程的;
c: 显示整个命令行而不只是显示命令名
u :指定某个用户进程

在top命令的显示窗口,我们还可以输入以下字母,进行一些交互:
d:输入刷新时间,单位秒
h或者? : 显示帮助画面,给出一些简短的命令总结说明。
q: 退出top或返回上一步。
M : 根据驻留内存大小进行排序。
P:根据CPU使用百分比大小进行排序。
T: 根据时间/累计时间进行排序。
按1,显示多核CPU的使用情况 ,再按1退出
f:显示进程列的信息,如想要在进程统计信息里展示哪些列项,可以隐藏或显示对应列,按a可以改变显示顺序

top结合ps,netstat使用

top命令的监控最小单位是进程,所以看不到程序的线程数和客户连接数,通常可以ps和netstate两个命令来补充top的不足。

监控java线程数:
ps -eLf | grep java | wc -l
监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l
上面两个命令,可改动grep的参数,来达到更细致的监控要求。

系统根目录/proc中,每一个数字子目录的名字都是运行中的进程的PID,进入任一个进程目录,可通过其中文件或目录来观察进程的各项运行指标
(PID指的是进程ID)
ls /proc/PID/task | wc -l

kill:进程终结

kill命令通过进程ID(PID)给进程发送信号,你必须是进程的属主或root用户
[root@vm01 ~]# kill 1365
[root@vm01 ~]# kill -9 1365 # -9 表示强制终结进程

二、TCP/IP监控

netstat:参数

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

命令实例

[root@vm01 ~]# netstat -a # 列出所有端口
[root@vm01 ~]# netstat -at # 列出所有TCP端口
[root@vm01 ~]# netstat -au # 列出所有UDP端口
[root@vm01 ~]# netstat -p #显示 PID 和进程名称
[root@vm01 ~]# netstat -s #显示每个协议的统计信息
[root@vm01 ~]# netstat -antp #查看端口和服务

参数很多,小伙伴可以通过 netstat --help帮助命令,多多了解

三、磁盘监控

df:查看磁盘使用情况

[root@vm01 ~]# df -h

linux strace 监控进程 linux实时监控命令_Linux命令_09

du:查看目录下文件大小

如果没指定哪个目录,那么显示的是该目录的总大小

[root@vm01 test]# du -hs

linux strace 监控进程 linux实时监控命令_top命令_10


显示该目录下的所有文件及目录大小

[root@vm01 test]# du -hs *

linux strace 监控进程 linux实时监控命令_Linux命令_11