过多的内存文件/dev/shm导致死机
我们的IPS是基于Linux系统的一款设备,最近总是频繁死机,死机之后即不能从终端登陆,也不能连接屏幕查看打印信息。万般无赖之下,我只能在没有死机的情况下使用top命令,然后一直盯着终端,看看在死机之前有没有什么异常现象。通过半天的观察,我终于发现了一些异常之处,当系统变得越来越缓慢的时候,系统内存处于比较低的状态,而另一个叫cached的参数却很高,后来我了解到,cached所指的空间一般是为文件操作所分配的空间,也就是文件缓存,例如当文件打开之后,向文件中写入数据,这些数据都会先保存在内存中,直到这些数据被写入磁盘,才会释放这一部分内存空间,而cached所指的值即为这部分空间的大小,也就是说这部分空间是被占用的,不能被使用的。下图中标记了free和cached的空间大小:
在网上搜了一下,发现这一部分空间也不是完全不能使用,可以通过一个方法将缓冲区中的数据写到磁盘文件中,从而释放缓冲区所占用的空间,具体介绍如下:
复制代码 代码如下:
echo 3 > /proc/sys/vm/drop_caches
说明:
1>. /proc是一个虚拟文件系统,我们可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以