有许多办法可以获得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. BZOJ2553 [BeiJing2011]禁忌 AC自动机 矩阵

    原文链接http://www.cnblogs.com/zhouzhendong/p/8196279.html 题目传送门 - BZOJ2553 题意概括 引用一下lych大佬的: 在字母只有前alph ...

  2. Qt错误 —— 无法启动此程序 因为计算机丢失QtCore5.dll 以及 无法定位程序输入点于动态链接库QtCore5.dll

    首先,设置计算机的环境变量Path,计算机=>右键属性=>高级设置=>环境变量=>系统变量=>双击Path,在Path后面增加C:\Qt\Qt5.8.0\5.8\ming ...

  3. TensorFlow图像预处理-函数

    更多的基本的API请参看TensorFlow中文社区:http://www.tensorfly.cn/tfdoc/api_docs/python/array_ops.html 下面是实验的代码,可以参 ...

  4. thinkphp5控制器

    // 定义应用目录 define('APP_PATH', __DIR__ . '/../app/'); // 定义配置文件目录和应用目录同级 define('CONF_PATH', __DIR__.' ...

  5. Codeforces 514C Watto and Mechanism 【Trie树】+【DFS】

    <题目链接> 题目大意:输入n个单词构成单词库,然后进行m次查询,每次查询输入一个单词(注意这些单词只由a,b,c构成),问该单词库中是否存在与当前查询的单词有且仅有一个字符不同的单词. ...

  6. CCF-学生排队

    PS:此文章已在我的站点更新,请移步访问~更多注释讲解哦.https://www.jeson.xin/ccf-student_queuing.html

  7. 给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.1--4.3

    操作列表,也就是遍历列表.本章我们要学的就是如何遍历列表. 4.1--4.2 遍历列表 遍历列表,用for循环. 不同于C++或者C语言的for循环,Python的for循环更容易让人理解. 看一个例 ...

  8. VirtWire 向客服发ticket

    1 首先需要登录自己的账户 2 点击网页的Open Ticket 3 选择要发送何种类型的ticket 4 写自己的问题,包括一个合适的主题,选择你发ticket是针对哪个vps(一个账户下可以ord ...

  9. php 生成随机字符串

    /**     * 获取随机字符串     * @param $lenth     * @return string     */     function getRandStr($lenth = 2 ...

  10. python 函数递归与匿名函数

    1.什么是函数递归? 函数递归调用(是一种特殊的嵌套调用):在调用的函数过程中,又直接或者间接的调用了该函数本身 递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规 ...