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
:尽可能不使用Swapswappiness=10
:适度使用Swapswappiness=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
:最简单,适合SSDdeadline
:传统机械硬盘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
本文来自投稿,不代表本站立场,如若转载,请注明出处: