用户级别文件描述符数量限制
查看当前用户的用户级别最大文件描述符数量限制
# 查看当前会话的最大文件描述符限制
ulimit -n
# 此命令会输出当前的软限制大小,如“1024,表示当前用户可以打开的文件(包括TCP套接字)的最大数量
临时修改当前用户的用户级别最大文件描述符数量限制(仅影响当前会话)
# 通过以下指令并指定欲调整到的目标大小来临时调整
ulimit -n 目标大小
# 调整完成后可再次通过 ulimit -n来检查是否生效
永久性调整用户级别的最大文件描述符数量限制
先编辑/etc/security/limits.conf文件,修改或增加以下内容
# 针对所有用户
# * 表示匹配所有用户名
# soft 表示为软限制
# hard表示为硬限制
# 1048576 为限制大小
* soft 1048576
* hard 1048576
# 针对指定用户进行调整时,仅需要将 * 替换为具体的用户名,如dev
dev soft 1048576
dev hard 1048576
再修改/etc/pam.d/common-session,增加或修改以下内容
# 调整 session配置使用户登录时自动加载文件描述符限制
session required pam_limits.so
然后重启操作系统使配置更新,完成重启后可再次通过命令确认调整内容是否生效。
系统级别文件描述符数量限制
查看系统文件描述符限制
cat /proc/sys/fs/file-max
# 或
sysctl fs.file-max
临时调整系统文件描述符限制
# 临时修改,重启操作系统后失效
sudo sysctl -w fs.file-max=目标大小
永久调整系统文件描述符限制
# 编辑 /etc/sysctl.conf,增加或修改以下内容
fs.file-max = 目标大小
# 使用以下命令或重启操作系统使其生效
sysctl -p
调整进程的TCP连接数量限制
# 使用sysctl -p命令时的输出结果中包含TCP的连接数量限制
# 如net.core、net.ipv4等信息
# 查看TCP半连接状态的队列大小限制(即等待连接的最大队列长度)
sysctl net.ipv4.tcp_max_syn_backlog
# 查看允许完成立的最大连接数量限制
sysctl net.core.somaxconn
# 查看允许使用的端口范围
sysctl net.ipv4.ip_local_port_range
临时调整
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=目标大小
sudo sysctl -w net.core.somaxconn=目标大小
永久调整
# 编辑/etc/sysctl.conf文件,增加或调整以下内容
net.ipv4.tcp_max_syn_backlog = 目标大小
net.core.somaxconn = 目标大小
# 使用sysctl -p或重启操作系统使其生效