centos调整文件句柄数和进程数限制

前言

在管理 Linux 服务器时,优化系统性能和资源管理是至关重要的任务之一。特别是在运行大型数据库、Web服务器或任何高性能应用时,系统默认的资源限制可能不足以应对高负载。本文将介绍如何通过调整文件描述符(nofile)和进程数(nproc)的限制来优化 Linux 系统的性能。

什么是文件描述符和进程数限制?

在 Linux 系统中,文件描述符 是一个用于表示文件或其他输入/输出资源的抽象指标。每当程序打开一个文件、建立一个网络连接或访问一个设备时,系统就会分配一个文件描述符。进程数限制则指的是一个用户或系统可以创建的进程的最大数量。

默认情况下,这些限制设置得相对保守,以防止系统资源被单个用户或进程过度使用。然而,对于需要大量并发文件操作和多进程的服务器应用,这些默认值可能过低。

如何修改这些限制?

步骤 1: 修改 /etc/security/limits.conf

打开 /etc/security/limits.conf 文件进行编辑,可以使用 sudo vi 命令:

shell 复制代码
sudo vi /etc/security/limits.conf

在文件中添加或修改以下行,以设置所需的限制:

conf 复制代码
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

这里,* 表示对所有用户生效。softhard 分别代表软限制和硬限制。软限制是可在用户会话中更改的限制,而硬限制则是系统强制的最大值。

步骤 2: 覆盖特定的配置文件

有些系统或应用可能有专门的配置文件,这些文件在 /etc/security/limits.d/ 目录下。例如,20-nproc.conf 是常见的用于控制进程数的配置文件。同样使用 sudo vi 命令编辑:

shell 复制代码
sudo vi /etc/security/limits.d/20-nproc.conf

并同样设置:

conf 复制代码
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

生效方式

这些更改将在用户下一次登录时生效。对于已经运行的服务,你可能需要重启服务或让用户重新登录。不需要重启整个系统。

检查是否生效

登录后,你可以使用 ulimit 命令来检查这些设置是否已正确应用:

shell 复制代码
ulimit -a

ulimit -Sn  # 查看软限制的文件描述符数量
ulimit -Hn  # 查看硬限制的文件描述符数量
ulimit -Su  # 查看软限制的进程数
ulimit -Hu  # 查看硬限制的进程数

总结

通过适当地调整文件描述符和进程数限制,你可以显著提高 Linux 服务器在高负载环境下的性能和稳定性。这些改动帮助确保系统不会因为资源耗尽而导致服务中断,同时也为运行大规模应用提供了必要的资源支持。

相关推荐
getapi1 小时前
FinalShell 连接 CentOS 7 文件管理失败修复教程
linux·运维·centos
Mr_sun.5 小时前
Mac中通过PD安装Rockly、Centos版本的linux并设置静态ip与安装Docker
linux·macos·centos
漏刻有时1 天前
CentOS 不定时 OOM 根治方案:PHP-FPM 进程管控 + Swap 扩容 + 全维度监控
android·centos·php
runepic1 天前
GeoServer在CentOS部署中文乱码显示方框终极解决方案
linux·运维·centos·geoserver
杨云龙UP1 天前
ODA服务器RAC节点2/u01分区在线扩容操作记录及后续处理流程(Linux LVM + ext4 文件系统在线扩容操作手册)_20260307
linux·运维·服务器·数据库·ubuntu·centos
机 _ 长2 天前
NVIDIA 显卡驱动安装指南 (CentOS Stream 9 / RTX 5090)
linux·运维·centos
升职佳兴2 天前
CentOS 9 下 HBase 2.4.9 分布式集群安装与配置实战
分布式·centos·hbase
野生工程师2 天前
【Linux基础】CentOS Stream10详细安装教程
linux·运维·centos
learndiary2 天前
Linux维修案例:更新内核掉网卡驱动、CentOS 系统迁移、固态硬盘数据恢复
linux·ubuntu·centos·内核·数据恢复·固态硬盘·系统迁移
悲伤小伞2 天前
0-MySQL 在 Centos 7环境详细安装过程
linux·服务器·数据库·mysql·centos