系统管理

警告
本文最后更新于 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列说明

序号列名含义
aPID进程id
bPPID父进程id
cRUSERReal user name
dUID进程所有者的用户id
eUSER进程所有者的用户名
fGROUP进程所有者的组名
gTTY启动进程的终端名。不是从终端启动的进程则显示为 ?
hPR优先级
iNInice值。负值表示高优先级,正值表示低优先级
jP最后使用的CPU,仅在多CPU环境下有意义
k%CPU上次更新到现在的CPU时间占用百分比
lTIME进程使用的CPU时间总计,单位秒
mTIME+ 进程使用的CPU时间总计,单位1/100秒
n%MEM进程使用的物理内存百分比
oVIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
pSWAP进程使用的虚拟内存中,被换出的大小,单位kb。
qRES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
rCODE可执行代码占用的物理内存大小,单位kb
sDATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
tSHR共享内存大小,单位kb
unFLT页面错误次数
vnDRT最后一次写入到现在,被修改过的页面数。
wS进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
xCOMMAND命令名/命令行
yWCHAN若该进程在睡眠,则显示睡眠中的系统函数名
zFlags任务标志,参考 sched.h

top 展示列表说明

-当前时间总共运行时间当前系统登陆用户系统平均负载(正常水平不超过: 核心数x每个核心的线程x0.8)1分钟5分钟15分钟
top14:33:32up 1:381 userload average1.841.811.48
-当前运行的进程总共进程正在运行的进程休眠进程停止进程僵死进程
Tasks-390 total1 running388 sleeping0 stopped1 zombie
-cpu使用占用百分比用户态内核态用户进程空间内改变过优先级的进程空闲进程等待输入输出硬中断软中断虚拟机
%Cpu(s)-5.0 us1.5 sy0.0 ni93.0 id0.0 wa0.4 hi0.1 si0.0 st
-物理内存总大小空间的内存总量使用中的内存总量缓存的内存总量
MiB Mem23324.9 total13501.5 free4962.2 used4861.1 buff/cache
MiB Swap交换区总量空闲交换区总量使用的交换区总量可用内存总量
-4096.0 total4096.0 free0.0 used17387.7 avail Mem
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
--进程优先级nice值,数字越大优先级越低,反之越高进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES任务使用的非交换物理内存任务使用的共享内存量。它只是反映了可能与其他进程共享的内存任务的状态,可以是(D:不间断睡眠;R:运行;S:睡眠;T:暂停;Z:僵尸)总CPU时间的百分比任务当前使用的可用物理内存共享任务自启动以来使用的总CPU时间-