Linux进程管理
进程基本概述
进程优先级
- 进程优先级范围:0-139,数字越小优先级越高
- 0-99:实时优先级,由内核调整
- 100-139:静态优先级,用户可控制 - 进程优先级高的特点:
- 获得更多的CPU运行时间
- 更优先获得CPU运行机会
要修改进程的优先级可以通过调整进程的nice值来实现,nice值越小,优先级越高:
nice值的范围是(-20到19),-20对应100,19对应139
nice级别与权限
普通用户只能通过nice命令降低自己进程的优先级;只有Root用户才能通过nice命令提高自己进程的优先级
进程优先级调整
renice NI PID #调整已经启动的进程nice值
例:renice 3 3704
nice -n NI Command
进程管理命令
ps命令用于列出当前所有进程,可以查看进程的详细信息
包括:
- 用户识别符(UID),它确定进程的特权
- 唯一进程识别符(PID)
- CPU和已经划分的实时时间
- 进程在各个位置上分配的内存数量
- 进程的位置STDOUT,称为控制终端
- 当前的进程状态
ps支持三种选项格式:
- UNIX(POSIX)选项,可以分组但必须以连字符开头
- BSD选项,可以分组但不可以与连字符同用
- GNU长选项,以双联字符开头
ps(process state),显示进程信息:
- 加了[ ]中括号的,表示内核线程,通常位于顶部
- exiting或defunct表示僵尸进程
常用参数:
a //显示所有与终端有关的进程
u //显示进程是由哪个用户启动的
x //显示所有与终端无关的进程
-e //显示所有进程,与-A效果相同
-l //以长格式显示
-F //显示更详细的完整格式的进程信息
-f //显示更详细的完整格式的进程信息
-H //以进程层级格式显示进程相关信息
-o //根据自己的需要选择要显示的字段
显示所有终端进程
显示启动用户
显示与所有终端无关的进程
[root@wcluser ~]# ps aux | grep smb
root 1520 0.0 1.1 189724 21932 ? Ss 8月06 0:00 /usr/sbin/smbd --foreground --no-process-group
root 1683 0.0 0.2 162924 5488 ? S 8月06 0:00 /usr/sbin/smbd --foreground --no-process-group
root 1684 0.0 0.2 162916 4380 ? S 8月06 0:00 /usr/sbin/smbd --foreground --no-process-group
root 1686 0.0 0.3 189724 5896 ? S 8月06 0:00 /usr/sbin/smbd --foreground --no-process-group
显示所有进程
以长格式显示进程
以更详细显示进程相关信息
[root@wcluser ~]# ps -elf | grep smb
4 S root 1520 1 0 80 0 - 47431 do_epo 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
1 S root 1683 1520 0 80 0 - 40731 do_epo 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
1 S root 1684 1520 0 80 0 - 40729 do_epo 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
1 S root 1686 1520 0 80 0 - 47431 do_epo 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
显示所有进程
以长格式显示进程
以层级格式显示进程相关信息
[root@wcluser ~]# ps -elH | grep smb
4 S 0 1520 1 0 80 0 - 47431 do_epo ? 00:00:00 smbd
1 S 0 1683 1520 0 80 0 - 40731 do_epo ? 00:00:00 smbd-notifyd
显示所有进程
以长格式显示进程
显示更详细的完整格式的进程信息
[root@wcluser ~]# ps -elF | grep smb
4 S root 1520 1 0 80 0 - 47431 do_epo 21932 0 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
1 S root 1683 1520 0 80 0 - 40731 do_epo 5488 0 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
1 S root 1684 1520 0 80 0 - 40729 do_epo 4380 0 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
1 S root 1686 1520 0 80 0 - 47431 do_epo 5896 0 8月06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
只显示进程号、命令、nice优先级
[root@wcluser ~]# ps -o pid,comm,ni
PID COMMAND NI
2105 bash 0
2300 ps 0
aux结果 | 解析 |
---|---|
VSZ | Virtual memory SiZe,虚拟内存集 |
RSS | ReSident Size,常驻内存集 |
STAT | 进程状态 |
TIME | 运行时的累积时长 |
ps命令结果 | 解析 |
NI | nice值 |
PRI | 优先级 |
PSR | 进程运行在哪个CPU核心上 |
RTPTRIO | 实时优先级 |
C | 运行的CPU编号 |
STIME | 进程的启动时 |