Linux性能监控命令-ps

发布时间:2024年01月19日

ps 命令是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息

参数:

a:显示一个终端的所有进程,除会话引线外;
u:显示当前用户进程及内存的使用情况;
x:显示没有控制终端的进程;
l:长格式显示更加详细的信息;
e:显示所有进程;
f:全格式,包括命令行
几个固定参数,比如:

ps -aux:可以查看系统中所有的进程;
ps -le:可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
ps -l:只能看到当前 Shell 产生的进程;
ps -T -p :查看指定进程的所有线程
ps -Lf :查看指定进程的所有线程的详细信息
【例1】查看系统所有进程

shen@ubuntu-vm:~$ ps -aux | head -10
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.2 168412 10388 ?        Ss   12:47   0:01 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    12:47   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   12:47   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   12:47   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   12:47   0:00 [netns]
root           7  0.0  0.0      0     0 ?        I<   12:47   0:00 [kworker/0:0H-events_highpri]
root          10  0.0  0.0      0     0 ?        I<   12:47   0:00 [mm_percpu_wq]
root          11  0.0  0.0      0     0 ?        S    12:47   0:00 [rcu_tasks_rude_]
root          12  0.0  0.0      0     0 ?        S    12:47   0:00 [rcu_tasks_trace]

在这里插入图片描述
在这里插入图片描述
【例2】查看系统所有进程
"ps aux"命令可以看到系统中所有的进程,"ps -le"命令也能看到系统中所有的进程。由于 “-l” 选项的作用,所以 “ps -le” 命令能够看到更加详细的信息,比如父进程的 PID、优先级等。但是这两个命令的基本作用是一致的,掌握其中一个就足够了

shen@ubuntu-vm:~$ ps -le | head -10
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0       1       0  0  80   0 - 42103 -      ?        00:00:01 systemd
1 S     0       2       0  0  80   0 -     0 -      ?        00:00:00 kthreadd
1 I     0       3       2  0  60 -20 -     0 -      ?        00:00:00 rcu_gp
1 I     0       4       2  0  60 -20 -     0 -      ?        00:00:00 rcu_par_gp
1 I     0       5       2  0  60 -20 -     0 -      ?        00:00:00 netns
1 I     0       7       2  0  60 -20 -     0 -      ?        00:00:00 kworker/0:0H-events_highpri
1 I     0      10       2  0  60 -20 -     0 -      ?        00:00:00 mm_percpu_wq
1 S     0      11       2  0  80   0 -     0 -      ?        00:00:00 rcu_tasks_rude_
1 S     0      12       2  0  80   0 -     0 -      ?        00:00:00 rcu_tasks_trace

在这里插入图片描述
在这里插入图片描述
【例 3】如果不想看到所有的进程,只想查看一下当前登录产生了哪些进程,那只需使用 “ps -l”

shen@ubuntu-vm:~$ ps -l
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000   14230   14088  0  80   0 -  3524 do_wai pts/3    00:00:00 bash
0 R  1000   16222   14230  0  80   0 -  3622 -      pts/3    00:00:00 ps

可以看到,这次从 pts/3 虚拟终端登录,只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令。

我们再来说说僵尸进程。僵尸进程的产生一般是由于进程非正常停止或程序编写错误,导致子进程先于父进程结束,而父进程又没有正确地回收子进程,从而造成子进程一直存在于内存当中,这就是僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源

文章来源:https://blog.csdn.net/bala5569/article/details/135693647
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。