Mic*_*sey 14 linux memory free-command
在linux系统上,使用"free"时,以下是值:
total used free shared buff/cache available
Mem: 26755612 873224 389320 286944 25493068 25311948
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
总计,使用和免费值不相加.我期待总数=使用+免费.
问题: 我在这里错过了什么?
Am_*_*ful 13
对于主存储器,实际的存储器大小可以计算为used+free+buffers+cacheOR,used+free+buffers/cache因为buffers/cache = buffer+cache.
free高亮的手册页used为Used memory (calculated as total - free - buffers - cache)
正如免费手册所说: -
总 安装内存总量(/ proc/meminfo中的MemTotal和SwapTotal)
used used memory(计算为total - free - buffers - cache)
免费 未使用的内存(/ proc/meminfo中的MemFree和SwapFree)
共享内存(主要)由tmpfs使用(Shmem在/ proc/meminfo中,在内核2.6.32上,如果不可用则显示为零)
buffers 内核缓冲区使用的内存(/ proc/meminfo中的缓冲区)
缓存 页面缓存和slab使用的内存(/ proc/meminfo中的Cached和Slab)
buff/cache 缓冲区和缓存的总和
可用于 估计可用于启动新应用程序的内存量,无需交换.与缓存或空闲字段提供的数据不同,此字段考虑了页面缓存,并且由于正在使用的项目,并非所有可回收的内存块都将被回收(MemAvailable在/ proc/meminfo中,在内核3.14上可用,模拟在内核2.6.27+,否则与免费相同)
在你的情况下,
873224(已使用)+ 389320(免费)+ 25493068(buff/cache)= 26755612(总计)
小智 8
Linux喜欢缓存它打开的每个文件.每次打开一个文件进行读取时,Linux都会对它进行缓存,但是如果它需要内存以获得更重要的内容,它将丢弃这些缓存 - 比如当系统上的进程想要分配更多内存时.内存中的这些缓存只是在一遍又一遍地使用相同文件时使Linux更快.它不是每次想要读取文件时实际进入磁盘,而是从内存中获取内存,并且内存比磁盘快得多.这就是为什么你的系统显示25493068用于buff /缓存但也显示25311948可用.如果系统需要,可以释放大部分缓存数据.