Linux系统中设置ulimit -n参数的两种方法

Linux系统中设置ulimit -n参数的两种方法

ulimit -n用于设置或显示用户进程可打开的文件描述符的最大数量。默认值通常较低,对于高并发应用(如Web服务器、数据库等),需要调整为更大的值(如65535)。以下是临时生效和永久设置的两种方法。

1. 临时生效方法

特点

  • 立即生效,但仅对当前会话有效
  • 重启或重新登录后失效

操作步骤

# 查看当前限制
ulimit -n

# 临时修改为65535(仅当前Shell会话有效)
ulimit -n 65535

# 验证是否生效
ulimit -n

注意

  • 需要用户有权限(非root用户可能无法调高限制)
  • 仅影响当前终端窗口或进程

2. 永久设置方法

方法一:修改系统配置文件(推荐)

特点

  • 对所有用户或指定用户永久生效
  • 需重启或重新登录

操作步骤

  1. 编辑/etc/security/limits.conf文件:

    sudo vim /etc/security/limits.conf
    
  2. 在文件末尾添加以下内容(以用户root*所有用户为例):

    # 针对所有用户设置
    *        soft    nofile    65535
    *        hard    nofile    65535
    
    # 或仅针对特定用户(如root)
    root     soft    nofile    65535
    root     hard    nofile    65535
    
  3. 保存文件后,重新登录或重启系统生效。

方法二:通过systemd系统(适用于现代Linux发行版)

适用场景

  • 使用systemd管理的服务

操作步骤

  1. 编辑/etc/systemd/system.conf

    sudo vi /etc/systemd/system.conf
    
  2. 取消注释并修改以下参数:

    ...........
    #DefaultLimitCORE=
    #DefaultLimitRSS=
    DefaultLimitNOFILE=65535
    #DefaultLimitAS=
    #DefaultLimitNPROC=
    ...........
    
    
  3. 重新加载systemd配置:

    sudo systemctl daemon-reload
    
  4. 重启系统生效。

    ulimit -n
    65535
    

验证设置

# 查看当前生效的值
ulimit -n

# 或检查特定进程的限制
cat /proc/<PID>/limits | grep "Max open files"

注意事项

  1. hard限制需≥soft限制,普通用户不可超过hard限制。
  2. 部分服务(如Nginx、MySQL)可能有独立的文件限制配置,需额外调整。
  3. 设置过高可能导致资源竞争,需根据服务器实际负载调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值