执行echo "1" > /proc/sys/vm/drop_caches触发Segmentation fault的问题求助
执行echo "1" > /proc/sys/vm/drop_caches触发Segmentation fault的问题求助
各位好,想请教一个挺奇怪的问题:
我之前写了个脚本,用来定期检查系统缓存占用,当可用内存不足时自动清理缓存。为了避免清理得太激进,脚本会先执行echo "1" > /proc/sys/vm/drop_caches,要是清理后内存还是不够,再尝试用level 2或3的清理命令。之前这套逻辑一直运行得好好的,但最近突然出问题了:
- 脚本里执行level 1的清理命令完全没效果
- 手动直接执行这个命令会直接断开我的SSH会话
- 用
sudo echo "1" > /proc/sys/vm/drop_caches执行的话,会触发Segmentation fault,缓存也根本清不掉
但诡异的是,执行level 2(echo "2" > /proc/sys/vm/drop_caches)或level 3的清理命令却完全正常,能顺利清掉缓存,这说明/proc/sys/vm/drop_caches这个文件并没有被锁定无法写入,偏偏只有level 1的操作会出问题。
我试过重启机器,重启后level 1的命令又能正常工作了,但过段时间又会复发。现在我已经把脚本改成只使用level 2了,但这个问题已经在多台机器上出现过——这些机器运行的是不同版本的Ubuntu(从20到24都有),所以我特别想搞清楚到底是什么原因导致的。
另外,我从内核日志里也看到了对应的Segmentation fault记录。
有没有大佬遇到过类似的情况,或者能给点排查方向的?
备注:内容来源于stack exchange,提问作者user2280032




