Debian如何优化系统性能与回收
小樊
34
2025-12-14 10:47:30
Debian性能优化与资源回收实操指南
一 磁盘与包管理清理
- 清理 APT 缓存与无用依赖:执行 sudo apt-get clean(清空缓存)、sudo apt-get autoclean(清理过期包)、sudo apt-get autoremove --purge(移除不再需要的包及其配置)。定期执行可显著释放 /var/cache/apt/archives 空间。
- 删除残留配置与孤立包:查看残留配置 dpkg --list | grep "rc ",确认后 sudo apt-get purge <包名>;查找孤立包 sudo deborphan,结合 xargs sudo apt-get -y remove --purge 批量清理。
- 清理系统日志:使用 journalctl --vacuum-time=7d(保留最近7天)或 –vacuum-size=50M(限制日志总大小);确保 logrotate 已启用并按需配置轮转周期与压缩。
- 清理临时文件与旧内核:清理 /tmp 与 /var/tmp(如 sudo find /tmp -mindepth 1 -mtime +1 -delete);删除不再使用的内核镜像与头文件,先查询 dpkg --list | grep linux-image,再 sudo apt-get purge linux-image-<版本> linux-headers-<版本>(务必保留当前运行内核)。
- 定位大文件与目录:用 ncdu / 或 sudo du -xh --max-depth=1 / | sort -hr | head 快速找出占用空间最大的路径,确认后按需归档或删除。
二 内存与 I O 优化
- 监控与定位:用 free -h、top/htop、vmstat 1、iostat -x 1 观察内存、CPU、I/O 瓶颈,结合应用日志定位异常进程与热点文件。
- 合理设置交换与回收倾向:适度调整 vm.swappiness(默认通常为 60,降低可减少对磁盘交换的依赖,提升交互性能;过高则增加 I/O 压力)。示例:echo ‘vm.swappiness=10’ | sudo tee -a /etc/sysctl.conf && sudo sysctl -p。
- 按需清理页面缓存(仅临时应急):执行 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches。注意:这会清空页缓存、目录项与 inode 缓存,可能导致短时性能下降,不建议作为常规操作。
- 文件系统挂载选项:对不频繁修改的分区添加 noatime,nodiratime 以减少元数据写入;I/O 调度器在 SSD 上优先 none/mq-deadline,机械盘可用 cfq(视内核与硬件而定)。
- 交换空间优化:若使用 SSD,可评估启用 zram(内核压缩交换)或合理配置 swapfile/swap分区 大小与位置,降低抖动与磨损。
三 内核与网络参数调优
- 文件描述符与连接:提升进程可打开文件数,如 ulimit -n 65535;在系统服务单元中设置 LimitNOFILE=65535。
- TCP 与内核网络栈:按需优化连接复用与队列,示例:
- net.core.somaxconn=65535(全连接队列)
- net.ipv4.ip_local_port_range=1024 65535(临时端口范围)
- net.ipv4.tcp_fin_timeout=30(加快 TIME_WAIT 回收)
- net.ipv4.tcp_slow_start_after_idle=0(避免长空闲后降速)
- net.ipv4.tcp_fastopen=3(启用 TFO)
- net.ipv4.tcp_syncookies=1(抵御 SYN Flood)
- net.core.netdev_max_backlog=65535(网卡接收队列)
修改 /etc/sysctl.conf 后执行 sudo sysctl -p 生效。
- 容器与虚拟化场景:如运行 Docker/K8s,结合 cgroups 为关键服务设置内存/CPU 限额,避免单容器耗尽主机资源。
四 LNMP 场景专项优化
- Nginx:
- worker_processes auto; worker_cpu_affinity auto;(按 CPU 核心自动调度)
- worker_rlimit_nofile 65535;(提升文件句柄上限)
- sendfile on; tcp_nodelay on;(减少数据拷贝与 Nagle 延迟)
- keepalive_timeout 65; keepalive_requests 1000;(复用连接)
- gzip on;(可选压缩)
- server_tokens off;(降低信息暴露)
- PHP-FPM(以 PHP 7.x/8.x FPM 为例):
- 启用 opcache:opcache.enable=1,并按内存与文件量调整 opcache.memory_consumption、opcache.max_accelerated_files 等;生产环境可启用 opcache.validate_timestamps=0 并配合部署流程刷新。
- 进程管理(动态/按需):合理设置 pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers,避免进程风暴与 OOM。
- MariaDB/MySQL:
- 将 innodb_buffer_pool_size 设为物理内存的约 50%–80%(数据库专用机可更高);
- 结合并发与内存调整 max_connections;
- 启用并定期分析 慢查询日志,优化索引与 SQL;
- 视版本与负载评估查询缓存(query cache)策略。
五 安全与维护建议
- 保持系统更新:sudo apt update && sudo apt full-upgrade,及时获取安全补丁与内核改进。
- 精简自启与无用服务:用 systemctl list-unit-files --type=service 检查,关闭不需要的服务,减少攻击面与常驻内存占用。
- 防火墙与访问控制:使用 ufw/iptables 仅开放 SSH/HTTP/HTTPS 等必要端口,限制来源网段。
- 备份与变更管控:重要清理与参数调整前先备份数据与配置;变更后逐步观察并保留回滚方案。
- 风险提示:涉及删除内核、调整内核参数、清理日志与临时文件、修改挂载选项等操作,请在测试环境验证并谨慎执行,避免数据丢失或业务中断。