如果我正确理解,在以下由free产生的输出中,3535m是应用程序可用的实际可用内存,仅使用413m,这是正确的吗?需要对Mem和-/ +缓冲区/缓存行之间的区别进行一些说明。
自由-m 已使用的可用共享缓冲区总数 内存:3949 3854 95 0 9 3431 -/ +缓冲区/缓存:413 3535 掉期:2047 1322 725
如果我正确理解,在以下由free产生的输出中,3535m是应用程序可用的实际可用内存,仅使用413m,这是正确的吗?需要对Mem和-/ +缓冲区/缓存行之间的区别进行一些说明。
自由-m 已使用的可用共享缓冲区总数 内存:3949 3854 95 0 9 3431 -/ +缓冲区/缓存:413 3535 掉期:2047 1322 725
Answers:
该Mem: total
数字是应用程序可以使用的RAM总量。这是系统上安装的总RAM减去:
该总数包括:
free
:当前用于任何目的的内存;shared
:一个不再存在的概念。留在输出中是为了向后兼容(有一些脚本可解析的输出free
)。(在当前系统上,您通常会看到非零值,因为shared
已将其重新设置为显示通过共享内存机制显式共享的内存。在较旧的系统上,它包括多个进程映射的文件以及在之后共享的可共享内存fork()
。)buffers
:由文件支持的内存,并且可以根据需要将其写出到磁盘;cache
:由文件支持的内存,可以随时回收(与之不同的buffers
是,缓冲区必须在重用之前保存到磁盘上,而高速缓存包含可以从磁盘上重新加载的内容);used -buffers/cache
:应用程序使用的内存(未分页交换)。紧要关头,系统可以在没有缓冲区和缓存的情况下运行,为应用程序保留RAM,并在不进行任何缓存的情况下系统地执行磁盘读写。这些-/+ buffers/cache
数字指示应用程序直接使用的RAM量(used
列)和应用程序未使用的RAM量(free
列)。
尽管变化很大,但正常运行的系统通常将其RAM的一半用于应用程序,另一半用于缓冲区和高速缓存。除非您正在运行专用的文件服务器,否则系统的RAM会超出当前所需要的内存。如果free - buffers/cache
数字较低,则表明系统没有足够的RAM(与普遍的看法相反,拥有大量的内存用于缓冲区和缓存对于系统性能很重要,而尝试为应用程序保留更多的内存将使99.99%的系统变慢)。
该swap
行很简单,它显示了正在使用的交换量(按应用程序或用于tmpfs
存储),没有的交换量。