ps 查看 Linux 进程的内存、CPU 使用量

发布时间: 更新时间: 总字数:927 阅读时间:2m 作者: IP上海 分享 网址

使用 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 -n

CPU 低、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 count
  • VSZ 进程所使用的虚存的大小
  • 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)
    • I idle 空闲
    • R 正在运行,或在队列中的进程
    • S 处于休眠状态
    • T 停止或被追踪
    • Z 僵尸进程
    • W 进入内存交换(从内核 2.6 开始无效)
    • X 死掉的进程
    • < 高优先级
    • N 低优先级
    • L 有些页被锁进内存
    • s 包含子进程
    • + 位于后台的进程组;
    • l 多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics