在Linux系统中,top命令用于实时监视系统的进程活动和系统性能。下面是top命令输出中每一列的含义:

  1. PID:进程ID。
  2. USER:运行该进程的用户。
  3. PR:进程的优先级。
  4. NI:进程的优先级调整值(Nice值)。
  5. VIRT:进程使用的虚拟内存总量。
  6. RES:进程使用的物理内存总量。
  7. SHR:进程共享的内存总量。
  8. S:进程的状态(S表示睡眠,R表示运行,Z表示僵尸进程等)。
  9. %CPU:进程使用的CPU占比。
  10. %MEM:进程使用的内存占比。
  11. TIME+:进程累计的CPU时间。
  12. COMMAND:启动进程的命令名称。

关于%MEM列,它显示了每个进程占用系统内存的百分比。如果有四个进程显示为11%,那么它们各自占用的内存比例是11%,但不能简单地将它们相加得到总内存占用百分比。这是因为每个进程使用的内存之间可能存在重叠,以及系统的其他进程和缓存也在使用内存。


要计算所有进程占用内存的总和,需要考虑整个系统的内存使用情况,而不仅仅是top命令中列出的那些进程。使用free命令可以查看系统的内存使用情况。

free -h

-h选项用于以人类可读的方式显示内存大小,例如使用GB、MB等单位。

命令的输出会包含以下列:

  1. total:系统内存的总量。
  2. used:已使用的内存量。
  3. free:空闲的内存量。
  4. shared:用于共享内存的内存量。
  5. buffers:用于缓冲区的内存量。
  6. cached:用于缓存的内存量。
  7. available:可用的内存量。

available 是系统目前可供使用的最大内存,free是指直接可用的内存。他们的差值来源于buff/cache(虽然是已分配给缓存和缓冲区的)系统有需要的话可以拿出一部分内存给进程用。

下面是一个示例输出:

              total        used        free      shared  buff/cache   available
Mem:           7.7G        3.2G        1.5G        500M        3.0G        3.8G
Swap:          2.0G        1.2G        819M

在这个示例中,系统的总内存为7.7GB,已使用的内存为3.2GB,空闲的内存为1.5GB。同时,有500MB的内存用于共享,3.0GB的内存用于缓存,还有3.8GB的内存可用。

“cache”部分表示操作系统所使用的文件系统缓存,也就是磁盘上的文件数据的副本,以提高读取文件的性能。这个缓存会根据系统的需求动态地调整大小。通常,较大的cache值表示系统正在积极地使用内存来缓存文件数据,以提高读写文件的速度。buffer cache,主要用于存放块设备的缓冲数据。


文章作者: 易百分
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 易百分 !
  目录