1.進程的組成部分
一個進程由一個地址空間和內核內部的一組數據結構共同組成。地址空間是由內核標記出來供進程使用的一組內存頁面。
2.kill 發送信號
命令参数:
-l :信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称。
-a :当处理当前进程时,不限制命令名和进程号的对应关系。
-p :指定kill 命令只打印相关进程的进程号,而不发送任何信号。
-s :指定发送信号。
-u :指定用户。
顧名思義,kill命令最常見的用法是終止一個進程。
kill -9 pid
killall 按名字殺死進程
3.ps:監視進程
ps
是系統管理員監視進程的主要工具。
ps aux
選項a的意思是顯示所有的進程。
x的意思是顯示沒有控制終端的進程。
u的意思是選擇“面向用戶”的輸出格式。
ps -ef
選項e選擇所有的進程。
f選項設置輸出格式。
top對活動進程及其所使用的資源情況提供定期更新的匯總信息。
pstree
该命令显示当前运行的所有进程及其相关的子进程,以树的格式输出。
基本格式:pstree 参数
说明:pestree命令对程序名称相同的会自动合并,所有“|-httpd---8*[httpd]”即表示系统中有8个httpd进程产生的子进程。
参数:
-a :显示出该命令的参数,假如这个命令进程被其他进程替换掉,那么进程将显示在括号中 -a 选项包含有压实进程树的选项,对于相同的进程,会使用n*(process)的形式展显出来。
-c :关闭禁用显示结果进程树,在默认情况下,进程子树是会被压缩的。不管有多少进程名相同的进程,都会逐个显示出来。
-G :使用vt100线性描述树
-h :突空出显示当前进程的父进程并高亮显示出来,如果没有父进程那么什么都不会显示。
-H :突出显示出指定进程的父进程信息并高亮显示出来,使用方法为 pstree -H PID
-l :显示长格式命令选项,在默认的情况下,命令行最多显示宽度为132bit ,超过将不能正常显示。
-n :基于进程相同的祖先来进行排序,可以命名pid来代替进程名称 。
-p :显示所有的时程,显示结果包含进程名和时进程ID
-u :显示出用户的UID,无论何时,这个UID和进程比较UID参数,这个新的UID将在进程名后显示不同的参数。
-U :使用utf-8字符集以十进制表示,
-v :显示版本号。
top
第一行:任务队列信息
10:44:56 当前时间
up 104days,18:07 系统运行时间。104天,18小时07分钟。
2 user 当前登录用户数。
load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二行:进程数信息
160 total 进程总数
1 running 正在运行的进程数
159 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
第三行:CPU状态
0.0% us 用户进程占用CPU百分比。
0.0% sy 系统进程占用CPU百分比。
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比。
100% id 空闲CPU百分比。
0.0% wa IO等待占用CPU的百分比
0.0% hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si 软中断(Software Interrupts)占用CPU的百分比
第四行:内存状态
3813844k total 物理内存总量
3693040k used 使用的物理内存总量
120804k free 空闲内存总量
116448k buffers 用作内核缓存的内存量
第五行:swap交换状态
4095992k total 交换区总量。
625764k used 使用的交换区总量。
3470228k free 空闲交换区总量。
374160k cached 缓冲的交换区总量。
第六行:空行
第七行以下:各进程的状态监控
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级。
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志,参考 sched.h
[root@VM_0_7_centos ~]# top
top - 09:30:45 up 196 days, 13:38, 1 user, load average: 2.07, 3.14, 3.49
Tasks: 187 total, 5 running, 182 sleeping, 0 stopped, 0 zombie
%Cpu(s): 38.0 us, 19.2 sy, 0.0 ni, 0.0 id, 42.8 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1883616 total, 71796 free, 1537996 used, 273824 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 89032 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23070 centos 20 0 424124 175936 7500 R 51.0 9.3 0:06.64 ruby2.1
32239 root 20 0 1191848 32784 0 S 1.7 1.7 1694:09 cadvisor
25 root 20 0 0 0 0 S 1.3 0.0 1351:31 kswapd0
22140 centos 20 0 1088448 249760 1900 S 0.7 13.3 0:15.02 ruby2.1
3 root 20 0 0 0 0 R 0.3 0.0 422:55.08 ksoftirqd/0
9 root 20 0 0 0 0 R 0.3 0.0 219:46.26 rcu_sched
14760 101 20 0 52588 1840 532 S 0.3 0.1 158:06.69 redis-server
23364 root 20 0 164496 8672 1268 S 0.3 0.5 48:54.67 barad_agent
26877 polkitd 20 0 1487892 100464 0 S 0.3 5.3 71:31.99 mysqld
28015 root 20 0 571312 19612 212 S 0.3 1.0 23:19.41 YDService
1 root 20 0 190944 2292 800 S 0.0 0.1 27:02.92 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:04.37 kthreadd
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0