Linux性能优化之ps

电玩女神 2022-12-08 04:21 247阅读 0赞

Linux性能优化之ps

1 ps简介

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

2 ps用法

2.1 ps语法

  1. ps [options] [--help]

2.2 ps参数详解

  1. 参数 含义
  2. -A 所有的进程均显示出来,与 -e 具有同样的效用
  3. -a 显示现行终端机下的所有进程,包括其他用户的进程
  4. c 显示进程的真实名称
  5. -e 等于“-A
  6. e 显示环境变量
  7. f 显示程序间的关系
  8. -j 显示进程的PGIDSID
  9. -llist 以列表的形式显示进程的信息
  10. r 显示当前终端运行的进程
  11. T 显示当前终端的所有进程
  12. -u 显示当前用户创建的所有进程
  13. u user 显示指定用户创建的所有进程
  14. -x 显示系统中所有后台进程
  15. -aux 列出目前所有的正在内存中运行的程序

3 ps使用示例

  1. # ps –A //显示所有进程信息
  2. PID TTY TIME CMD
  3. 1 ? 00:00:09 systemd
  4. 2 ? 00:00:00 kthreadd
  5. 3 ? 00:00:00 rcu_gp
  6. 4 ? 00:00:00 rcu_par_gp
  7. 6 ? 00:00:00 kworker/0:0H-kb
  8. 9 ? 00:00:00 mm_percpu_wq
  9. 10 ? 00:00:00 ksoftirqd/0
  10. ……
  11. 63863 ? 00:00:00 kworker/2:1-cgr
  12. 63867 ? 00:00:00 kworker/u256:0-
  13. 63915 ? 00:00:00 kworker/u256:2-
  14. 63922 ? 00:00:00 kworker/u256:1-
  15. 63923 pts/0 00:00:00 ps
  16. ps -u root //显示root用户所有进程信息
  17. PID TTY TIME CMD
  18. 1 ? 00:00:09 systemd
  19. 2 ? 00:00:00 kthreadd
  20. 3 ? 00:00:00 rcu_gp
  21. 4 ? 00:00:00 rcu_par_gp
  22. 6 ? 00:00:00 kworker/0:0H-kb
  23. 9 ? 00:00:00 mm_percpu_wq
  24. 10 ? 00:00:00 ksoftirqd/0
  25. 11 ? 00:00:24 rcu_sched
  26. 12 ? 00:00:02 migration/0
  27. 13 ? 00:00:00 idle_inject/0
  28. 14 ? 00:00:00 cpuhp/0
  29. 15 ? 00:00:00 cpuhp/1
  30. 16 ? 00:00:00 idle_inject/1
  31. # ps –lf //以列表的形式显示当前终端进程间的关系
  32. F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
  33. 4 S root 5242 4873 0 80 0 - 16918 poll_s 824 pts/0 00:00:00 sudo su
  34. 4 S root 5243 5242 0 80 0 - 16721 wait 824 pts/0 00:00:00 su
  35. 4 S root 5244 5243 0 80 0 - 6129 wait 824 pts/0 00:00:00 bash
  36. 4 R root 63942 5244 0 80 0 - 10355 - 16:41 pts/0 00:00:00 ps -lf
  37. # ps –ef //显示所有命令,连带命令行
  38. UID PID PPID C STIME TTY TIME CMD
  39. root 1 0 0 824 ? 00:00:09 /sbin/init splash
  40. root 2 0 0 824 ? 00:00:00 [kthreadd]
  41. root 3 2 0 824 ? 00:00:00 [rcu_gp]
  42. root 4 2 0 824 ? 00:00:00 [rcu_par_gp]
  43. root 6 2 0 824 ? 00:00:00 [kworker/0:0H-kb]
  44. root 9 2 0 824 ? 00:00:00 [mm_percpu_wq]
  45. root 10 2 0 824 ? 00:00:00 [ksoftirqd/0]
  46. root 11 2 0 824 ? 00:00:25 [rcu_sched]
  47. root 12 2 0 824 ? 00:00:02 [migration/0]
  48. root 13 2 0 824 ? 00:00:00 [idle_inject/0]
  49. root 14 2 0 824 ? 00:00:00 [cpuhp/0]
  50. root 15 2 0 824 ? 00:00:00 [cpuhp/1]
  51. ps elf //以列表形式显示所有进程
  52. F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
  53. 4 S root 1 0 0 80 0 - 56457 ep_pol 824 ? 00:00:09 /sbin/init splash
  54. 1 S root 2 0 0 80 0 - 0 kthrea 824 ? 00:00:00 [kthreadd]
  55. 1 I root 3 2 0 60 -20 - 0 rescue 824 ? 00:00:00 [rcu_gp]
  56. 1 I root 4 2 0 60 -20 - 0 rescue 824 ? 00:00:00 [rcu_par_gp]
  57. 1 I root 6 2 0 60 -20 - 0 worker 824 ? 00:00:00 [kworker/0:0H-kb]
  58. 1 I root 9 2 0 60 -20 - 0 rescue 824 ? 00:00:00 [mm_percpu_wq]
  59. 1 S root 10 2 0 80 0 - 0 smpboo 824 ? 00:00:00 [ksoftirqd/0]
  60. ps aux //显示当前正在运行的所有进程
  61. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  62. root 1 0.0 0.2 225828 9456 ? Ss 824 0:09 /sbin/init splash
  63. root 2 0.0 0.0 0 0 ? S 824 0:00 [kthreadd]
  64. root 3 0.0 0.0 0 0 ? I< 824 0:00 [rcu_gp]
  65. root 4 0.0 0.0 0 0 ? I< 824 0:00 [rcu_par_gp]
  66. root 6 0.0 0.0 0 0 ? I< 824 0:00 [kworker/0:0H-kb]
  67. root 9 0.0 0.0 0 0 ? I< 824 0:00 [mm_percpu_wq]
  68. root 10 0.0 0.0 0 0 ? S 824 0:00 [ksoftirqd/0]
  69. root 11 0.0 0.0 0 0 ? I 824 0:25 [rcu_sched]

ps各字段的含义
 USER 进程所属的用户
 F 代表这个程序的旗标 (flag), 4 代表使用者为 superuser;
 S 代表这个程序的状态 (STAT);
 UID 代表执行者身份
 PID 进程的ID号!底下的 PPID 则父进程的ID;
 C/%CPU CPU使用的资源百分比;
 %MEM 进程所占用的物理内存百分比;
 VSZ 进程使用掉的虚拟内存量
 RSS 进程占用的固定的内存量
 PRI指进程的执行优先权(Priority的简写),其值越小越早被执行;
 NI 这个进程的nice值,其表示进程可被执行的优先级的修正数值;
 ADDR 这个是内核函数,指出该程序在内存的那个部分。如果是个执行 的程序,一般就是『 - 』
 SZ 使用掉的内存大小;
 WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作;
 TTY 登入者的终端机位置啰;
 TIME 使用掉的 CPU 时间;
 STAT 程序目前的状态,主要状态有:R、S、T、Z、D
 START 该进程被触发启动的时间
 CMD 所下达的指令名称

4 ps上进程的状态

 D 不可中断 uninterruptible sleep (usually IO) :不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
 R 运行 runnable (on run queue) :运行(正在运行或在运行队列中等待)
 S 中断 sleeping:中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
 T 停止 traced or stopped:停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
 Z 僵死 a defunct (”zombie”) process:僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

发表评论

表情:
评论列表 (有 0 条评论,247人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux性能优化time

    Linux性能优化之time 1 time简介 time命令常用于测量一个命令的运行时间,注意不是用来显示和修改系统时间的(这是date命令干的事情)。一个程序在运

    相关 Linux ps命令

    ps:要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运

    相关 Linux命令ps命令

    ps命令作用:查看服务器进程信息,如同Windows中的任务管理器。 参数:e表示查看所有进程;f表示查看所有列的信息。 带参数的写法:ps -ef。 ![70][]