检查哪些服务在后台运行,并禁用不必要的服务:
systemctl list-units --type=service --state=running
systemctl disable --now <service-name>
常见可以关闭的服务:cups, bluetooth, avahi-daemon, rpcbind 等。
以下是对这几个 Linux 服务的解释以及关闭它们可能产生的影响:
cups (Common Unix Printing System) 功能: CUPS 是一个基于标准的开放源码打印系统,用于管理打印任务。它允许您的计算机连接到打印机,并处理打印作业的排队、过滤和调度等操作。 关闭影响: 您将无法进行本地打印。任何尝试打印的操作都会失败。 如果您通过网络共享了您的打印机,其他计算机也无法通过您的计算机进行打印。 某些应用程序可能在尝试打印时出现错误或崩溃。
bluetooth 功能: bluetooth 服务负责管理计算机的蓝牙功能。它允许您的计算机与其他蓝牙设备(如无线鼠标、键盘、耳机、手机等)进行连接和通信。 关闭影响: 您将无法使用任何蓝牙设备。例如,您的蓝牙鼠标和键盘将无法工作,您也无法连接蓝牙耳机或传输文件到手机等设备。 系统设置中与蓝牙相关的选项将不可用或无法操作。
avahi-daemon 功能: avahi-daemon 实现了 mDNS (Multicast DNS) 和 DNS-SD (DNS-based Service Discovery) 协议。这些协议用于在本地网络中自动发现服务和设备,而无需配置 DNS 服务器。例如,它可以让您在局域网中轻松找到共享的文件服务器、打印机或其他支持这些协议的设备。 关闭影响: 本地网络服务发现可能会失效。 您可能无法在文件管理器或其他应用程序中自动发现局域网中的共享资源(例如,Samba 共享、AirPrint 打印机等)。 某些依赖 mDNS/DNS-SD 的应用程序可能无法正常工作或需要手动配置。 对于大多数不依赖本地网络服务发现的桌面用户来说,关闭它可能没有明显的直接影响,但可能会影响某些网络功能。
rpcbind 功能: rpcbind 服务(有时也称为端口映射器)用于管理 RPC (Remote Procedure Call) 服务的端口。当一个 RPC 服务启动时,它会向 rpcbind 注册它所使用的端口号和程序号。当一个客户端需要调用某个 RPC 服务时,它会先连接到 rpcbind 查询该服务监听的端口号,然后再连接到实际的服务端口。许多网络服务和系统功能都依赖 RPC。 关闭影响: 可能会导致许多依赖 RPC 的服务无法正常工作。 这可能包括 NFS (Network File System) 文件共享、NIS (Network Information Service)、某些管理工具以及其他分布式应用程序。 关闭 rpcbind 可能会导致系统出现严重的功能故障,具体取决于您的系统配置和正在运行的服务。通常不建议关闭 rpcbind,除非您非常清楚您的系统不依赖任何 RPC 服务。
保持系统最新,减少安全漏洞并提升性能:
apt update && apt upgrade -y # Debian/Ubuntu
yum update -y # CentOS
BBR(Bottleneck Bandwidth and Round-trip propagation time)可以优化 TCP 传输,提高网络吞吐量:
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,说明启用成功。
安装 cpulimit 限制单个进程的 CPU 占用:
apt install cpulimit -y # Debian/Ubuntu
yum install epel-release -y && yum install cpulimit -y # CentOS
cpulimit -e process_name -l 50 # 限制该进程最多使用50%的CPU
编辑 /etc/security/limits.conf
,为指定用户添加限制:
username hard nproc 200
这样用户 username 最多只能运行 200 个进程。
Swap 在 VPS 上可能会影响性能,特别是 SSD 方案:
swapoff -a # 关闭 Swap
sed -i '/swap/d' /etc/fstab # 防止重启后恢复
如果 VPS 内存较小(512MB~1GB),建议保留 Swap 但优化:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
这样系统更倾向于使用物理内存,而非频繁读写 Swap。
定期释放无用的缓存,减少内存占用:
sync; echo 3 > /proc/sys/vm/drop_caches
可以加到 cron 任务中,每天定期执行:
echo "0 4 * * * root sync; echo 3 > /proc/sys/vm/drop_caches" >> /etc/crontab
如果 VPS 使用 SSD,启用 fstrim 以保持性能:
systemctl enable fstrim.timer
systemctl start fstrim.timer
调整 I/O 调度器:
echo "noop" > /sys/block/sda/queue/scheduler
或者 mq-deadline(适用于大部分 VPS):
echo "mq-deadline" > /sys/block/sda/queue/scheduler
日志文件过大会影响磁盘空间,定期清理:
journalctl --vacuum-size=100M # 清理日志至100MB
编辑 /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
部分 VPS 的 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
tc(Traffic Control)是 Linux 自带的流量控制工具,可以用来限制网卡的最大带宽。
tc qdisc add dev eth0 root tbf rate 500mbit burst 32kbit latency 400ms
如果想移除限制,可以运行:
tc qdisc del dev eth0 root
https://www.nodeseek.com/post-299487-1