最近,公司有几台java服务器经常出现can not allocate memory 的情况。导致SSH登录失败。
因此,有必要做点什么。
我们可以使用linux-ftools查看Linux 的cached里面有哪些内容(工具: https://code.google.com/p/linux-ftools/):
#!/bin/bash
tar xf linux-ftools.tar.gz -C ./
cd linux-ftools/ && ./configure && make && make install
安装完成后,在/usr/local/bin 下生成3个文件 linux-fadvise 、linux-fallocate 、linux-fincore
常用命令:
linux-fincore --help
例子:查看/tmp 目录下缓存了哪些文件命令:
linux-fincore --pages=false --summarize --only-cached /tmp/*
这样的话,如果经常出现can not allocate memory的情况,我们可以先配置个计划任务,使用linux-fincore定期获取某个目录(例如java程序每次都把文件缓存到/opt/xxx/ 这个目录下)的cached的情况并保存到文件。
这样的话,再次出现内存不够分配的时候,便于我们后期追查现场。
本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1922951,如需转载请自行联系原作者