温馨提示×

ubuntu缓存故障排查方法有哪些

小樊
41
2026-01-02 18:41:35
栏目: 智能运维

Ubuntu 缓存故障排查方法

一 内存缓存与 Page Cache 排查

  • 观察内存与缓存概况:使用free -h查看内存,关注available(可用内存)与buff/cache;配合top/htop观察是否有进程异常占用内存或频繁 I/O。说明:在 Linux 中,available = free + buffers + cached,高缓存本身并不等于内存不足。必要时可触发回收以验证是否为缓存导致的卡顿。回收方式(仅在需要时执行):先执行sync,再写入**/proc/sys/vm/drop_caches**:仅清页缓存用1,清目录项与 inode 用2,全部清用3;因重定向权限问题,推荐用sudo sh -c 'sync && echo 3 > /proc/sys/vm/drop_caches’echo 3 | sudo tee /proc/sys/vm/drop_caches。注意:主动清缓存会引发短时IO 升高,且效果是临时的,很快又会被内核重新填充。若 VFS 缓存回收过慢,可适度提高vm.vfs_cache_pressure(默认一般为100,取值范围0–200,数值越大回收越积极)。

二 APT 与软件源缓存排查

  • 清理本地缓存:依次执行sudo apt cleansudo apt autocleansudo apt autoremove,释放**/var/cache/apt/archives**与无用依赖占用的空间。
  • 修复索引与锁文件:若更新/安装卡在“Waiting for headers”或报锁冲突,先清理索引与锁文件:sudo rm -rf /var/lib/apt/lists/ /var/lib/apt/lists/partial/ /var/cache/apt/archives/partial**,再sudo apt update;必要时检查并更换为可达的软件源(如国内镜像),再更新索引。

三 磁盘与日志缓存占用排查

  • 快速定位空间紧张点:用df -h查看各分区使用率,针对高占用挂载点继续排查。
  • 清理临时与日志:查看并清理**/tmp**(如du -sh /tmp/* | sort -h),压缩或轮转**/var/log**(如du -sh /var/log/* | sort -h),避免日志无限增长“吃”满磁盘。
  • 查找被删除但仍被占用的文件:执行lsof | grep deleted,定位仍被进程占用的已删文件句柄,必要时重启相关进程释放空间。
  • 容器与数据库:如运行 Docker,用docker system df查看镜像/容器/卷占用,清理无用镜像与卷;数据库可按需优化或收缩数据文件(如VACUUM、导出导入、压缩表空间等)。
  • 文件系统一致性:若怀疑异常掉电或文件系统错误,先umount目标分区,再执行fsck /dev/sdXN检查与修复(生产环境谨慎操作,建议先备份)。

四 桌面与索引缓存导致的卡顿排查

  • 文件索引器导致卡顿:GNOME 的Tracker索引可能在大量文件变更后造成高占用与卡顿,可执行tracker reset -r(硬重置)或tracker reset -e(软重置)后重启会话/系统观察效果。

五 排查流程与注意事项

  • 建议流程:先判定是内存侧(free/htop、必要时 drop_caches 验证)→ 再查APT/软件源(索引、锁、镜像)→ 然后查磁盘侧(df、du、日志、临时、容器/数据库、已删文件句柄)→ 最后看桌面索引(Tracker)。
  • 注意事项:主动清理Page Cache仅用于定位与应急,不要作为长期手段;清缓存会带来IO 抖动;生产环境变更(如fsck、清理日志/数据库)务必先备份并选择维护窗口操作。

0