pstree 显示进程树 ({}是线程)
选项-p #显示进程编号
pstree username #查看指定用户的进程
centos7中可以使用选项-s来查看指定进程的父子进程
ps (默认显示当前终端运行的进程)
支持三种选项:
1、UNIX选项
-C cmdlist 指定命令(允许同时指定多个命令)
-L 显示线程
-e: 显示所有进程,相当于-A
-f: 显示完整格式程序信息
-F: 显示更完整格式的进程信息
-H: 以进程层级格式显示进程相关信息
-u userlist 指定有效的用户ID或名称(发起者)
-U userlist 指定真正的用户ID或名称(执行者)
-g gid或groupname 指定有效的gid或组名称
-G gid或groupname 指定真正的gid或组名称
-p pid 显示指定pid的进程(支持多个)
–ppid pid 显示属于pid的子进程
-M 显示SELinux信息,相当于Z
-t 指定终端号
2、BSD选项
a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程树,相当于 –forest
k|–sort 属性 对属性排序,属性前加- 表示倒序
o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
L 显示支持的属性列表
常用组合-例:
ps axo pid,cmd,%cpu –sort %cpu
ps -C vim o pid,cmd,%mem
ps aux
3、GNU选项
–sort
–ppid
ps输出属性说明
VSZ 虚拟内存(系统分配的内存大小)
RSS 实际内存(进程实际可用的内存大小)
STAT:进程状态
R:running
S: interruptable sleeping
D: uninterruptable sleeping
T: stopped
Z: zombie
+: 前台进程
l: 多线程进程
L:内存分页并带锁
N:低优先级进程
<: 高优先级进程
s: session leader,会话(子进程)发起者
ps示例
列出有效组名称(或会话)所拥有的所有进程:
ps -fg mysql ps -fG 27
以父进程ID来显示其下所有的进程,如显示父进程为1154的 所有进程:
ps -f –ppid 1234
查看进程的PID,PPID,用户名和命令:
ps -eo pid,ppid,user,cmd
自定义格式显示文件系统组,ni值开始时间和进程的时间:
ps -p 1234 -o pid,ppid,fgroup,ni,lstart,etime
查找指定进程名所有的所属PID,在编写需要从std输出或文 件读取PID的脚本时这个参数很有用:
ps -C httpd,sshd -o pid=
检查一个进程的执行时间
ps -eo comm,etime,user | grep nginx
查找占用最多内存和CPU的进程:
ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%mem | head
ps -eo pid,ppid,cmd,%mem,%cpu –sort=-%cpu | head
使用watch实用程序执行重复的输出以实现对就程进行实时的 监视,如下面的命令显示每秒钟的监视:
watch -n 1 ‘ps -eo pid,ppid,cmd,%mem,%cpu –sort=- %mem | head’
pidof cmd #查看此进程下的所有子进程
说明:此命令可以作为判断进程是否运行正常的手段
uptime
显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)
系统平均负载: 指在特定时间间隔内运行队列中的平均进程数
通常每个CPU内核的当前活动进程数不大于3,那么系统 的性能良好。如果每个CPU内核的任务数大于5,那么此 主机的性能有严重问题
如果linux主机是1个双核CPU,当Load Average 为6的 时候说明机器已经被充分使用
top:有许多内置命令:
排序:
P:以占据的CPU百分比,%CPU
M:占据内存百分比,%MEM
T:累积占据CPU时长,TIME+
首部信息显示:
uptime信息:l命令
tasks及cpu信息:t命令
cpu分别显示:1 (数字)
memory信息:m命令
退出命令:q
修改刷新时间间隔:s
终止指定进程:k
保存文件:W
栏位信息简介
us:用户空间
sy:内核空间
ni:调整nice时间
id:空闲
wa:等待IO时间
hi:硬中断
si:软中断(模式切换)
st:虚拟机偷走的时间
选项:
-d #: 指定刷新时间间隔,默认为3秒
-b: 全部显示所有进程
-n #: 刷新多少次后退出
ltop命令
选项:
-d #: 指定延迟时间;
-u UserName: 仅显示指定用户的进程
-s COLUME: 以指定字段进行排序
子命令:
s: 跟踪选定进程的系统调用
l: 显示选定进程打开的文件列表
a:将选定的进程绑定至某指定CPU核心
t: 显示进程树
vmstat命令:虚拟内存信息(以内存为参照)
vmstat 1 5 #1秒显示1次,显示5次
输出说明:
procs
r:可运行(正运行或等待运行)进程的个数,和核心数有关
b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
memory
swpd: 交换内存的使用总量
free:空闲物理内存总量
buffer:用于buffer的内存总量
cache:用于cache的内存总量
swap:
si:从磁盘交换进内存的数据速率(kb/s)
so:从内存交换至磁盘的数据速率(kb/s)
io:
bi:从块设备读入数据到系统的速率(kb/s)
bo: 保存数据至块设备的速率
system
in: interrupts 中断速率,包括时钟
cs: context switch 进程切换速率
选项
-s: 显示内存的统计数据
iostat #统计CPU和设备IO信息
iostat 1 10 #1秒显示一次,10次结束
glances 远程监控主机状态
服务器模式:
glances -s -B IPADDR
IPADDR: 指明监听的本机哪个地址
不加-B 监听在所有地址
客户端模式:
glances -c IPADDR
IPADDR:要连入的服务器端地址
iotop命令是一个用来监视磁盘I/O使用状况的top类工具
iotop输出说明
第一行:Read和Write速率总计
第二行:实际的Read和Write速率
第三行:参数如下:
线程ID(按p切换为进程ID)
优先级
用户
磁盘读速率
磁盘写速率
swap交换百分比
IO等待所占的百分比
线程/进程命令
iotop常用参数
-o, –only只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。
-b, –batch非交互模式,一般用来记录日志。
-n NUM, –iter=NUM设置监测的次数,默认无限。在非交互模式下很有用。
-d SEC, –delay=SEC设置每次监测的间隔,默认1秒,接受非整形数据例如1.1。
-p PID, –pid=PID指定监测的进程/线程。
-u USER, –user=USER指定监测某个用户产生的I/O
-P, –processes仅显示进程,默认iotop显示所有线程。
-a, –accumulated显示累积的I/O,而不是带宽。
-k, –kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用
-t, –time 加上时间戳,非交互非模式
-q, –quiet 禁止头几行,非交互模式,有三种指定方式
-q 只在第一次监测时显示列名
-qq 永远不显示列名
-qqq 永远不显示I/O汇总
交互按键
left和right方向键:改变排序
r:反向排序
o:切换至选项–only
p:切换至–processes选项
a:切换至–accumulated选项
q:退出
i:改变线程的优先级
kill命令(
显示当前系统可用信号
kill –l或trap -l
常用信号
1) SIGHUP: 无须关闭进程而让其重读配置文件
2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT:相当于ctrl+\
9) SIGKILL: 强制杀死正在运行的进程
15) SIGTERM:终止正在运行的进程
18) SIGCONT:继续运行
19) SIGSTOP:后台休眠
0 检查进程是否正常工作
指定信号的方法:
(1) 信号的数字标识:1, 2, 9
(2) 信号完整名称:SIGHUP
(3) 信号的简写名称:HUP
例:
按pid
kill -SIGNAL pid
按名字
Killall -SIGNAL cmd
按模式
pkill
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名(pgrep可用)
-a: 显示完整格式的进程名(pgrep可用)
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90203