Linux 查看进程占用cpu/内存/io信息

发布时间 2023-03-22 21:09:19作者: 天了噜

Linux 查看进程占用cpu/内存/io信息

top

Display dynamic real-time information about running processes.
More information: https://manned.org/top.

单词解释:

  • PID: 进程ID
  • USER: 进程所有者
  • PR: 进程的优先级别(越小越优先执行)
  • NI: Nice值,进程用户态优先值[-20, 20)
  • VIRT: 进程占用的虚拟内存
  • RES: 进程占用的物理内存
  • SHR: 进程使用的共享内存
  • S: 进程的状态。S: 休眠,R: 正在运行, Z: 僵死状态, N表示该进程优先值为负数
  • %CPU: 进程占用CPU使用率
  • %MEM: 进程使用的物理内存和总内存的百分比
  • TIME+: 该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  • COMMAND: 进程启动命令名称

常用命令:

  • P: 按%CPU使用率进行排序
  • T: 按TIME+进行排序
  • M: 按%MEM排序

/proc/[pid]目录

获取程序PID

lsof -i:8000

假如我获取的服务端口8000的进程pid为51497
查看内存使用情况

$ cat /proc/51497/status | grep VmRSS
VmRSS:	  247720 kB

我们可以进入这个目录查看可用信息

cd /proc/51497/
ls -l

常用(N为进程的PID)

$ /proc/N/cmdline # 进程启动命令
$ /proc/N/environ # 进程环境变量列表
$ /proc/N/stat # 进程状态
$ /proc/N/statm # 进程使用的内存的状态
$ /proc/N/status # 进程状态信息,比stat/statm更具有可读性

连接(所有目录中用ls -l 查看)

$ /proc/N/cwd # 链接到进程当前工作目录
$ /proc/N/exe # 链接到进程执行命令文件
$ /proc/N/root # 链接到进程根目录

内存

  • 消耗内存前10进程
    $ ps aux | sort -K4nr | head -n 10
    
  • 查看内存使用排序
    $ top
    
    然后按M
  • 查看swap
    $ free -h
    
    $ cat /proc/swaps
    
  • 查看某个进程的内存占用
    获取进程PID
$ lsof -i:6379

或者

ps -aux | grep redis

假如获取的 redisPID1729
那么获取内存使用情况

$ cat /proc/1729/status | grep VmRSS

或者

$ top -p 1729

CPU

消耗CPU前10的进程

$ ps aux | grep sort -K3nr | head -n 10

查看CPU占用排序

$ top # 然后按P

IO

每隔1s查询一次共查询10次

$ iostat 1 10

路由信息

查看主机路由信息

$ netstat -rn