total: 系统总内存
used: 程序已使用内存
free: 空闲内存
shared: 已用共享内存
buff/cache: 缓冲区/缓存
available: 可用值
free -w 可以将buff和cache分开
used 程序已使用内存
used = total - free - buffers - cache
buffers
1 2 |
将内存往硬盘写的数据先写进缓冲区,等缓冲区攒到一定大小,再将缓冲区往硬盘写。 buffers优化的是往硬盘里写的过程 |
cache
1 2 |
把文件从硬盘读到内存,Linux会把他先放到cache空间里,下次在读直接到cache里读就行了。 也有可能读不到,不可能把所有数据读到缓存里。 cache优化的是硬盘王内存读的过程 |
如何释放内存空间
1 2 |
[root@lb01 ~]# cat /proc/sys/vm/drop_caches 1 |
sync 表示把buffers的磁盘空间往磁盘刷一点(最好多执行几次)
1.清除 pagecache
1 |
[root@lb01 ~]# echo 1 > /proc/sys/vm/drop_caches |
2.清除回收 slab 分配器中的对象(包括目录项缓存和 inode 缓存)
1 |
[root@lb01 ~]# echo 2 > /proc/sys/vm/drop_caches |
3.清除 pagecache 和 slab 分配器中的缓存对象
1 |
echo 3 > /proc/sys/vm/drop_caches |
注意:
1.有一些cache是不能被释放的,如果释放计算机的效率会大幅度的下降
2.不会将cache释放的一干二净
shared 共享内存
1 2 |
#例如 [root@lb01 ~]# ps aux | grep ssh |