linux系统内存实际使用率
Mem:表示物理内存统计
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。
系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存b并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。
第1行 Mem: total:表示物理内存总量。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。
第2行 -/+ buffers/cached:
used:第一行中的used - buffers-cached, 也是实际使用的内存总量。
free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
free2 = buffers1 + cached1 + free1 //free2为第二行、buffers1等为第一行
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached.
buffer 与cache 的区别
A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use 第3行: 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
更详细的解释参考:Difference Between Buffer and Cache
通过/proc/meminfo 获取内存信息
需要使用的指标有:MemTotal ,MemFree,Buffers,Cached
MemTotal:总内存大小
MemFree: 空闲内存大小
Buffers和Cached:磁盘缓存的大小
直观的看,此时free的内存会非常小,但并不代表可用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。
下面是我们一台文件服务器,可以看到92G的内存基本全被cache起来了,因为大量访问文件。
参考:
手工释放linux内存——/proc/sys/vm/drop_caches
http://www.linuxfly.org/post/320/
理解Linux的性能
http://www.linuxfly.org/post/114/
Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决
http://www.cnblogs.com/panfeng412/p/drop-caches-under-linux-system.html
Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决(续)
http://www.cnblogs.com/panfeng412/p/3478442.html
相关推荐
3. **free命令**:`free`用来查看系统中的物理内存和交换内存的使用情况。通过分析源码,我们可以看到它是如何读取`/proc/meminfo`文件来获取内存统计数据的,以及如何计算和展示不同类型的内存(如已用、空闲、缓存...
在Linux系统中,`free`命令是一个非常实用的工具,用于查看系统内存的状态,包括物理内存(RAM)和交换空间(Swap)。通过分析`free`命令的输出,我们可以获取到系统内存使用的详细信息,这对于系统管理员监控和优化...
《深入解析Linux free命令》 Linux操作系统中,监控系统资源的使用情况是日常管理的重要一环,其中`free`命令便是用来查看系统内存使用状态的工具。本文将详细介绍`free`命令的使用方法和解析其输出结果,以帮助...
内存监控是系统管理的一个重要环节,而free命令作为Linux系统中常用的内存状态查看工具,能够帮助管理员快速了解系统内存的使用情况。 Free命令提供了系统中物理内存和交换空间(swap)的当前状态,包括总量、已...
- 系统监控命令:如free(显示内存使用情况)、df(显示磁盘空间使用情况)、vmstat(显示虚拟内存状态)等,用于监控系统资源的使用情况。 - 系统服务控制命令:如shutdown(关闭系统)、reboot(重启系统)、halt...
Linux free命令 Linux free命令用于显示内存状态。 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 语法free [-bkmotV][-s ] 参数说明: -b 以Byte...
"Suse Linux常用命令" Suse Linux是一种流行的Linux发行版,广泛应用于服务器和桌面环境中。本文将对Suse Linux常用的命令进行总结,帮助初学者快速掌握Suse Linux的基本操作。 目录管理 在Suse Linux中,目录...
Linux命令手册是Linux系统用户和管理员的重要参考资料,它详尽地阐述了如何在命令行界面中执行各种操作。对于新手来说,这份手册是快速学习和理解Linux操作的基础。以下是手册中涉及的一些关键知识点: 1. **...
除了这些常见命令之外,《linux核心命令速查》还可能包括许多其他命令以及它们的高级使用技巧,例如用于系统监控的`vmstat`、`iostat`、`free`,用于任务调度的`cron`和`at`,以及用于用户和权限管理的`useradd`、`...
17. **显示内存使用情况**:DOS的`mem`在Linux中对应`free`命令,显示内存和交换空间的使用情况。 在Linux中,命令通常有更多的选项和参数,使得操作更加精细。此外,Linux Shell支持管道(pipe)和重定向...
在IT领域,Linux操作系统是广泛应用于服务器和开发环境的基础平台,掌握其基础命令对于任何IT专业人员来说至关重要。本章主要介绍了Linux系统中的一些基本命令,涵盖了用户管理、系统管理、文件目录操作、打包压缩、...
本资源"Linux命令大全"包含了516个Linux命令的详细资料,对于学习和理解Linux操作系统至关重要。下面,我们将深入探讨这个资源中涉及的一些关键知识点。 1. **命令手册**: - 在Linux世界中,命令手册(man pages...
5. free命令:free命令用于显示当前系统中的内存信息。它可以显示当前系统中的内存信息,并可以使用参数来设置显示的模式。 示例:free -m 网络管理命令 1. ping命令:ping命令用于测试网络连接。它可以测试网络...
Linux 基本命令大全 本文档旨在总结 Linux 系统中常用的基本命令,涵盖用户管理、文件管理、目录管理、权限管理、磁盘管理、进程管理、网络管理等方面。 用户管理 * useradd 创建用户 * usermod 修改用户信息 * ...
本资源将对 Linux 命令大全进行详细的介绍和解释。 adduser adduser 命令用于添加新用户到 Linux 系统中。其基本语法为:`adduser [用户名]`。例如,添加一个名为 "user1" 的用户可以使用命令 `adduser user1`。在...
### 解析Linux中的Free命令 在Linux系统管理与性能监控中,`free`命令是非常重要的工具之一。通过这个命令,我们可以获取当前系统内存的使用情况,包括物理内存、虚拟内存(交换空间)以及缓存等信息。这对于理解...
Linux 基本命令大全 Linux 操作系统提供了许多基本命令来帮助用户管理和维护系统。这些命令可以分为多个类别,包括用户管理、文件管理、进程管理、网络管理等。下面我们将介绍一些常用的基本命令。 一、注销、关机...
系统管理相关命令包括 df、top、free、quota、at、lp、adduser、groupadd、kill、crontab 等,都是用于系统管理和维护的命令。这些命令可以帮助用户管理系统资源、计划任务、管理用户和组、管理进程等。 网络操作...
### Linux常用命令笔记 #### 一、Linux命令基础 Linux是一种强大的开源操作系统,适用于服务器、桌面和嵌入式系统等多种应用场景。了解基本的Linux命令对于有效地管理这些系统至关重要。 ##### 查看帮助文档 - *...
本篇将详细介绍Linux命令大全,涵盖常用和进阶的命令,帮助你更好地理解和运用Linux。 一、文件与目录操作 1. `ls`:列出当前目录下的文件和子目录。 2. `cd`:改变当前工作目录。 3. `mkdir`:创建新目录。 4. `...