📅  最后修改于: 2023-12-03 14:49:14.893000             🧑  作者: Mango
在Shell或Bash中,我们可以使用各种命令和工具来监视和管理系统内存,以及确定哪些进程消耗了RAM。
本文将介绍一些常见的Shell / Bash命令和工具,帮助程序员了解如何查找和监视消耗RAM的进程。
free命令用于显示系统内存使用情况,包括已使用的、可用的和缓冲区/缓存的内存量。
示例代码:
free -h
输出结果类似于以下内容:
total used free shared buff/cache available
Mem: 7.7G 4.0G 903M 399M 2.8G 3.2G
Swap: 2.0G 230M 1.8G
top命令用于实时显示系统进程的状态,包括CPU和内存使用情况。可以通过按"M"键按内存使用情况进行排序。
示例代码:
top
输出结果类似于以下内容:
top - 15:29:45 up 10 days, 41 min, 1 user, load average: 0.10, 0.05, 0.01
Tasks: 222 total, 1 running, 221 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.5 us, 0.4 sy, 0.0 ni, 99.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7916.0 total, 1790.3 free, 4239.2 used, 1886.5 buff/cache
MiB Swap: 2048.0 total, 1871.0 free, 166.9 used. 3089.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1731 root 20 0 638000 24.1m 5.8m S 0.3 0.3 0:07.40 systemd-journal
...
ps命令用于显示当前正在运行的进程。可以使用ps命令结合排序和过滤选项来查找并显示消耗RAM的进程。
示例代码:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem
输出结果类似于以下内容:
PID PPID CMD %MEM %CPU
2560 2518 /usr/lib/firefox/firefox-bin 6.2 0.1
218 1 /lib/systemd/systemd-journald 0.3 0.0
...
smem命令用于报告系统内存使用情况,包括进程内存使用的详细信息。
示例代码:
smem -r
输出结果类似于以下内容:
PID User Command Swap USS PSS RSS
1 root /sbin/init splash 0 640.0 647.0 1976.0
2 root [kthreadd] 0 0.0 0.0 0.0
3 root [rcu_gp] 0 0.0 0.0 0.0
...
pmap命令用于显示进程的内存映射。
示例代码:
pmap -X <PID>
输出结果类似于以下内容:
<Address> <Permissions> <Offset> <Device> <Inode> <Path>
...
0000000000400000 r-xp 00000000 08:01 329636 /bin/bash
...
以上是一些常用的Shell / Bash命令和工具,用于查找和监视消耗RAM的进程。使用这些命令和工具,程序员可以更好地理解系统内存使用情况,并优化进程的内存消耗。