系统管理

警告
本文最后更新于 2022-07-05,文中内容可能已过时。

1. 进程与线程

  • 进程: 一个程序的执行实例,也就是正在执行的程序
  • 线程: 在一个程序里的一个执行路线就叫做线程

2. ps 命令

-f : 显示UIDPIDPPIDC(使用cpu资源百分比)、STIME(进程运行的开始时间)、TTYTIME(进程使用的cpu总时长)、CMD栏位。

  • ps aux|head -n 2
    • %CPU: cpu使用率
    • %MEM: 内存使用率
    • VSZ: 表示进程分配的虚拟内存(kb)
    • RSS: 表示进程分配了多少内存(RAM中的物理内存),RSS不包含已经被换出的内存。RSS包含了它所链接的动态库并且被加载到物理内存中的内存。RSS还包含栈内存和堆内存。 (kb)
    • STAT: 表示当前进程状态
      • S: 进程休眠中,可被唤醒;
      • s: 当前进程含有子进程 ;
      • R: 当前进程运行中;
      • D: 不可中断的进程;
      • T:进程暂停状态;
      • Z:僵尸进程;
      • < 高优先级进程 ;
      • N:低优先级进程
    • START: 进程开始时间
    • TIME: 进程执行时间

3. top 命令

  • z: 打开或关闭颜色
  • k: 终止一个进程
  • i: 忽略闲置和僵死进程
  • r: 重新安排一个进程的优先级别
  • s: 改变两次刷新之间的延迟时间(单位为s)
  • t: 切换显示进程和CPU状态信息
  • c: 切换显示命令名称和完整命令行
  • M: 根据驻留内存大小进行排序
  • P: 根据CPU使用百分比大小进行排序
  • x: 高亮某一列

4. 进程检查

4.1. pgrep 显示相关进程ID

4.2. kill 特殊信号 0

表示不发送任何信号给PID,但会对这个id进行检查,如果执行结果为0,表示次进程存在,如果结果为1,则表示进程不存在

4.3. 特殊进程

  • 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

  • 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

  • 参数详解

    https://segmentfault.com/a/1190000008322093

    http://blog.itpub.net/29270124/viewspace-2639162/

5. top列说明

序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME + 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

top 展示列表说明

- 当前时间 总共运行时间 当前系统登陆用户 系统平均负载(正常水平不超过: 核心数x每个核心的线程x0.8) 1分钟 5分钟 15分钟
top 14:33:32 up 1:38 1 user load average 1.84 1.81 1.48
- 当前运行的进程 总共进程 正在运行的进程 休眠进程 停止进程 僵死进程
Tasks - 390 total 1 running 388 sleeping 0 stopped 1 zombie
- cpu使用占用百分比 用户态 内核态 用户进程空间内改变过优先级的进程 空闲进程 等待输入输出 硬中断 软中断 虚拟机
%Cpu(s) - 5.0 us 1.5 sy 0.0 ni 93.0 id 0.0 wa 0.4 hi 0.1 si 0.0 st
- 物理内存总大小 空间的内存总量 使用中的内存总量 缓存的内存总量
MiB Mem 23324.9 total 13501.5 free 4962.2 used 4861.1 buff/cache
MiB Swap 交换区总量 空闲交换区总量 使用的交换区总量 可用内存总量
- 4096.0 total 4096.0 free 0.0 used 17387.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- - 进程优先级 nice值,数字越大优先级越低,反之越高 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES 任务使用的非交换物理内存 任务使用的共享内存量。它只是反映了可能与其他进程共享的内存 任务的状态,可以是(D:不间断睡眠;R:运行;S:睡眠;T:暂停;Z:僵尸) 总CPU时间的百分比 任务当前使用的可用物理内存共享 任务自启动以来使用的总CPU时间 -
0%