开发者资讯

 首页 > 开发者资讯 > 编程开发 > Linux下查看内存使用情况的方法总结

Linux下查看内存使用情况的方法总结

分享到:
【字体:
导读:
          在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。

Q:我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢?

在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。

 

1. /proc/meminfo

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

 
1
$ cat /proc/meminfo

/proc/meminfo

 

2. atop

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

 
1
$ sudo atop

atop

 

3. free

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

 
1
$ free -h

free

 

4. GNOME System Monitor

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

 
1
$ gnome-system-monitor

gnome-system-monitor

 

5. htop

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

 
1
$ htop

$ htop

 

6. KDE System Monitor

功能同 4 中介绍的GENOME版本。

 
1
$ ksysguard

$ ksysguard

 

7. memstat

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

 
1
$ memstat -p

memstat

 

8. nmon

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

 
1
$ nmon

nmon

 

9. ps

ps命令可以实时的显示各个进程的内存使用情况。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进行排序:

 
1
$ ps aux --sort -rss

ps

 

10. smem

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

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

smem

 

11. top

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

 
1
$ top

linux-memory-11

 

12. vmstat

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

 
1
$ vmstat -s

 

 

via: xmodulo

分享到:
敢为你最宠爱的编程语言赌100000000美元...
我的命题是这样的:我需要开发一个应用程序,如果你能按时交付,那么我会支付给你一亿美元。并且此程序不涉及一些不可能解决的问题,当然各种困难和乱七八糟的问题那是一定的。 至于你想用什么编程语言来写,毫无限制,这一点我完全没有要求。关键是你得完成这个程序,并且使之能顺利工作。 任何一个大项目在开发过程中...
Android中全局变量与局部变量的使用总结
全局变量顾名思义就是在整个的类中或者可在多个函数中调用的变量。也称为外部变量。局部变量则是特定过程或函数中可以访问的变量。声明一个变量是很 容易的,但是讲到使用的时候,却不是想象的那样简单。至于本人则是经常定义全局变量使用,但也就是因为这样,定义的是全局变量。也饶了不少的弯子。 在使用Adapter即适配...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……