我在Debian上运行feh图像查看器,经过几个小时的正常CPU使用(3%aprox。)后,xorg突然开始使用更多CPU(80%aprox。),一切都运行得非常慢。我没有运行其他任何东西,所以bug应该是feh或xserver ...
我正在使用命令" feh -z -q -D20 -R 1" (-z表示随机图像,-q表示安静,-D20表示每隔20秒更改一次图像,-R 1表示每秒刷新一次目录,因为我擦除并经常插入图片)
当我使用命令" free -m"在高CPU使用率和运行之前,我得到了 总可用的免费共享缓存/缓存 记忆:923 117 474 19 331 735 交换:99 0 99
几个小时之后,我得到同样的回复#34; mem"但是" swap"的使用量是99。
答案 0 :(得分:0)
您的内存使用率上升(交换已满)的事实直接表明系统中某些程序的内存泄漏。考虑到feh
可能不是为这种用例设计的,我敢打赌这是内存不足的原因。
“一切运行缓慢”是由内核内存不足引起的,它正在尽最大努力保持系统运行。如果您坚持使用feh
,那么您的选择就是
feh
中的内存泄漏错误进行分类并为其创建修复程序。会定期杀死feh
并重新运行。基本上,您可以做到(在bash
中)
while true; do timeout 120m feh -z -q -D20 -R 1; sleep 2s; done
,它将每120分钟杀死一次,并在2秒的延迟后重新启动(如果需要,您可以杀死while
循环)。另一种选择是使用ulimit
来设置您想为feh
所允许的最大内存量,并且该过程可能会在使用过多内存时立即终止。
答案 1 :(得分:0)
我解决了这个问题,但我也不知道为什么。
您可以尝试运行以下代码来终止该过程:
data[0].id