Skip to content

Linux 系统优化指南

对 Linux 服务器进行系统优化可以显著提升其性能、稳定性和安全性,尤其对于作为 SSH 服务器或运行关键服务的机器而言。本指南将介绍一些常见的优化策略。


1. 更新系统和软件包

保持系统和所有软件包最新是优化的第一步,这不仅能获得性能改进,还能修复安全漏洞。

  • Debian/Ubuntu
    bash
    sudo apt update
    sudo apt upgrade -y
    sudo apt autoremove -y
  • CentOS/RHEL
    bash
    sudo yum update -y
    sudo yum autoremove -y

2. 管理启动服务

禁用不必要的启动服务可以减少系统资源占用,加快启动速度。

  • 查看所有服务
    bash
    systemctl list-unit-files --type=service --state=enabled
  • 禁用服务(以 apache2 为例):
    bash
    sudo systemctl disable apache2
    sudo systemctl stop apache2
    注意:在禁用服务前,请务必确认该服务不是系统运行所必需的。

3. 优化文件系统

选择合适的文件系统和挂载选项可以提升磁盘 I/O 性能。

  • 使用 noatime 挂载选项noatime 选项可以阻止系统在每次读取文件时更新文件的访问时间,减少磁盘写入操作。 编辑 /etc/fstab 文件,在相应分区的挂载选项中添加 noatime
    # 示例:
    UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults,noatime 0 1
    修改后需要重新挂载分区或重启系统生效:sudo mount -o remount /

4. 调整 Swap 空间 (交换空间)

Swap 空间是当物理内存不足时,系统用来临时存储数据的硬盘空间。不当的 Swap 配置可能导致性能下降。

  • 查看当前 swappinessswappiness 值决定了系统将数据从物理内存交换到 Swap 空间的倾向,值越高越倾向于使用 Swap。
    bash
    cat /proc/sys/vm/swappiness
  • 调整 swappiness: 对于服务器,通常建议将 swappiness 设置为较低的值(如 1020),以尽量使用物理内存。
    bash
    sudo sysctl vm.swappiness=10
    要永久生效,编辑 /etc/sysctl.conf 文件,添加或修改 vm.swappiness = 10

5. 限制资源使用 (ulimit)

ulimit 命令可以限制用户进程的资源使用,防止单个进程耗尽系统资源。

  • 查看当前限制ulimit -a
  • 修改限制:编辑 /etc/security/limits.conf 文件。
    # 示例:允许用户 'youruser' 打开更多文件
    youruser soft nofile 65535
    youruser hard nofile 65535
    这通常需要用户重新登录才能生效。

6. 定期清理系统

删除不再需要的软件包、日志文件和临时文件可以释放磁盘空间并减少系统负担。

  • 清理软件包缓存
    • Debian/Ubuntu: sudo apt clean
    • CentOS/RHEL: sudo yum clean all
  • 清理旧内核
    • Debian/Ubuntu: sudo apt autoremove --purge
  • 清理日志文件: 通常日志文件在 /var/log/ 目录下,可以使用 logrotate 进行管理,或手动清理旧日志。

7. 监控系统性能

持续监控系统性能是发现瓶颈和验证优化效果的关键。

  • 常用工具
    • top / htop:实时查看进程和资源使用。
    • free -h:查看内存使用情况。
    • df -h:查看磁盘空间使用情况。
    • iostat / iotop:监控磁盘 I/O。
    • netstat / ss:查看网络连接和统计。

通过以上这些优化措施,你可以让你的 Linux 服务器运行得更高效、更稳定。