我有一台比较旧的Linux计算机,内存为2GB,没有交换,并且运行良好,该系统使用所有未使用的内存进行缓存,效果很好。
但是,当我几乎要强调内存(例如,已分配的> 1950MB)时,它会缓慢地进行爬网。我怀疑这是因为没有剩余的磁盘缓冲区。我知道OOM杀手将很快生效,但通常不会到达目的地-它变得如此缓慢,以至于加载射击达到30-40,没有进程取得任何进展(因此没有分配更多的内存),并且我必须重新启动它。
当我尝试杀死一个进程以使机器响应时,例如通过转到控制台(通过Alt-F1,登录并执行“ killall badprocess”),它通常可以工作,除了我必须等待从用户名/密码到出现提示为止的约10分钟-始终在磁盘活动期间进行。
再说一次,没有交换,所以它没有交换-只是因为没有可用的缓冲区而rash动。
我将有100MB左右的空间专门用于磁盘缓冲区,这会更早地触发OOM杀手(毕竟,程序的内存更少),但是另一方面,它会使机器始终保持响应状态。
有没有办法做到这一点?我还没有找到执行此类操作的/ proc / kernel或/ sys / vm条目。