关于IT运维技术的
最佳实践博客网站

使用ps命令查询系统进程情况

ps 命令是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多 的资源等等。总之大部分信息都是可以通过执行该命令得到的。

名称:ps
使用权限:所有使用者
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process) 的动态
参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A    列出所有的进程
-w    显示加宽可以显示较多的资讯
-au   显示较详细的资讯
-aux  显示所有包含其他使用者的行程

############################################################

常用参数:

-A    显示所有进程(等价于-e)(utility)
-a    显示一个终端的所有进程,除了会话引线
-N    忽略选择。
-d    显示所有进程,但省略所有的会话引线(utility)
-x    显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p    pid 进程使用cpu的时间
-u    uid or username 选择有效的用户id或者是用户名
-g    gid or groupname 显示组的所有进程。
U     username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f    全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l    长格式(有F,wchan,C 等字段)
-j    作业格式
-o    用户自定义格式。
v     以虚拟存储器格式显示
s     以信号格式显示
-m    显示所有的线程
-H    显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e     命令之后显示环境(如:ps -d e; ps -a e)(utility)
h     不显示第一行

1. 查询指定pid的所有子进程

➜  ~  ps -u --ppid 10092
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     27289  0.0  0.1 125452  1392 pts/0    R+   12:05   0:00 ps -u --ppid 1

2. 查询指定名字的所有进程的pid

➜  ~  ps -C nginx -o pid
  PID
  956
  959

注意: -o pid 不能与u同时出现

3. 查询所有进程的ppid

➜  ~  ps -ax -o ppid
 PPID
    0
    0
    2
    2
    2
    2
    2
    2
............

4. 查询所有进程

➜  ~  ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3  56204  3520 ?        Ss   7月23   0:03 /usr/lib/syste
root         2  0.0  0.0      0     0 ?        S    7月23   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    7月23   0:01 [ksoftirqd/0]
➜  ~  ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 7月23 ?       00:00:03 /usr/lib/systemd/systemd --switc
root         2     0  0 7月23 ?       00:00:00 [kthreadd]
root         3     2  0 7月23 ?       00:00:01 [ksoftirqd/0]
root         5     2  0 7月23 ?       00:00:00 [kworker/0:0H]
root         7     2  0 7月23 ?       00:00:00 [migration/0]
root         8     2  0 7月23 ?       00:00:00 [rcu_bh]

5. 查询属于指定进程组的所有进程

➜  ~  ps -s 956
  PID TTY          TIME CMD
  956 ?        00:00:00 nginx
  959 ?        00:01:09 nginx

6. 查询指定有效用户ID的所有进程

➜  ~  ps u -u 1000
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
www        488  0.0  8.9 771876 90628 ?        Ssl  7月23   0:01 /usr/bin/hhvm --
www        959  0.0  3.2 102464 33480 ?        S    7月23   1:09 nginx: worker pr
www       1915  0.2 21.8 1193220 222040 ?      Sl   7月23  19:26 /usr/bin/hhvm --
www      27376  0.0  0.5 351636  5684 ?        S    12:09   0:00 php-fpm: pool www

7. 查询指定有效用户名的所有进程

➜  ~  ps -U www
  PID TTY          TIME CMD
  488 ?        00:00:01 hhvm
  959 ?        00:01:09 nginx
 1915 ?        00:19:26 hhvm
27376 ?        00:00:00 php-fpm

8. 在默认显示选项的基础上显示ppid

➜  ~  ps ax -o ppid
 PPID
    0
    0
    2
    2

9、如果要将ppid列命名为parent,则:

➜  ~  ps ax -O ppid=parent
  PID parent S TTY          TIME COMMAND
    1      0 S ?        00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
    2      0 S ?        00:00:00 [kthreadd]
    3      2 S ?        00:00:01 [ksoftirqd/0]

10、按进程消耗内存多少排序

➜  ~  ps -eo rss,pmem,pcpu,vsize,args |  sort -k 1 -r -n | less
223256 21.9 0.2 1193220 /usr/bin/hhvm --mode server --user www --config /etc/hhvm/server.ini --config /etc/hhvm/php.ini --config /etc/hhvm/config.hdf
90628  8.9  0.0 771876 /usr/bin/hhvm --mode server --user www --config /etc/hhvm/server.ini --config /etc/hhvm/php.ini --config /etc/hhvm/config.hdf
33412  3.2  0.0 102464 nginx: worker process
21564  2.1  0.0 330132 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
12216  1.2  0.0 516332 /usr/lib/polkit-1/polkitd --no-debug
10076  0.9  0.0 218756 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
 9448  0.9  0.2 758824 /usr/local/aegis/aegis_client/aegis_00_79/AliYunDun
 9276  0.9  0.2 782216 /usr/local/aegis/alihids/AliHids
 6504  0.6  0.0  71708 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 5908  0.5  0.0 349552 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
 5684  0.5  0.0 351636 php-fpm: pool www
 5684  0.5  0.0 351636 php-fpm: pool www
 5684  0.5  0.0 351636 php-fpm: pool www

-e 是显示所有进程

-o是定制显示信息的格式

  • rss: resident set size, 表示进程占用RAM(内存)的大小,单位是KB
  • pmem: %M, 占用内存的百分比
  • pcpu:%C,占用cpu的百分比
  • vsize: 表示进程占用的虚拟内存的大小,KB
  • args:进程名(command)
  • sort命令对ps结果进行排序
  • -k 1 :按第一个参数 rss进行排序
  • -r:逆序
  • -n:numeric,按数字来排序
赞(0)
未经允许不得转载:菜鸟HOW站长 » 使用ps命令查询系统进程情况
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址