进程管理
命令:
pstree
显示:进程树
pstree–p
显示:进程树和PID
ps:process state
Linux运行中的内核的相关信息是通过/proc伪文件系统输出的;各进程都有一个以其PID命名的子目录,每个子目录中有许多文件存储了进程的相关状态信息。显示的是ps命令执行时,系统上当前进程状态信息的快照;所以,为静态结果。
根据进程启动时是否是通过终端上的用户接口交互式启动的,进程可分为两类:
ps a
显示:终端相关的进程
ps x
显示:终端无关的进程
ps u
显示:用户为中心组织进程状态信息显示
常用选项组合1:
ps axu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
VSZ: Virtualmemory Size 线性地址空间占用的空间大小
RSS:常用驻内存集;指不可以被交换至swap空间的数据占据空间大小
STAT:进程状态
R: running,运行状态
S:interruptiblesleeping,可中断睡眠
D:uniterruptiblesleeping, 不可中断睡眠
T: stopped 停止态
Z: zombie 僵死态
s: session leader 会话主进程
+: 前台进程,占据着某终端
l: 多线程进程
<: 高优先级进程
N: 低优先级进程
START: 启动时间
TIME: 占据CPU累积时长
COMMAND: 启动当前进程或线程的命令行程序,[]表示为内核线程
常用选项组合2:
ps –ef
-e: 显示所有进程
-f: 显示丰富格式信息
常用选项组合3:
ps -eFH
-F: 显示额外信息
-H: 以层级形式显示进程间关系
自定义需要显示的信息:
ps axo pid,command,psr,pri,ni
psr: 当前进程运行的CPU编号
pri: 当前进程的优先级
ni: 当前进程的nice值 -20, 19 值越小优先级越高
pgrep –U “root”
仅显示以指定用户身份运行的进程
pgrep –G “root”
pgrep –l “tty”
pidof /bin/bash
uptime
显示系统负载行
top
进入另一个界面:
P:以占据的CPU百分比大小排序
M:以占据Memory空间大小排序
T:CPU累积占用时间排序
l: 是否显示系统负载行 队列长度的合理区间:CPU颗数*0.7
t: 是否显示进程摘要信息及CPU负载状态
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
us:user space
sy:system (kernel space)
ni:nice
id:idle
wa:wait io
hi:hardware interrupt
si:software interrupt
st:stolen, 被虚拟机“偷走”的百分比
1:(数字1)平均或单独显示CPU的负载状态
m: 是否显示内存相关的状态信息
q: 退出命令
s: 修改延迟时长
k: 终止指定进程
top –b –n 2
显示2批次的进程数量
top –d 1
显示1秒延迟时长
htop 切换到交互界面
u: 过滤仅显示选定用户的进程
s:跟踪选定的进程所发起的系统
l:显示选定进程所打开的文件
t:显示进程的层次结构
a:设定进程的cpu亲缘性(将选定的进程绑定在指定的CPU上)
htop –d 3 延迟时长3秒
htop –uroot 显示root用户的进程
vmstat 1 5
1:延时时长1秒
5:全部刷新5次
vmstat 2
2:延时时长2秒
procs:
r:等待运行的进程个数(队列长度)
b:处理不可中断睡眠状态的进程个数(即IO阻塞队列长度)
memory:
swpd:交换内存使用量
free:空间的物理内存量
buffer:用于缓冲的内存总量
cache:用于缓存的内存总量
swap:
si:数据进入swap中的速率(kb/s)
so:数据离开swap中的速率(kb/s)
io:
bi:从块设备读入数据到系统的速率(kb/s)
bo:保存数据至块设备的速率(kb/s)
system:
in:中断速率
cs:进程切换的速率
vmstat -s 显示内在的状态统计数据
硬件接口文件:/proc/数字
pmap -x 1 查看pid进程为1的内存映射关系
cat /pro c/1/maps 显示pid进程为1的内存映射关系
glances 显示硬件各数据状态
远程模式配置
服务端
glances –s -B 192.168.1.110
-B用于指明监听本地地址
客户端
glances -c 192.168.1.110
-c 用于连入的服务端的IP地址
dstat –c 显示cpu性能指标相关的统计数据
dstat -d 显示disk相关的速率数据
dstat -g 显示page相关的速率数据
dstat -i 显示interrupt相关的速率数据
dstat -l 显示loadaverage相关的统计数据
dstat -m 显示memory相关的统计数据
dstat -n 显示网络收发数据的速率
dstat -p 显示进程相关的统计数据
dstat -r io请求的速率
dstat -s 显示swap的相关数据
dstat -y 显示系统相关的数据,包括中断和进程切换
dstat --top-cpu 显示最占用CPU的进程
dstat --top-bio 显示最消耗block io的进程
dstat --top-io 最占用io的进程
dstat --top-mem 显示最占用内存的进程
dstat --ipc 显示进程间通信相关的速率数据
dstat --raw 显示raw套接的相关的数据
dstat --tcp 显示tcp套接字的相关数据
dstat --udp 显示udp套接字的相关数据
dstat --unix 显示unix sock接口相关的统计数据
dstat -a 显示全部信息
dstat 显示全部信息
dstat -cdngy 显示全部信息
进程间的短小信息
kill向进入发送信号
kill -9 1198(PID) 发送9信号给1198(PID)进程
信号表示意思:
SIGHUP:1, 通知进程重读其配置文件以让新的配置生效,但不用重新启动进程
SIGINT:2, 打断正在运行中的进程,相当于键盘组合键Ctrl+c
SIGKILL:9, 强行中止正在运行中的进程
SIGTERM: 15, 安全中止正在运行中的进程
SIGSTOP: 19, 暂停进程
SIGCONT: 18, 继续运行指定进程
killall -9 vsftpd 发送9信号给vsftpd进程
作业运行于后台方式
ctrl+z
作业被送往后台后,默认处于stopped状态
vim vim.txt &
以上两类方式,仍然与终端相关;终端终止,将会导致与此终端相关的所有作业被终止
nohup vim vim.txt&
剥离进程与终端的关系,关闭终端。进程依然正常运行
作业查看
jobs 查看后台作业
fg 2 把后台2号作业调回前台
bg 2 把后台2号作业启动起来,让其后台默默运行;但此作业必须支持运行于后台
kill %2 终止2号作业,%不能少。