1.top中的buffers和cached
cached缓存了对文件的读写,buffers缓存了inode,dentry等文件系统metadata。显然,metadata大小远远小于文件内存,所以buffers一般也远小于cached。cached的部分叫page cache,buffers的部分叫buffer cache
2.控制cache
Linux对cache的使用没有规定上限,因为,物理内存不是拿来看的,而是拿来用的。只要当需要的时候,这部分内存还可以还回去就行!
3.使用free查看一下当前内存使用情况:
# free
total used free shared buffers cached
Mem: 16621896 8967952 7653944 0 212352 8377276
-/+ buffers/cache: 378324 16243572
Swap: 10241428 0 10241428
4.执行sync同步数据
# sync
该命令将未写的系统缓冲区写到磁盘中。包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。
5.清理cache
向/proc/sys/vm/drop_caches文件中写入数值可以使内核释放page cache,dentries和inodes缓存所占的内存。
只释放pagecache:
echo 1 > /proc/sys/vm/drop_caches
只释放dentries和inodes缓存:
echo 2 > /proc/sys/vm/drop_caches
释放pagecache、dentries和inodes缓存:
echo 3 > /proc/sys/vm/drop_caches
这个操作不是破坏性操作,脏的对象(比如脏页)不会被释放,因此要首先运行sync命令。
cached缓存了对文件的读写,buffers缓存了inode,dentry等文件系统metadata。显然,metadata大小远远小于文件内存,所以buffers一般也远小于cached。cached的部分叫page cache,buffers的部分叫buffer cache
2.控制cache
Linux对cache的使用没有规定上限,因为,物理内存不是拿来看的,而是拿来用的。只要当需要的时候,这部分内存还可以还回去就行!
3.使用free查看一下当前内存使用情况:
# free
total used free shared buffers cached
Mem: 16621896 8967952 7653944 0 212352 8377276
-/+ buffers/cache: 378324 16243572
Swap: 10241428 0 10241428
4.执行sync同步数据
# sync
该命令将未写的系统缓冲区写到磁盘中。包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。
5.清理cache
向/proc/sys/vm/drop_caches文件中写入数值可以使内核释放page cache,dentries和inodes缓存所占的内存。
只释放pagecache:
echo 1 > /proc/sys/vm/drop_caches
只释放dentries和inodes缓存:
echo 2 > /proc/sys/vm/drop_caches
释放pagecache、dentries和inodes缓存:
echo 3 > /proc/sys/vm/drop_caches
这个操作不是破坏性操作,脏的对象(比如脏页)不会被释放,因此要首先运行sync命令。