我有一台eeePC 900a:它有一个8GB的闪存作为磁盘,只有1GB的RAM。安装在其上的Linux发行版是ArchLinux。
当系统内存不足时,它将变得极无响应:执行切换到TTY1甚至移动鼠标指针之类的操作需要花费几秒钟/分钟。有时,看起来好像系统冻结了:三年前,我不理会它,到目前为止什么都没有改变。
我宁愿避免在此eeePC上创建交换分区/文件,因为磁盘已经很小,而且因为交换空间上的大量写入操作会大大缩短闪存卡的寿命。此外,我认为交换文件/分区只会解决问题,而不是绝对解决问题。
内核内存不足时,不是应该杀死一些随机应用程序吗?为什么这样做会失败(或花费很多时间)?
几个月/几年前,我已经尝试进一步研究,但是找不到任何实际可行的方法...
while(true){ if( $FREE_MEMORY<10MB ){ kill -9 $RANDOM_PID; } }
。这肯定会解决我的问题。但是,等等,内核不是应该这样做吗(并且比我的脚本要好得多)?它为什么不做自己的工作?