在Linux中如何检查特定进程的内存利用率?

我们有很多方法来检查总体内存使用情况,但是如果您想监视某个特定进程的内存使用情况,该怎么办呢。

Linux如何查看某个进程的内存使用量?

为了演示,我们将运行 screen 实用程序,然后查看它的内存使用情况。

下面的命令将创建一个名为“work”的具有 500 万行缓冲区的屏幕

# screen -h 5000000 -LS work

执行此命令后,屏幕上将出现一个新屏幕。
要分离屏幕,请按“ctrl + a + d”

现在在屏幕上让我们看到正在运行的屏幕实用程序的 PID

# screen -ls
There is a screen on:
        2598.work       (Detached)
1 Socket in /var/run/screen/S-root.

此屏幕实用程序的 pid 为 2598

让我们检查它的内存利用率

方法一

使用 ps 命令(这将以百分比显示内存利用率)

# ps -p 2598 v
  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
 2598 ?        Ss     0:03      0   354 938689 821540 42.9 SCREEN -h 5000000 -LS work

因此 screen 实用程序使用了我总可用内存的 42.9%,例如:1869 MB,因此 screen 大约使用了 801 MB。

方法二

Linux如何查看某个进程的内存使用情况?

使用top命令

# top -p 2598
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2598 root      20   0  917m 802m  864 S  0.0 42.9   0:03.49 screen

输出与我们使用 ps 命令看到的相似,它再次向我们显示了 %age 使用率,但还有一个 VIRT 部分,它告诉我们 screen 实用程序使用的虚拟内存。

基本上,虚拟内存是运行进程使用的物理内存和交换空间的逻辑组合。

方法三

使用screen实用程序进程的 pid 运行以下命令

# cat  /proc/2598/status | grep -i VMSIZE
VmSize:   939044 kB

这将再次显示screen实用程序使用的虚拟内存,即:917 MB

日期:2020-06-02 22:18:24 来源:oir作者:oir