银河麒麟v10系统卡顿多因内核缓存未释放,应执行sync && echo 3 > /proc/sys/vm/drop_caches安全清理pagecache、dentries和inodes,再用free -m验证available内存是否显著上升。

银河麒麟V10系统运行中出现卡顿、响应迟滞或可用内存持续偏低,往往并非进程异常占用,而是内核缓存(PageCache、dentries、inodes)长期未释放导致真实可用内存被“隐形锁定”,此时需针对性清理缓存进程而非终止业务进程。
用命令行安全释放内核缓存
这一步不杀任何进程,只回收可再生的内核缓存资源,适用于办公终端、政务系统等对稳定性要求高的场景。
按下Ctrl+Alt+T打开终端→输入su并回车→输入root密码获取管理员权限。
执行同步并清空三类缓存:sync && echo 3 > /proc/sys/vm/drop_caches。
【必须先执行sync】否则正在写入磁盘的数据可能丢失;echo 3会同时清PageCache、dentries和inodes,比echo 1或2更彻底,但不会影响已安装软件或服务状态。
验证是否生效:输入free -m,观察available列数值是否明显上升——若增加500MB以上,说明缓存已成功释放。
启用定时自动释放(推荐长期运行终端)
对连续运行超7天的政务办公机、国产化服务器,手动清理易遗漏,应部署轻量级自动释放机制。
方法一:使用专用freemem.sh工具(生产环境验证版)
下载或创建脚本:sudo nano /usr/local/bin/freemem.sh,填入以下内容:
#!/bin/bash
if [ $(cat /sys/kernel/mm/ksm/run 2>/dev/null) = "1" ]; then echo 0 > /sys/kernel/mm/ksm/run; fi
echo 3 > /proc/sys/vm/drop_caches
echo "Cache freed at $(date)" >> /var/log/freemem.log
赋予执行权限:sudo chmod +x /usr/local/bin/freemem.sh。
方法二:注册systemd timer(每2小时触发一次)
创建定时器服务:sudo nano /etc/systemd/system/freemem.timer,写入:
[Unit]
Description=Free memory cache every 2 hours
[Timer]
OnCalendar=*-*-* *:00,*:30:00
Persistent=true
[Install]
WantedBy=timers.target
创建对应服务文件:sudo nano /etc/systemd/system/freemem.service,填入:
[Unit]
Description=Run freemem.sh
[Service]
Type=oneshot
ExecStart=/usr/local/bin/freemem.sh
RemainAfterExit=yes
启用并启动:sudo systemctl daemon-reload && sudo systemctl enable --now freemem.timer。
避免误操作:哪些“缓存进程”不能动
Linux中没有叫“缓存进程”的独立进程,所谓缓存实际由内核子系统(如page cache manager、dentry cache)在后台无感维护,它们不显示在ps或top列表中。
若在top中看到kswapd0、kcompactd0、khugepaged等内核线程CPU占用升高,属正常内存管理行为,【切勿kill -9终止】,强行终止将导致系统立即假死或OOM崩溃。
用户空间中名为“cache”或“cached”的第三方进程(如某些国产浏览器插件、旧版金山毒霸组件)才属于真正可查可控的进程,可用ps aux | grep -i cache定位,再按需kill -15 进程号优雅退出。











