有许多办法可以获得Linux系统上所安装内存的信息,并查看其中有多少内存正在使用中。有的命令会展示大量的细节,而有的命令则提供了简洁(但不一定容易理解)的结果。在这篇文章中将介绍一些更有用的工具,帮助你检查内存及其使用情况。

不过,在进一步讨论之前,我们要先回顾一些基本知识。物理内存和虚拟内存是不一样的,后者包括配置为交换区的磁盘空间。交换区可能包括为此用途预留的分区,或者那些为添加到新的交换区而创建的文件——当创建一个新的分区并不实际时。有些Linux命令提供了这两方面的信息。

交换区通过提供磁盘空间来扩展内存,这些磁盘空间可用于存放那些物理内存已满时移动到磁盘的非活动页。

在内存管理中起到作用的一个文件是/proc/kcore,这个文件看起来像一个普通的(虽然非常大)文件,但是它根本不占用磁盘空间。就像/proc中的所有文件一样,它是一个虚拟文件。

有趣的是,下面查询的两个系统没有安装相同数量的内存,但是/proc/kcore的大小在这两个系统上是相同的。第一个系统安装了4 GB内存,第二个有6 GB。

该文件的大小表示可用虚拟内存的数量(可能加上4K),这个解释可能站不住脚。这个数字表明这些系统上的虚拟内存是128 TB!这个数字代表64位系统能够寻址的内存数量,而不是系统上的可用内存数量。通过以下方式进行计算,再加上4 K,就可以推导出这个数字:

另一个更人性化的检查内存的命令是free命令,它可以提供一个易于理解的内存报告。

使用-g选项,free以gb为单位报告这些值。

使用-t选项,free显示的值与没有选项时显示的值相同(不要混淆-ttb),但是在输出的底部添加了一行。

当然,你也可以同时使用这两个选项。

如果你希望得到“这个系统上安装了多少RAM”的答案,那么你可能会对这个报告感到失望,这与上面示例中显示的具有6GB RAM的系统相同。并不表示这个报告是错的,而是系统对它所拥有的内存的看法。free命令还提供了每X秒(在下面的示例中为10秒)更新一次结果的选项。

使用-l, free命令可以提供高内存使用量和低内存使用量。

查看内存的另一个办法是/proc/meminfo文件。与/proc/kcore类似,这是一个虚拟文件,它提供了一个有用的报告,显示安装了多少内存、空闲内存和可用内存。显然,空闲和可用并不是一个意思。MemFree代表未使用的RAMMemAvailable是对启动新应用程序可用内存的估计。

如果只想查看总内存,可以使用以下命令之一:

DirectMap条目将内存上的信息分解成类别。

DirectMap4k表示映射到标准4k页面的内存量,而DirectMap2M表示映射到2MB页面的内存量。

getconf命令将提供的信息往往比较多。


使用如下所示的命令可以将输出缩减为特定的内容,你能够获得与上面的一些命令相同的信息。

该命令通过将输出的第一行和最后一行中的值相乘来计算内存,如下所示:

独立地进行计算,我们就可以看到这个值是如何推导出来的。

另一个输出非常容易理解的命令是toptop输出前5行中的数字显示了内存的使用情况。

最后这个命令将以简洁的方式回答“这个系统上安装了多少RAM ?

根据您希望看到的详细信息的多少,Linux系统提供了许多选项,可以查看系统上安装了多少内存,以及使用了多少内存和有多少可用内存。

Linux系统下分析内存使用情况的管理工具的更多相关文章

  1. 05 Linux系统下的用户以及用户权限管理(权限管理介绍、用户管理、常见命令介绍)

    这一节我们介绍Linux的用户以及权限管理的前半段,包括:1.权限管理介绍: 2.用户管理: 3.常见命令 权限管理介绍 权限管理: 为了访问计算机资源,我们需要对其进行授权才能访问,根据什么东西来进 ...

  2. linux系统下键盘按键的重新映射——xmodmap工具和xev工具

    大家会不会有时候,感觉键盘上的某几个键用起来不是很方便,打字打久了很容易手指头疼呢? 例如大家使用vim编辑器时, 经常需要使用到esc键,而该键在左上角,很不方便的.再比如写程序的时候,经常会使用到 ...

  3. linux free 命令 查看内存使用情况

    查看Linux服务器下的内存使用情况,可以使用命令free -m [root@localhost ~]$ free // 以KB为单位显示内存使用情况 [root@localhost ~]$ free ...

  4. 操作系统复习——如何查看一个进程的详细信息,如何追踪一个进程的执行过程 ,如何在 Linux 系统下查看 CPU、内存、磁盘、IO、网卡情况?epoll和select区别?

    1. 如何查看一个进程的详细信息,如何追踪一个进程的执行过程 通过pstree命令(根据pid)进行查询进程内部当前运行了多少线程:# pstree -p 19135(进程号) 使用top命令查看(可 ...

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

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

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

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

  7. Linux性能优化:内存使用情况分析

    Blog:博客园 个人 目录 什么是内存 Linux内存回收机制 查看Linux内存情况 查看/proc/meminfo 使用free命令查看 Buffer和Cache Swap 内存泄漏和内存溢出 ...

  8. C/C++获取Linux系统CPU和内存及硬盘使用情况

    需求分析: 不使用Top  df  free 等命令,利用C/C++获取Linux系统CPU和内存及硬盘使用情况 实现: //通过获取/proc/stat (CPU)和/proc/meminfo(内存 ...

  9. Linux系统下fd分配的方法

    最近几天在公司里写网络通讯的代码比较多,自然就会涉及到IO事件监测方法的问题.我惊奇的发现select轮训的方法在那里居然还大行其道.我告诉他们现在无论在Linux系统下,还是windows系统下,s ...

随机推荐

  1. Python 实现红绿灯

    一.通过Event来实现两个或多个线程间的交互,下面是一个红绿灯的例子,即起动一个线程做交通指挥信号灯,一个线程做车辆,车辆行驶按红灯停,绿灯行的规则. #!/usr/bin/python # -*- ...

  2. 00-JAVA语法基础--课后作业

    题目:像二柱子那样,花20分钟写一个能自动生成30道小学四则运算题目的“软件”. package 课堂作业1; import java.util.Random; import java.util.Sc ...

  3. JAVA首次课堂测试总结

    暑期生活已经结束,新的学期也已经开始,而暑期放假之前约定的JAVA首次课堂测试也如期的到来,本次测试真的可以学到和多东西,也有很多感想. 首先体会最深的就是系主任所说的软件工程不是那么好学的,真的需要 ...

  4. Codeforces 1036E Covered Points (线段覆盖的整点数)【计算几何】

    <题目链接> <转载于 >>>  > 题目大意: 在二维平面上给出n条不共线的线段(线段端点是整数),问这些线段总共覆盖到了多少个整数点. 解题分析: 用GC ...

  5. valueof toString

    valueof toString add(1)(2) // 3 add(1, 2, 3)(10) // 16 add(1)(2)(3)(4)(5) // 15 function add() { var ...

  6. Spring Boot 项目实战(四)集成 Redis

    一.前言 上篇介绍了接口文档工具 Swagger 及项目监控工具 JavaMelody 的集成过程,使项目更加健壮.在 JAVA Web 项目某些场景中,我们需要用缓存解决如热点数据访问的性能问题,业 ...

  7. Linux系统开发之路-上

    本节内容主要介绍Linux操作系统的主要特性,包括Linux与Windows操作系统的主要区别:Linux系统的分类:开发环境的推荐:Linux操作系统的安装:Linux系统下开发环境的安装和配置. ...

  8. spring security入门demo

    一.前言 因项目需要引入spring security权限框架,而之前也没接触过这个一门,于是就花了点时间弄了个小demo出来,说实话,刚开始接触这个确实有点懵,看网上资料写的权限大都是静态,即就是在 ...

  9. python实现链表(二)

    class SingleNode(object): """单链表的结点""" def __init__(self,item): # _ite ...

  10. AGC 010D.Decrementing(博弈)

    题目链接 \(Description\) 给定\(n\)个数\(A_i\),且这\(n\)个数的\(GCD\)为\(1\).两个人轮流进行如下操作: 选择一个\(>1\)的数使它\(-1\). ...