学习啦>学习电脑>操作系统>操作系统基础知识>

Linux操作系统查看内存信息的命令

佳洲分享

  Linux操作系统的内存使用情况我们可以通过命令来知道。下面由学习啦小编为大家整理了Linux操作系统查看内存信息的命令的详细介绍,希望对大家有帮助!

  Linux操作系统查看内存信息的命令

  1. /proc/meminfo查看RAM使用情况最简单的方法是通过/proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过/proc/<pid>/statm 和 /proc/<pid>/status 来查看。

  $ cat /proc/meminfo

  2. atopatop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。

  $ sudo atop

  3. freefree命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。

  $ free -h

  4. GNOME System MonitorGNOME System Monitor 是一个显示最近一段时间内的CPU、内存、交换区及网络的使用情况的视图工具。它还提供了一种查看CPU及内存使用情况的方法。

  $ gnome-system-monitor

  5. htophtop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。

  $ htop

  6. KDE System Monitor功能同 4 中介绍的GENOME版本。

  $ ksysguard

  7. memstatmemstat是一个有效识别executable(s), process(es) and shared libraries使用虚拟内存情况的命令。给定一个进程ID,memstat可以列出这个进程相关的可执行文件、数据和共享库。

  $ memstat -p <PID>

  8. nmonnmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。

  $ nmon

  9. psps命令可以实时的显示各个进程的内存使用情况。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序:

  $ ps aux --sort -rss

  10. smemsmem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。

  $ sudo smem --pie name -c "pss"

  11. toptop命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。

  $ top

  12. vmstatvmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。

  $ vmstat -s

  Linux操作系统内存信息的有关概念

  Mem:表示物理内存统计

  total 内存总数 8057964KB

  used 已使用的内存 7852484KB

  free 空闲的内存数 205480KB

  shared 当前已经废弃不用,总是0

  buffers Buffer 缓存内存数: 290432KB

  cached Page 缓存内存数:5735024KB

  (存在关系: total = used + free )

  -/+ buffers/cached:表示物理内存的缓存统计

  (-buffers/cache) used内存数:1827028KB (指的第一部分Mem行中的used - buffers - cached)

  (+buffers/cache) free内存数: 6230936KB (指的第一部分Mem行中的free + buffers + cached)

  -buffers/cache反映的是被程序实实在在吃掉的内存;

  +buffers/cache反映的是可以挪用的内存总数;

  Swap:表示硬盘上交换分区的使用情况

  free参数说明

  -m 以M为单位查看内存使用情况(默认为kb)

  -b 以Byte为单位查看内存使用情况

  -k 以KB为单位查看内存使用情况

  -o 不显示缓存调节列

  -t 显示内存总和列

  -V 显示版本信息

  -s <间隔秒数> 可以在指定时间段内不简单监控内存的使用情况

  参考资料:buffers 与 cached 的区别

  对于应用程序来说,buffers/cached 是等于可用的,

  因为buffer/cached是为了提高文件读取的性能,

  当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

  所以从应用程序的角度来说 可用内存=系统free memory+buffers+cached.

  buffers是指用来给块设备做的缓冲大小,

  他只记录文件系统的metadata以及 tracking in-flight pages.

  cached是用来给文件做缓冲。

  那就是说:buffers是用来存储,目录里面有什么内容,权限等等。

  而cached直接用来记忆我们打开的文件,如果你想知道他是不是真的生效,

  可以试一下,先后执行两次命令#man X ,可以明显的感觉到第二次的开打的速度快很多。

  记住内存是拿来用的,不是拿来看的.不像windows,无论你的真实物理内存有多少,他都要拿硬盘交换 文件来读.

  这也就是windows为什么常常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分 的时候,拿出一部分

  硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换 空间,就不用担心自己的内存

  太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看 内存是否够用的标准哦.

    3644285