ps 命令详解
查看系统进程,比如正在运行的进程有哪些,什么时候开始运行的,哪个用户运行的,占用了多少资源。 ps 的英文全称是 process status,意思是进程状态。
常用操作
- 1、查看所有进程(连带命令行)
- 2、显示所有包含其他使用者的进程
- 3、查看指定进程(grep过滤)
- 4、查看CPU/内存占用率最高的进程
- 5、查看指定用户的进程
- 6、分页查看进程
参数
- -e 显示所有进程
- -f 显示所有字段(UID,PPIP,C,STIME字段)
- -a 显示一个终端的所有进程
- -u 显示当前用户进程和内存使用情况
- -x 显示没有控制终端的进程
- –sort 按照列名排序
1. 查看所有进程(连带命令行)
root@local:~# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jun21 ? 00:00:02 /sbin/init maybe-ubiquity
root 2 0 0 Jun21 ? 00:00:00 [kthreadd]
root 3 2 0 Jun21 ? 00:00:00 [rcu_gp]
...
字段解释:
- UID:用户ID,即进程的拥有者
- PID:进程ID
- PPID:父进程ID
- C:进程占用的CPU百分比
- STIME:进程开始启动时间
- TTY:登入者的终端机位置
- TIME:进程使用的CPU(运算)时间
- CMD:调用进程的命令
2. 显示所有包含其他使用者的进程
root@local:~# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 167620 11252 ? Ss Jun21 0:02 /sbin/init maybe-ubiquity
root 2 0.0 0.0 0 0 ? S Jun21 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< Jun21 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< Jun21 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< Jun21 0:00 [kworker/0:0H-kblockd]
...
1) 字段解释:
- USER:创建进程的用户
- PID:进程ID
- %CPU:进程占用CPU的百分比
- %MEM:进程占用物理内存的百分比
- VSZ:进程占用虚拟内存的大小(单位KB)
- RSS:进程占用实际物理内存的大小(单位KB)
- TTY:进程在哪个终端运行。
- STAT:进程状态
- START:进程开始启动的时间
- TIME:进程使用的CPU(运算)时间
- COMMAND:调用进程的命令
2) 其中STAT状态位常见的状态字符有
- D 无法中断的休眠状态(通常 IO 的进程);
- R 正在运行可中在队列中可过行的;
- S 处于休眠状态;
- T 停止或被追踪;
- W 进入内存交换 (从内核2.6开始无效);
- X 死掉的进程 (基本很少见);
- Z 僵尸进程;
- < 优先级高的进程
- N 优先级较低的进程
- L 有些页被锁进内存;
- s 进程的领导者(在它之下有子进程);
- l 多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads)
- 位于后台的进程组;
3. 查看指定进程(grep过滤)
root@local:~# ps -aux |grep mysql
mysql 1166 10.1 74.2 57770816 48919616 ? Ssl Jun21 109:06 /usr/sbin/mysqld
root 32667 0.0 0.0 6432 724 pts/1 S+ 07:24 0:00 grep --color=auto mysql
4. 查看CPU占用率最高的前10个进程
root@local:~# ps -aux --sort=-%cpu | head -11
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1166 10.1 74.2 57770816 48926216 ? Ssl Jun21 109:31 /usr/sbin/mysqld
root 1 0.0 0.0 167620 11252 ? Ss Jun21 0:02 /sbin/init maybe-ubiquity
root 2 0.0 0.0 0 0 ? S Jun21 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< Jun21 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< Jun21 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< Jun21 0:00 [kworker/0:0H-kblockd]
root 8 0.0 0.0 0 0 ? I< Jun21 0:00 [mm_percpu_wq]
root 9 0.0 0.0 0 0 ? S Jun21 0:00 [ksoftirqd/0]
root 10 0.0 0.0 0 0 ? I Jun21 0:11 [rcu_sched]
标题也算一行,所以是head -11
5. 查看内存占用率最高的前10个进程
root@local:~# ps -aux --sort=-%mem | head -11
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
mysql 1166 10.1 74.2 57770816 48926480 ? Ssl Jun21 109:37 /usr/sbin/mysqld
root 567 0.0 0.0 231524 63384 ? S<s Jun21 0:08 /lib/systemd/systemd-journald
root 964 0.0 0.0 1540388 40224 ? Ssl Jun21 0:18 /usr/lib/snapd/snapd
root 819 0.0 0.0 345880 18272 ? SLsl Jun21 0:15 /sbin/multipathd -d -s
root 1025 0.0 0.0 107892 16828 ? Ssl Jun21 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
systemd+ 934 0.0 0.0 27320 16328 ? Ss Jun21 0:03 /lib/systemd/systemd-resolved
root 958 0.0 0.0 29644 14520 ? Ss Jun21 0:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root 973 0.0 0.0 392688 12096 ? Ssl Jun21 0:00 /usr/lib/udisks2/udisksd
root 1 0.0 0.0 167620 11252 ? Ss Jun21 0:02 /sbin/init maybe-ubiquity
6. 分页查看进程 配合 | more
root@local:~# ps -aux --sort=-%mem | more
