解决linux buffer/cache 消耗内存过高引发的问题

工作中接到DBA报障某台服务器 跑一些大的数据,服务器就无法远程连接,报错,抓过日志叫DELL工程师检测也没问题,系统也重装过,

现在些一些较大的数据就会报如 图错误,由于服务器远在异地城市IDC机房,ssh也无法登录,于是使用iDRAC 远程管理卡连接到该台机器,通过控制台连接到服务器,看到如下图报错:

IDRC报错

1、内存占用量:dd过程内核会用大量内存作为磁盘数据的缓存,由于写入8.5T;
2、从设备来看,内存主要消耗在buff中:
3、dd if=/dev/zero of=/data$i/test bs=1M count=9000000 conv=fdatasync  &
参数fdatasync作用 :1)保证数据刷新到磁盘、2)没有把文件元数据刷到磁盘中;
由于特性2),造成buff占用量激增;

具体可参考:http://www.2cto.com/os/201205/131568.html

4、通过echo 3 > /proc/sys/vm/drop_caches,即可清空buff/cache,目前此设备内存已恢复正常;


sar -r -f /var/log/sa/sa17

内 存使用量激增。通常情况下,是由于业务程序导致的。

猜你喜欢

转载自www.cnblogs.com/liluxiang/p/9335312.html