ps 查看 Linux 进程的内存、CPU 使用量
使用 Linux 系统,我们十分关心进程占用内存、cpu 等的使用情况,该文章介绍如何查看 linux 下最消耗 CPU、内存的进程命令:
ps (Process Status)用于报告当前进程的快照。
基本使用
ps -ejf 命令是查看 所有 运行中的进程,并以 详细(完整) 的格式列出它们的关键信息(包括 父进程 ID (PPID)、进程组 ID (PGID) 和 完整命令行 (CMD))的最全面方法之一。
ps -ejf参数说明:
-e: 选择所有进程 (Select all processes)。这会列出系统上所有用户和后台进程。-j: 以作业格式(Job format)列出。这种格式通常会包含一些额外的与作业控制相关的字段,例如:PGID(进程组 ID)和SID(会话 ID)。-f: 以完整格式(Full format)列出。这是最常用的选项之一,它提供了一个非常详细的进程列表,输出字段(通常情况下)
| 列名 | 英文解释 | 中文解释 |
|---|---|---|
| UID | User ID | 启动进程的用户 ID |
| PID | Process ID | 进程的唯一 ID |
| PPID | Parent Process ID | 父进程的 ID |
| C | CPU Usage | 进程的 CPU 使用率(在采样期间) |
| STIME | Start Time | 进程启动时的日期和时间 |
| TTY | Controlling terminal | 进程关联的控制终端 |
| TIME | Cumulative CPU Time | 进程使用的累计 CPU 时间 |
| CMD | Command | 启动进程的完整命令行及参数 |
| PGID | Process Group ID | 进程组 ID(来自 -j 选项) |
| SID | Session ID | 会话 ID(来自 -j 选项) |
CPU 占用最多的前 10 个进程
ps auxw | head -1; ps auxw | sort -rn -k3 | head -10
内存消耗最多的前 10 个进程
ps auxw | head -1; ps auxw | sort -rn -k4 | head -10
虚拟内存使用最多的前 10 个进程
ps auxw | head -1; ps auxw | sort -rn -k5 | head -10
统计所有的进程数(包括 light-weight process (LWP))
ps h -Led -o user | sort | uniq -c | sort -nCPU 低、Load 高
ps -e -L h o state,cmd | awk '{if($1=="R"||$1=="D"){print $0}}' | sort | uniq -c | sort -k 1nr其他方法
ps auxw --sort=rss
ps auxw --sort=%cpu
参数说明
MEM进程的内存占用率,MAJFL is the major page fault countVSZ进程所使用的虚存的大小RSS进程使用的驻留集大小或者是实际内存的大小(RSS is the “resident set size” meaning physical memory used)TTY与进程关联的终端(tty)- 串行端口终端(
/dev/ttySn) - 伪终端(
/dev/pty/) - 控制终端(
/dev/tty) - 控制台终端(
/dev/ttyn,/dev/console) - 虚拟终端(
/dev/pts/n)
- 串行端口终端(
STAT检查的状态:进程状态使用字符表示的D不可中断 Uninterruptible sleep (usually IO)Iidle 空闲R正在运行,或在队列中的进程S处于休眠状态T停止或被追踪Z僵尸进程W进入内存交换(从内核 2.6 开始无效)X死掉的进程<高优先级N低优先级L有些页被锁进内存s包含子进程+位于后台的进程组;l多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
最近更新
最新评论