Linux free 命令 - 显示系统中空闲和已使用的内存

系统管理员必须维护他们服务器的健康运行。其中一个重要的部分就是内存。当服务器内存使用率过高时,它会降低服务器的性能。Linux有一个称为 free 的工具,来监控内存使用率。

free 命令是什么

free 命令是一个显示系统中空闲和已用内存大小的工具。free 命令的输出和 top 命令相似。大多数Linux发行版已经含有 free 命令。

如何运行 free

想要运行,只需在控制台输入free 即可。不带选项运行会显示一个以KB为单位的默认输出。

$ free

free默认视图

从上面的截图我们看到:

内存 (以KB计)

  • Total(全部) : 1026740
  • Used(已用) : 843396
  • Free(可用) : 183344
  • Shared(共享) : 0
  • Buffers(块设备缓存区) : 52704
  • Cached(文件缓存) : 376384

译注:关于Buffers和Cached的区别,来自 http://www.taobaotesting.com/blogs/qa?bid=2265 的一段解释如下:

buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.

cached是用来给文件做缓冲。

那就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件

Swap (以KB计)

  • Total(全部) : 1045500
  • Used(已用) : 3376
  • Free(可用) : 1042124

当你看见 buffer/cache 的空闲空间低或者 swap 的空闲空间低,说明内存需要升级了。这意味这内存利用率很高。请注意 shared(共享)内存列应该被忽略 ,因为它已经被废弃了。

以其它单元显示内存信息

如我们先前提到的,默认 free 会以 KB 为单位显示信息。free 同样提供给我们 b (B), -k (KB), -m (MB), -g (GB) and –tera (TB)这些单位。要显示我们想要的单位,只要选择一个并在 free 后面跟上。下面一个是以 MB 为单位的输出样例。

$ free -m

free命令以MB为单位

这个技巧同样适用于-b, -k, -g 以及 –tera 选项。

以适于人类可读方式显示内存信息

free 同样提供了-h选项,这意味着适于人类可读(译注:系统上可能并不存在-h选项,已被-m取代)。那么这与其它的选项有什么不同呢,如-m(MB)选项? 可见的最大不同是-h选项会在数字后面加上适于人类可读的单位。让我们看一个例子。

$ free -h

人类可读的free

如我们一起看到的,在1,0数字后这里是G(GB)字母。当数字并没有达到GB时,free足够聪明来知道并在每个数字后面跟上合适的单位。后面的M - 数字929告诉我们它有929MB(译注: 原文为929 number tell us its 969 Megabytes,这里应该为输入错误)。

间隔显示 free

作为一个状态检查工具,最好的统计内存利用率的方法是使用延迟间隔。这么做的话,我们可以使用-s选项后面跟上我们想要间隔的N秒数。我们可以在后面合并几个选项来使输出满足我们的需求。假如我们想要每3秒统计一次内存利用率并且适于人类可读,那么就像这样做:

$ free -hs 3

间隔3s显示free

显示高低内存利用率

如果我们想要知道高低内存统计,我们可以使用-l选项。下面是一个例子。

$ free -l

Free 的 低-高 统计

显示 Linux 全部内存

如果我们需要每列的总计信息,我们可以在 free 命令后面跟上 -t 选项。这会在字底部额外加入一行显示。

$ free -t

free命令带总计内存

总结

除了vmstat以外,free 命令也是一个用于统计内存利用率的简单统计工具。用这个你可以快速查看你的 Linux 内存信息。free 命令使用 /proc/meminfo 作为基准来显示内存利用率信息。如往常一样,你可以在控制台下输入 man free 来获取更多关于 free 的信息。

原文发布时间为:2014-01-05

本文来自合作伙伴“Linux中国”

时间: 2024-10-30 04:10:56

Linux free 命令 - 显示系统中空闲和已使用的内存的相关文章

Linux的free命令来显示系统中空闲和已使用的内存

  系统管理员必须维护他们服务器的健康运行.其中一个重要的部分就是内存.当服务器内存使用率过高时,它会降低服务器的性能.Linux有一个称为 free 的工具,来监控内存使用率. free 命令是什么 free 命令是一个显示系统中空闲和已用内存大小的工具.free 命令的输出和 top 命令相似.大多数Linux发行版已经含有 free 命令. 如何运行 free 想要运行,只需在控制台输入free 即可.不带选项运行会显示一个以KB为单位的默认输出. $ free 从上面的截图我们看到: 内

Linux who 命令 – 显示系统登录者

作为一名系统管理员,我们需要弄清楚在一个特定的时间点都有谁活跃在系统上.必须严密监视我们的服务器.但是,我们当然不可能一天24小时都盯着系统.在linux系统中,我们可以使用who命令查看登录者信息. 什么是 who 命令 who命令能够打印 当前都有谁登录到系统中 的相关信息 .who命令只会显示真正登录到系统中的用户.它不会显示那些通过su命令切换用户的登录者. 如何使用who命令 在大多数linux发行版中,who命令都是默认安装上的.想使用该命令,只需在控制台敲命令就行了.不带选项的话,

solaris下的中文语言环境:如何显示系统中安装的语言环境

成为超级用户或同等角色. 角色包含授权和具有一定权限的命令. 使用 localeadm 命令显示系统中当前安装的语言环境.-l 选项显示系统中安装的语言环境.例如: # localeadm -l Checking for installed pkgs. This could take a while. Checking for Australasia region (aua) (1of2 pkgs) |......| . . . The following regions are install

Linux中显示系统中USB信息的lsusb命令

通用串行总线(USB)被设计成为连接计算机外设的标准,如键盘.鼠标.打印机.数码相机.便携式媒体播放器.磁盘和网络适配器等等 - 来源:Wikipedia 它已经成为了一个工业标准,现在很难看到一个没有USB口的计算机了.USB闪存的使用使得它更加流行.在Linux上,我们可以使用lsusb来列出USB设备和它的属性. 什么是lsusb 在它的手册上,lsusb定义成: 显示系统中以及连接到系统的USB总线信息的工具. 如何运行lsusb? 要运行lsusb,你可以直接在控制台输入lsusb.

Linux slabtop命令——显示内核片缓存信息

Linux slabtop命令--显示内核片缓存信息 Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存.现代Linux内核部署了该缓存分配器以持有缓存,称之为片.不同类型的片缓存由片分配器维护.本文集中讨论slabtop命令,该命令显示了实时内核片缓存信息. 1. 命令用法: 该命令用起来很简单,默认执行时不要求任何参数.但是它要求root特权来读取内核片信息.以普通用户执行该命令会出现以下错误: Run slabtop as non-privil

Linux date命令 - 显示和设置系统日期与时间

操作系统上的时间也许只是当做一个时钟.特别在控制台下, 我们通常并不认为时间有什么重要的.但是对于管理员,这种认识是错误的.你知道错误的日期和时间会导致你不能编译程序么? 因为日期和时间很重要,这或许就是开发网络时间协议(NTP:Network Time Protocol)的原因.让我们了解下date命令是如何工作的. 显示系统日期 要显示系统日期,只要输入: $ date Thu Dec 5 22:55:41 WIB 2013 格式化显示日期 日期有很多格式.如果你不喜欢默认的格式,你可以换一

Linux技巧--Redhat 5系统中的vim编辑器无法正常显示中文解决方案(中文显示为乱码)/Ubuntu 12.04系统gedit中文乱码

Redhat5 vim编辑器 中文乱码: 1.查看linux系统中是否已安装fonts-chinese中文语言支持包,如果没有安装,需要下载相应版本的rpm包进行安装 [root@localhost 02EXPORT_SYMBOL]# rpm -qa | grep fonts-chinese fonts-chinese-3.02-12.el5 2.修改/etc/sysconfig/i18n文件为以下内容 修改之前,记得先备份.cp /etc/sysconfig/i18n /etc/sysconf

Linux id 命令 - 显示用户id和组id信息

要登入一台计算机,我们需要一个用户名.用户名是一个可以被计算机识别的身份.基于此,计算机会对使用这个用户名的登陆的人应用一系列的规则.在Linux系统下,我们可以使用 id 命令. 什么是 id 命令 id 命令可以显示真实有效的用户 ID(UID) 和组 ID(GID).UID 是对一个用户的单一身份标识.组 ID(GID)则对应多个UID. 如何使用 id 命令 id 命令已经默认预装在大多数 Linux 系统中.要使用它,只需要在你的控制台输入id.不带选项输入 id 会显示如下.结果会使

Linux Netcat 命令——网络工具中的瑞士军刀

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据.通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它.使用netcat命令所能完成的事情令人惊讶. netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了.你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端. 下面是一些使用netcat的例子. [A(172.31.100.7) B(172.31.100.23)] Linux netcat