在使用grep从很多文件中搜索特定数据串的时候,发现内存使用迅速提高,主要是cache的使用占用了相当多的内存。如果使用grep查找使用“*”通配符时,忽视了文件的数量和文件大小,导致内存cache突增。
- 使用free名称查看当前服务器内存使用情况:
#free
total used free shared buff/cache available
Mem: 16621896 8967952 7653944 0 212352 8377276
Swap: 10241428 0 10241428
- 执行sync命令同步数据,将未写的系统缓冲区写到磁盘中。包含已修改的 inode、已延迟的块 I/O 和读写映射文件。
- 清理cache
#echo 3 > /proc/sys/vm/drop_caches
#free
total used free shared buff/cache available
Mem: 16621896 579592 10642304 0 268 308708
Swap: 10241428 0 10241428
对比执行清理cache前数值发现cache被清理掉了。