使用Linux Top命令检查进程的内存使用情况
时间:2020-03-05 15:29:55 来源:igfitidea点击:
通常,我们使用free命令查看内存使用情况,该命令为我们提供了总的物理内存和总内存中的已用内存。
但是top命令对于检查Linux中的内存使用情况更为有用。
free命令仅显示物理内存使用情况,而顶部显示每个进程的虚拟内存使用情况。
它显示每个运行进程单独消耗一个进程多少内存“%”。
Top命令显示了CPU使用率最高的任务的列表,还可以按CPU使用率,内存使用率和运行时对任务进行排序。
根据内存排序
打开shell运行top命令,如果我们运行top,它将只显示正在运行的进程的命令名称,要查看完整的命令,我们在顶部使用'-c'选项。
$top -c
然后按“ m”,它将按最高内存使用顺序对输出进行排序,如下所示:
top - 07:12:37 up 69 days, 4:33, 1 user, load average: 0.17, 0.10, 0.06 Tasks: 164 total, 1 running, 98 sleeping, 0 stopped, 0 zombie %Cpu(s): 3.2 us, 0.5 sy, 0.0 ni, 96.0 id, 0.0 wa, 0.2 hi, 0.2 si, 0.0 st KiB Mem : 29.3/4024444 [||||||||||||||||||||||||||||| ] KiB Swap: 9.5/524284 [|||||||||| ] PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 24426 www-data 20 0 449796 62568 45484 S 5.3 1.6 0:25.12 php-fpm: pool www 19577 www-data 20 0 448112 60288 44652 S 1.7 1.5 0:29.16 php-fpm: pool www 1233 root 20 0 1292628 41960 5188 S 0.3 1.0 580:00.20 /opt/site24x7/monagent/lib/Site24x7Agent 1928 root 20 0 1183840 43808 5368 S 0.3 1.1 56:50.99 /opt/site24x7/monagent/lib/applog/Site24x7Applog 7859 root 20 0 41856 3880 3200 R 0.3 0.1 0:00.07 top -c 1 root 20 0 37672 4604 3240 S 0.0 0.1 14:35.54 /sbin/init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.78 [kthreadd] 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_gp] 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_par_gp]
我们也可以按以下方式运行top命令
$top
然后从键盘上按'SHIFT'+'m'以按内存使用量排序。
使用快捷键
现代Linux发行版支持顶部的交互式菜单来选择内存使用情况。
请按照以下步骤操作:
- 按“ Shift + f”进入交互式菜单。
- 按“向上”或者“向下”箭头,直到突出显示“%MEM”选项。
- 按“ s”选择“%MEM”选项。
- 按“输入”保存选择并退出(“ q”)交互式菜单。
下面的屏幕截图显示了交互式菜单'Shift + f':
在旧版本的Linux中,它会有些不同,如下所示:
运行“ top”命令并按“ shift” +“ f”,则输出将如下所示:
Current Sort Field: K for window 1:Def Select sort field via field letter, type any other key to return a: PID = Process Id b: PPID = Parent Process Pid Note2: c: RUSER = Real user name Field sorting uses internal values, d: UID = User Id not those in column display. Thus, e: USER = User Name the TTY & WCHAN fields will violate f: GROUP = Group Name strict ASCII collating sequence. g: TTY = Controlling Tty (shame on you if WCHAN is chosen) h: PR = Priority i: NI = Nice value j: P = Last used cpu (SMP) * K: %CPU = CPU usage l: TIME = CPU Time m: TIME+ = CPU Time, hundredths n: %MEM = Memory usage (RES) o: VIRT = Virtual Image (kb) p: SWAP = Swapped size (kb) q: RES = Resident size (kb) r: CODE = Code size (kb) s: DATA = Data+Stack size (kb) t: SHR = Shared Mem size (kb) u: nFLT = Page Fault count v: nDRT = Dirty Pages count w: S = Process Status x: COMMAND = Command name/line y: WCHAN = Sleeping in Function z: Flags = Task Flags
现在按与'%MEM'对应的字母,即'n',然后按'ENTER'键。
使用单个命令
我们可以从终端运行以下单个top命令以显示内存使用情况:
$top -o %MEM