在过去的几个月里,我的 Linux 系统遇到了一个非常恼人的问题:它在 Firefox 音频播放、鼠标移动等方面卡顿,每隔几秒就会出现亚秒级(但仍然很明显)的卡顿。当内存缓存填满时,或者当我运行高度磁盘/内存密集型程序(例如备份软件restic)时,问题会恶化。然而,当缓存未满时(例如,在非常轻的负载下),一切都运行得非常顺利。
查看perf top输出,我发现list_lru_count_one在这些滞后期间有很高的开销(~20%)。htop还显示kswapd0使用了 50-90% 的 CPU(尽管感觉影响远大于此)。在极度滞后期间,htopCPU 仪表通常由内核 CPU 使用率决定。
我发现的唯一解决方法是强制内核保留可用内存 ( sysctl -w vm.min_free_kbytes=1024000) 或通过echo 3 > /proc/sys/vm/drop_caches. 当然,两者都不是理想的,也都不能完全解决口吃问题;它只会使它不那么频繁。
有没有人对为什么会发生这种情况有任何想法?
-ckCon Kolivas的补丁集(没有帮助)编辑:为清楚起见,这里的图片htop和perf这样的滞后穗期间。请注意高list_lru_count_oneCPU 负载和kswapd0+ 高内核 …