buff/cache 占用内存过高

free -h: 查看内存使用信息

  • 原因
    • Linux操作系统频繁存取文件会导致内存被用光,即使程序结束后也不会被正常释放,这就导致buff/cache占用过高
    • buffers:用于存放要输出到disk(块存储)的数据
    • cached:存放从disk上读取的数据
    • buff/cache是为了提高IO性能并由 OS 管理
  • 解决方法

    • Linux进行文件读写并不会自动回收,因为 drop_caches 的默认参数设置的就是不释放的
      • 0:不释放,系统默认值
      • 1:释放页缓存
      • 2:释放dentries和inodes
      • 3:释放所有缓存
        1. #!/bin/bash
        2. Mem=$(free -m | awk 'NR==2' | awk '{print $4}')
        3. if [ $Mem -gt 1024 ];
        4. then
        5. echo "Service memory capacity is normal!" > /dev/null
        6. else
        7. sync
        8. echo "1" > /proc/sys/vm/drop_caches
        9. echo "2" > /proc/sys/vm/drop_caches
        10. echo "3" > /proc/sys/vm/drop_caches
        11. sync
        12. fi

        磁盘空间不足

        df -h:查看磁盘信息
        image.png
  • 最简单的办法就是找到大且无用的文件并删除

    • du -h —max-depth=1:寻找当前目录下的占用空间大小