文章目录
- 一、进程监控
- ps:进程监控
- top:实时进程监控
- 系统统计信息详解
- 进程信息详解
- top工具使用
- top结合ps,netstat使用
- kill:进程终结
- 二、TCP/IP监控
- netstat:参数
- 命令实例
- 三、磁盘监控
- df:查看磁盘使用情况
- du:查看目录下文件大小
一、进程监控
ps:进程监控
-e: 显示所有进程
-f:显示完整格式的输出
-l:显示长列表
-L:显示进程中的进程
[root@vm01 ~]# ps -ef
| UID:启动这些进程的用户
| PID:进程ID
| PPID:父进程ID
| C:进程生命周期中的CPU利用率
| STIME:进程启动时的系统时间
| TTY:进程启动时的终端设备
| TIME:运行进程需要的累计CPU时间
| CMP:启动的程序名称
top:实时进程监控
ps只能收集特定时间点的进程信息,如果想观察频繁换进换出的进程趋势,top就刚好适合这种情况,它是实时显示的。
top这个工具经常用来找出占用系统大部分资源的罪魁祸首。
top命令显示区分为两个部分,上面是系统统计信息;下面是进程信息。
系统统计信息详解
第一行
第一行,需要关注的是load avg这行,通过这三个值,我们能看出系统负载的发展趋势。这个load值,除以逻辑CPU的数量,大于5就表明系统在超负荷运转了。
逻辑CPU的数量查看:
cat /proc/cpuinfo| grep “processor”| wc -l第二行
第三行
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
第五行
进程信息详解
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
du:查看目录下文件大小
如果没指定哪个目录,那么显示的是该目录的总大小
[root@vm01 test]# du -hs
显示该目录下的所有文件及目录大小
[root@vm01 test]# du -hs *