`
pcpig
  • 浏览: 92781 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cached过高,导致load高的问题

阅读更多
    同事反映linux操作系统无端的大量内存被“cached”状态占用,导致JVM无法申请,CPU load持续上升的情况。

free -m
             total       used       free     shared    buffers     cached
Mem:          7859       7733        126          0        130       1386
-/+ buffers/cache:       6216       1643
Swap:        16383        812      15571


分析:
     linux自己调整cache,user基本上没办法干预cache是给文件的page cache,访问过的文件都在page cache里,原则上cache会被动态释放的,cache占内存过多可能是程序访问过大量的文件,导致文件都被cache起来。操作系统清除的原则应该是上次没访问的就清除,前提是内存不够了,否则永远不清除。除非是文件删除或者所在分区卸载等导致inode必须关闭的操作。
     cached高的时候往往伴随着swap高,swap高的话,处理速度自然就不高了。手动释放cache后,swap减少,短时间内处理速度自然提升。

解决办法:找到读写多的文件或过大的文件,尽量减少文件读写数,对大文件进行拆分


建议:
    经常切割log文件, 没有必要的log信息,不要随便写, 调试log开调试期间可以打开,调试完就关闭。另外log文件要精简,不要把空行,空白等无效信息无端的写进去占用空间。
不要试图在操作系统上存放大量小文件,这样从内存调用和文件系统管理上都是有害的
再碰到类似cached情况,其他办法都解决不了,可以拆卸一些分区试试看。
分享到:
评论

相关推荐

    PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法

    3. **路径配置问题**:系统环境变量配置不当导致无法正确加载所需的DLL。 #### 解决方案 针对上述错误,可以采取以下步骤逐一排查并解决问题: 1. **确认Python版本**: - 首先确保安装的是与当前Python环境相...

    Redis使用-缓存穿透,雪崩,击穿以及解决方案分析.docx

    2. 使用队列机制,例如使用 MessageQueue 将需要缓存的数据推送到队列中,然后由 worker 进程处理 cached data,避免了缓存击穿问题。 3. 使用双缓存机制,例如使用两个 Redis 实例,一个作为主缓存,一个作为副...

    Android_上拉刷新

    根据设备的屏幕密度加载相应的资源,避免加载过高分辨率的图片。其次,使用BitmapFactory.Options进行解码,限制Bitmap的大小: ```java BitmapFactory.Options options = new BitmapFactory.Options(); options....

    memcached的安装与配置

    3. **检查Gem版本:**有时可能是Gem版本不兼容导致的问题,可以尝试升级或降级Gem版本来解决问题。 以上就是关于Memcached的安装与配置过程,以及在配置Rails应用时可能遇到的一些常见问题及其解决方案。希望这些...

    Oracle数据库巡检报告

    - **2.2.4 数据库数据文件等所在目录使用情况**:使用`df -h`命令查看数据文件所在的磁盘分区使用情况,防止因磁盘空间不足而导致的问题。 ##### 2.3 数据库性能、资源、对象检查 - **2.3.1 负载情况(Load ...

    关于内存异常的一个猜想

    服务器的负载平均值(load average)很高,分别为63.31、55.12、43.39,这表示系统在处理大量进程,尤其是运行中的进程有21个,而僵尸进程有10个,这也可能是内存压力的一个来源。僵尸进程虽然不占用太多资源,但...

    Linux中top的含义

    这些信息对于了解每个进程的具体行为非常有用,尤其是当系统出现性能问题时,通过这些数据可以迅速定位到消耗资源最多的进程。 #### 六、使用技巧与命令选项 `top`命令还支持多种自定义视图和操作方式: - 使用`h`...

    sesvc.exe 阿萨德

    * Holds cached entrySet(). Note that AbstractMap fields are used * for keySet() and values(). */ transient Set,V>> entrySet; /** * The number of key-value mappings contained in this map. */ ...

Global site tag (gtag.js) - Google Analytics