温馨提示×

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 -htop/htopvmstat 1iostat -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 为例):
    • 启用 opcacheopcache.enable=1,并按内存与文件量调整 opcache.memory_consumptionopcache.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 等必要端口,限制来源网段。
  • 备份与变更管控:重要清理与参数调整前先备份数据与配置;变更后逐步观察并保留回滚方案。
  • 风险提示:涉及删除内核、调整内核参数、清理日志与临时文件、修改挂载选项等操作,请在测试环境验证并谨慎执行,避免数据丢失或业务中断。

0