Linux服务器性能优化终极指南:20+实用调优技巧提升速度与安全

本文阅读 4 分钟
首页 技术分享 正文

Linux 服务器性能优化指南

1. 基础系统优化

1.1 关闭不必要的服务

后台运行的服务会消耗系统资源,建议检查并禁用非必要的服务:

# 查看当前运行的服务
systemctl list-units --type=service --state=running

# 禁用并停止指定服务
systemctl disable --now <service-name>

常见可关闭的服务

  • cups:打印服务(非打印服务器不需要)
  • bluetooth:蓝牙服务(VPS通常不需要)
  • avahi-daemon:零配置网络服务
  • rpcbind:远程过程调用服务(非NFS服务器不需要)

注意事项

  • 禁用关键服务可能导致系统功能异常
  • 建议先通过systemctl status <service>了解服务用途

1.2 更新系统与软件包

保持系统最新是安全性和性能的基础:

# Debian/Ubuntu 系统
apt update && apt upgrade -y
apt autoremove -y  # 清理无用包

# CentOS/RHEL 系统
yum update -y
yum autoremove -y

# 可选:设置自动更新
apt install unattended-upgrades -y  # Debian/Ubuntu

1.3 启用BBR拥塞控制算法

BBR可以显著提高网络吞吐量,特别适合高延迟网络:

# 启用BBR
echo "net.core.default_qdisc=fq" | tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.conf

# 应用配置
sysctl -p

# 验证是否生效
sysctl net.ipv4.tcp_congestion_control
# 应该返回"bbr"

效果说明

  • 提高网络传输速度
  • 减少网络延迟
  • 特别适合国际线路VPS

2. CPU与进程优化

2.1 限制CPU占用

使用cpulimit控制单个进程的CPU使用率:

# 安装cpulimit
apt install cpulimit -y  # Debian/Ubuntu
yum install epel-release -y && yum install cpulimit -y  # CentOS

# 限制进程CPU使用率
cpulimit -e nginx -l 50  # 限制nginx进程最多使用50%CPU

使用场景

  • 防止单个进程占用全部CPU资源
  • 限制挖矿病毒等异常进程

2.2 限制进程数量

防止用户创建过多进程导致系统崩溃:

# 编辑limits.conf文件
vim /etc/security/limits.conf

# 添加以下内容(示例限制用户最多200个进程)
username hard nproc 200

参数说明

  • hard:硬性限制,无法突破
  • nproc:最大进程数
  • 也可以设置nofile限制文件打开数

3. 内存优化

3.1 Swap空间优化

完全禁用Swap(内存充足时建议)

swapoff -a
sed -i '/swap/d' /etc/fstab

优化Swap使用(内存较小时建议)

echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

参数说明

  • swappiness=0:尽可能不使用Swap
  • swappiness=10:适度使用Swap
  • swappiness=60:默认值
  • swappiness=100:积极使用Swap

3.2 定期清理缓存

# 手动清理
sync; echo 3 > /proc/sys/vm/drop_caches

# 设置定时任务(每天凌晨4点执行)
echo "0 4 * * * root sync; echo 3 > /proc/sys/vm/drop_caches" >> /etc/crontab

缓存类型

  • echo 1:清理页缓存
  • echo 2:清理inode和目录项缓存
  • echo 3:清理所有缓存

4. 磁盘与存储优化

4.1 SSD优化(fstrim)

# 启用定期TRIM
systemctl enable fstrim.timer
systemctl start fstrim.timer

# 手动执行TRIM
fstrim -av

作用

  • 保持SSD写入性能
  • 延长SSD使用寿命

4.2 I/O调度器优化

# 查看当前调度器
cat /sys/block/sda/queue/scheduler

# 修改调度器
echo "mq-deadline" > /sys/block/sda/queue/scheduler

# 永久生效(添加到/etc/rc.local)
echo 'echo "mq-deadline" > /sys/block/sda/queue/scheduler' >> /etc/rc.local

调度器选择

  • noop:最简单,适合SSD
  • deadline:传统机械硬盘
  • mq-deadline:多队列,现代通用选择
  • bfq:桌面系统适用

4.3 日志清理

# 限制journal日志大小
journalctl --vacuum-size=100M

# 设置日志大小限制
vim /etc/systemd/journald.conf
# 修改SystemMaxUse=100M

5. 网络优化

5.1 TCP参数优化

# 编辑sysctl.conf
vim /etc/sysctl.conf

# 添加以下内容
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 87380 16777216
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_slow_start_after_idle=0

# 应用配置
sysctl -p

优化效果

  • 增大TCP窗口大小
  • 提高高延迟网络吞吐量
  • 减少空闲后重新慢启动

5.2 禁用IPv6(可选)

# 禁用IPv6
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p

# 同时禁用grub中的IPv6(需重启生效)
vim /etc/default/grub
# 在GRUB_CMDLINE_LINUX添加ipv6.disable=1
update-grub

注意事项

  • 确保业务不需要IPv6
  • 某些CDN服务可能需要IPv6

6. 安全加固建议

6.1 修改SSH端口

vim /etc/ssh/sshd_config
# 修改Port为非常用端口
Port 22222
systemctl restart sshd

6.2 启用防火墙

# UFW防火墙(Debian/Ubuntu)
apt install ufw
ufw allow 22222/tcp
ufw enable

# Firewalld(CentOS)
systemctl start firewalld
firewall-cmd --permanent --add-port=22222/tcp
firewall-cmd --reload
本文来自投稿,不代表本站立场,如若转载,请注明出处:
-- 展开阅读全文 --
谷歌Android闭源真相:2025年开发者必知的5个关键事实
« 上一篇 03-27
OpenAI复制吉卜力风格图像:大模型是否正在吞噬一切产品? | 2025年AI趋势分析
下一篇 » 03-28