查询占用大内存的应用
ps -eo rss,pid,pmem,pcpu,vsize,cmd | awk '{print $1/1024, $2, $3, $4, $5/1024, substr($0, index($0, $6))}' | sort -k 1 -nr | head
-
ps -eo rss,pmem,pcpu,vsize,cmd:列出所有进程的常驻集大小(RSS)、父进程id(pid)、内存使用百分比(PMEM)、CPU 使用百分比(PCPU)、虚拟内存大小(VSIZE)和命令名称(CMD).
-
awk ‘{print $1/1024, $2, $3, $4, $5/1024, substr($0, index($0, $6))}’:使用 awk 将 RSS 和 VSIZE 从字节转换为 MB(RSS 和 VSIZE 的单位是字节,除以 1024 转换为 KB,再除以 1024 转换为 MB),并使用 substr 和 index 函数从第6个字段开始截取到行尾的内容.
-
sort -k 1 -nr:按内存占用量(RSS)进行降序排序.
-k 1
指定使用第一个字段排序,-n
转换为数字类型排序,-r
倒序从大到小 -
head:显示前几行结果.
已知进程号查询进程的执行目录
- 查看进程的工作目录
ls -l /proc/<PID>/cwd
/proc/<PID>/cwd
是一个符号链接,指向进程的当前工作目录,即项目根目录.
- 查看进程的环境变量
strings /proc/<PID>/environ
查看输出结果中是否有类似 PWD 或 NODE_PATH 等环境变量,它们可能会指向项目根目录.
- 查看进程的文件描述符
ls -l /proc/<PID>/fd
查看输出结果中打开的文件描述符,可能会有指向项目文件的路径.