Ubuntu Spool内存占用高的解决方法
Spool目录(通常位于/var/spool
)存储了打印队列、邮件、系统任务等临时文件,长期积累会导致磁盘空间占用过高。需针对不同子目录进行清理:
/var/spool/cups
,可通过以下命令清理:sudo systemctl stop cups # 停止CUPS服务
sudo rm -rf /var/spool/cups/* # 删除所有打印作业文件
sudo systemctl start cups # 重启CUPS服务
/var/spool/mail
或/var/spool/postfix
,可使用:sudo rm -rf /var/spool/mail/* # 清理用户邮件队列
sudo rm -rf /var/spool/postfix/* # 清理Postfix邮件队列
/var/spool/clientmqueue
存储了邮件传输失败的任务,可通过find
命令批量删除旧文件(如7天以上):sudo find /var/spool/clientmqueue -type f -mtime +7 -exec rm {} \;
vm.swappiness
值:vm.swappiness
控制交换分区的使用频率,默认值为60(较高),建议调整为10-30(减少内存交换到磁盘):sudo sysctl -w vm.swappiness=10 # 临时生效
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf # 永久生效
sudo sysctl -p # 应用配置
net.ipv4.tcp_fin_timeout
(默认60秒)可释放闲置连接占用的内存:sudo sysctl -w net.ipv4.tcp_fin_timeout=30 # 临时生效
echo "net.ipv4.tcp_fin_timeout=30" | sudo tee -a /etc/sysctl.conf # 永久生效
部分默认启用的服务(如CUPS打印服务、邮件服务)可能占用内存,若无需使用可禁用:
sudo systemctl disable cups # 禁用CUPS打印服务
sudo systemctl stop cups # 停止服务
# 对于Postfix邮件服务
sudo systemctl disable postfix
sudo systemctl stop postfix
借助图形化或命令行工具批量清理缓存和临时文件:
sudo apt update && sudo apt install bleachbit
sudo bleachbit
通过cron
定时执行清理脚本,避免文件长期积累:
clean_spool.sh
:nano ~/clean_spool.sh
添加以下内容:#!/bin/bash
sudo rm -rf /var/spool/cups/*
sudo rm -rf /var/spool/mail/*
sudo rm -rf /var/spool/postfix/*
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
chmod +x ~/clean_spool.sh
crontab -e
添加以下行(每天凌晨2点执行):0 2 * * * /home/your_username/clean_spool.sh