引言
系统性能是一个多维度的综合指标,它不仅取决于应用程序本身的质量和底层硬件资源的多寡,更取决于操作系统(OS)作为中间层,能否将硬件资源高效、稳定地分配给应用程序。错误或保守的 OS 配置会成为性能瓶颈,无法充分发挥硬件和软件的全部潜力。
本文聚焦于 Linux 操作系统层面的关键性能调优点,通过一系列易于操作的配置调整,旨在提升服务器在高并发、高 I/O、高计算负载下的稳定性和吞吐量,为上层应用(如数据库、大数据平台、Web 服务等)提供一个坚实且高效的基础运行环境。
一、资源限制 (ulimit) 优化
优化目标在于防止因单个用户或进程耗尽系统资源(如文件句柄、进程数)而导致的服务拒绝、意外崩溃或系统不稳定。
1. 文件句柄数 (nofile)
在 Linux 中一切皆文件,网络连接(Socket)、打开的文件、监听的端口等都消耗文件描述符(句柄)。过小的限制会导致应用报 "Too many open files" 错误。
-
检查命令:
ulimit -n
-
建议值:生产环境建议调整为
655350
或更高 -
调整方法:
# 临时调整(生效至下次重启或用户退出) ulimit -n 655350 # 永久调整(对所有登录用户生效) echo -e '* soft nofile 655350\n* hard nofile 655350' >> /etc/security/limits.conf # 如需对特定用户生效,将 '*' 替换为用户名
2. 用户进程数 (nproc)
此参数限制单个用户可创建的最大进程数。对于会频繁创建子进程的服务(如 Java 应用、PHP-FPM 等),过小的限制会导致 "fork: retry: Resource temporarily unavailable" 错误。
-
检查命令:
ulimit -u
-
建议值:生产环境建议
655350
-
调整方法:
# 临时调整 ulimit -u 655350 # 永久调整 echo -e '* soft nproc 655350\n* hard nproc 655350' >> /etc/security/limits.conf # 注意:在 CentO