系统管理
PS命令
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。 进程管理:判断服务器健康状态,查看系统中所有进程,杀死进程。
ps aux 可以查看系统中所有的进程
ps -le 查看系统中所有进行,使用标准Linux标准命令格式
ps -l 只能看到当前 Shell 产生的进程
F 进程标志,说明进程的权限,常见的标志有两个:
1:进程可以被复制,但是不能被执行;
4:进程使用超级用户权限;
S 进程状态。具体的状态和"psaux"命令中的 STAT 状态一致
USER:该进程是由哪个用户产生的;
PID:进程的ID号;
父进程的 ID;
CPU:该进程占用CPU资源的百分比,占用越高,进程 越耗费资源;
MEM:该进程占用物理内存的百分比,占用越高,进程 越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表 本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠 、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
top命令:监听进程运行状态
查看系统健康状态
-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
-b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
-n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
-p 进程PID:仅查看指定 ID 的进程;
-s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
-u 用户名:只监听某个用户的进程;
交互操作常用指令
P: 以CPU使用率排序,默认就是此项
M: 以内存的使用率排序
N: 以PID排序
q: 退出top
top -b -n 1 > /root/top.log
将全部进程输出到日志中,方便查看
pstree查看进程树
pstree [选项] [PID或用户名]
-a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。
-c 不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。
-n 根据进程 PID 号来排序输出,默认是以程序名排序输出的。
-p 显示进程的 PID。
-u 显示进程对应的用户名称。
init 进程是系统启动的第一个进程,进程的 PID 是 1,也是系统中所有进程的父进程。
若是不指定进程的PID号和指定用户名臣,系统会以init进程为根进程,展现所有的进程。
lsof命令列出进程调用或打开的文件信息
lsof [选项]
-c 字符串 只列出以字符串开头的进程打开的文件。
+d 目录名 列出某个目录中所有被进程调用的文件。
-u 用户名 只列出某个用户的进程打开的文件。
-p pid 列出某个 PID 进程打开的文件。
其他的可以百度自行搜索
进程优先级关系
PRI 和 NI 这两个值都表示优先级,数值越小代表该进程越优先被 CPU 处理。不过,PRI值是由内核动态调整的,用户不能直接修改。所以我们只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。
PRI = PRI + NI
修改NI需要注意NI的修改范围:
- NI 范围是 -20~19。
- 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
- 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
- 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。