man free
可以得到详细的信息,这里贴个中文的,读起来快。
语 法:
free [-bkmotV][-s <
间隔秒数
>]
补充说明:
free
指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参 数:
-b
以
Byte
为单位显示内存使用情况。
-k
以
KB
为单位显示内存使用情况。
-m
以
MB
为单位显示内存使用情况。
-o
不显示缓冲区调节列。
-s<
间隔秒数
>
持续观察内存使用状况。
-t
显示内存总和列。
-V
显示版本信息。
total used free shared buffers cached
Mem: 1022420 665104 357316 0 107012 278204
-/+ buffers/cache: 279888 742532
Swap: 1045500 223188 822312
total
物理内存总数
: 1022420
used
已经使用的内存数
: 665104
free
空闲的内存数
: 357316
shared
当前已经废弃不用,总是
0
buffers
即
Buffer Cache
内存数
: 107012
cached
即
Page Cache
内存数
: 278204
关系:
total = used + free
-buffers/cache
的内存数:
279888 (
等于第
1
行的
used -
buffers - cached),
实际上是应用程序所使用的内存。
+buffers/cache
的内存数
: 742532 (
等于第
1
行的
free + buffers + cached),
是对应用程序来说还剩余的内存。
可见
-buffers/cache
反映的是被程序实实在在吃掉的内存,而
+buffers/cache
反映的是可以挪用的内存总数。
对操作系统来讲
buffers/cached
都是属于被使用
,
所以它认为
free
只有
357316.
对应用程序来讲是
(-/+ buffers/cach).buffers/cached
是等同可用的,因为
buffer/cached
是为了提高程序执行的性能,当程序使用内存时,
buffer/cached
会很快地被使用。
-
第三行是交换分区
swap,
列出已使用、空闲的
swap.
SWAP
就是
LINUX
下的虚拟内存分区
,
它的作用是在物理内存使用完之后
,
将磁盘空间
(
也就是
SWAP
分区
)
虚拟成内存来使用。
Swap
空间的作用可简单描述为:当系统的
物理内存
不
够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的
空间被临时保存到
Swap
空间中,等到那些程序要运行时,再从
Swap
中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行
Swap
交换
-
那
buffers
和
cached
都是缓存,两者有什么区别呢?
为了提高磁盘存取效率
, Linux
做了一些精心的设计
,
除了对
dentry
进行缓存
(
用于
VFS,
加速文件路径名到
inode
的转换
),
还采取了两种主要
Cache
方式:
Buffer Cache
和
Page Cache
。前者针对磁盘块的读写,后者针对文件
inode
的读写。这些
Cache
有效缩短了
I/O
系统调用
(
比如
read,write,getdents)
的时间。
磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种
Cache
就是分别缓存逻辑和物理级数据的。
Page cache
实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到
page cache
。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当
page cache
的数据需要刷新时,
page cache
中的数据交给
buffer cache
,因为
Buffer Cache
就是缓存磁盘块的。但是这种处理在
2.6
版本的内核之后就变的很简单了,没有真正意义上的
cache
操作。
Buffer cache
是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到
buffer cache
中,例如,文件系统的元数据都会缓存到
buffer cache
中。
简单说来,
page cache
用来缓存文件数据,
buffer cache
用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到
page cache
,如果直接采用
dd
等工具对磁盘进行读写,那么数据会缓存到
buffer cache
。
所以我们看
linux,
只要不用
swap
的交换空间
,
就不用担心自己的内存太少
.
如果常常
swap
用很多
,
可能你就要考虑加物理内存了
.
这也是
linux
看内存是否够用的标准
.
如果是应用服务器的话,一般只看第二行,
+buffers/cache,
即对应用程序来说
free
的内存太少了,也是该考虑优化程序或加内存了。
想起来记录
free
的一些东西,缘由是某
java
应用
crash
了,从
crashlog
中看到
crash
时,物理内存剩下仅十几
M
,出错的点是
jvm
内部
malloc
失败,估计很可能是内存不够用导致。于是想了解下内存相关的一些信息,
crash log
中输出的内容和
free
命令中输出的第二行结果是一致的。因此想了就关注了
free
这个命令输出的一些信息解释。现在看来,上面的推测可能成立,但是还缺少一些依据,需要当时场景的更多信息才能判断出是不是这个原因。
内容参考下面链接汇总而成。
http://www.linuxso.com/command/free.html
http://baike.baidu.com/view/418446.htm
http://www.ddvip.com/mc/os/linux/1413.html
分享到:
相关推荐
### Linux常用命令笔记 #### 一、Linux命令基础 Linux是一种强大的开源操作系统,适用于服务器、桌面和嵌入式系统等多种应用场景。了解基本的Linux命令对于有效地管理这些系统至关重要。 ##### 查看帮助文档 - *...
这篇笔记主要涵盖了多个方面的Linux基础知识,包括常用命令、磁盘管理、用户管理、文件权限、软件安装、进程管理、资源监控、系统服务、网络管理、性能优化以及常见问题的解决。下面我们将详细探讨这些知识点。 1. ...
### Linux基础命令笔记 #### 常用命令详解 ##### 磁盘管理 - **ls**:列出目录内容。 - `-a`:显示所有文件和目录,包括隐藏文件。 - `-l`:使用详细格式列出文件信息。 - `-t`:按照文件最后修改时间排序。 -...
而对专业人士来说,FreeMind的灵活性和扩展性使其成为项目管理、学习笔记、创意构思等多场景的理想工具。 总结来说,FreeMind是一款功能强大的思维导图软件,它以Java为基础,适用于Windows环境。通过下载并安装...
### Linux运维必会命令笔记 #### 一、基础命令与环境熟悉 - **Shell提示与命令格式** - **Shell提示符**: - `[root@wang ~]#` 表示当前用户为 `root`。 - `[user@host directory]$` 表示普通用户登录,`user` ...
9. 内存管理工具:`free`命令显示当前系统的内存使用情况,`top`和`htop`可以实时监控进程内存占用,`smem`报告详细的内存使用报告,包括物理和交换内存。 10. 调优策略:Linux内存管理可以通过调整内核参数来优化...
### KALI Linux 学习记录笔记 #### 一、KALI Linux 源地址更改及维护 在使用KALI Linux时,为了获得更快的下载速度和更新体验,通常会更换镜像源。例如,可以将源更换为中国阿里云提供的KALI镜像源。以下是具体...
这份“Linux笔记”将带你深入理解并应用一系列常用的Linux命令。 一、文件和目录操作 1. `ls`:列出目录内容,`ls -l`显示详细信息,`ls -a`显示所有文件包括隐藏文件。 2. `cd`:改变工作目录,如`cd /home/user`...
- **内存分配**:Linux提供了多种方式来分配内存,如malloc()、calloc()、realloc()、free()等函数。 - **共享内存**:多个进程之间可以通过共享内存段的方式实现通信。 - **内存泄漏检测**:使用valgrind等工具检测...
在Red Hat Linux 9.0系统上,我们使用了以下软件:tmake-1.13、qt-x11-2.3.2和qt-embedded-2.3.10-free。这些文件应被放置在一个方便的目录(例如/root/2410sQt)下,便于后续操作。 Qt/Embedded平台的搭建分为几个...
【个人Linux总结笔记】 在Linux操作系统中,管理系统的配置和优化是日常运维的重要部分。以下是一些关于Linux的实用技巧和知识点: 1. **解决telnet登录慢的问题**: 当遇到telnet登录速度缓慢时,可能是DNS解析...
Linux下C语言开发笔记整理涵盖了从基础知识到网络通信的多个方面,主要围绕在Unix/Linux系统环境下使用C语言进行软件开发的各项技术与理论。以下是从文件提供的信息中提炼的知识点。 ### Unix/Linux系统基本命令和...
以下是对`Linux笔记centos6 有些命令centos7不适用.docx`中提到的一些核心目录的详细介绍: - **Bin**:此目录存储了系统中的常用命令和实用工具,这些工具对于普通用户来说非常重要。 - **Dev**:这是一个特殊的...
第一部分:常用命令 常用命令/文件处理 0:基础功能 1:ls 显示文件目录 语法:ls 选项[-ald][文件或目录] 2:cat 显示文件内容(内容少适合) 语法:cat[文件名] 3:tac 显示文件内容 语法:tac[文件名] 4:more 分页...
"Linux命令大全和笔记.chm"这个压缩包提供了一份详尽的Linux命令参考资料,帮助用户快速学习和解决Linux环境中的各种问题。以下是基于该资源的Linux命令相关知识点的详细解释: 1. **基础命令**:Linux命令行界面...
在提供的文件列表中,"详细个人整理笔记.exe"可能包含了作者个人对这些概念的深入理解和实践案例,"config.ini"可能是配置文件,而"Linux命令手册.pdf"则是手册的主体部分,包含详细的命令解释和示例。通过阅读这些...
### Linux就该这么学笔记(一) #### 第一章 基础知识 **1. 查看机器是否是 Red Hat 系统** - 使用 `cat /etc/redhat-release` 命令可以查看当前系统是否为 Red Hat 系统及其版本信息。 - 示例输出:`Red Hat ...
9. free命令:查看系统内存。 10. date命令:显示与设置系统时间。 11. cal命令:查看日历等时间信息。 五、搜索文件命令(4个) 1. which命令:查找二进制命令的绝对路径,按环境变量PATH路径查找。 2. whereis...