Linux实例调整limits文件中nofile参数值的方法

本文主要介绍在Linux实例中,调整limits配置文件中nofile参数值的方法。

背景信息

Linux系统中/etc/security/limits.conf文件允许管理员设定用户和进程的资源使用限制,例如打开文件的数量、线程数和内存用量。其中,nofile限制项定义了单个用户能打开的最大文件数。而在/proc/sys/fs/nr_open中定义的数值则指单一进程能够分配的文件描述符的最大数量。如果系统的nofile值设置超过了nr_open的限制,这可能会导致系统资源耗尽,进而影响到远程连接的能力。合理配置这些参数能有效提升Linux实例的稳定性。

操作步骤

  1. 卸载异常ECS实例的系统盘,并将该磁盘作为数据盘挂载到正常ECS实例中。

    具体操作,请参见如何恢复系统盘数据?的步骤一到步骤四章节。

  2. 使用root用户远程登录正常ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  3. 执行以下命令,编辑/etc/security/limits.conf配置文件。

    vim /etc/security/limits.conf
  4. 在配置文件中,修改nofile参数值。

    1. 找到root soft nofileroot hard nofile参数,并将参数设置成以下内容。

      root soft nofile 65535
      root hard nofile 65535
      说明
      • soft nofile:表示用户打开文件数的警告值,建议您修改为默认值65535。soft nofile参数值不可大于hard nofile参数值。

      • hard nofile:表示用户打开文件数的真实阈值,若用户打开文件数超过该参数值则会报错,建议您修改为默认值65535。hard nofile参数值不可大于/proc/sys/fs/nr_open参数值,若nofile参数值大于nr_open参数值,则可能导致用户无法正常登录该实例。

      • 通过此方法设置参数后可永久生效,若需临时设置nofile参数,可使用ulimit -n [$Nofile]命令设置nofile参数。

      • 除了资源限制配置参数,Linux系统的内核参数也在一定程度上决定了服务器的性能。更多关于内核参数的信息,请参见Linux系统常用内核网络参数介绍与常见问题处理

    2. 设置完成后,按Shift+:键,然后输入wq,最后按Enter键保存并退出。

  5. 恢复异常ECS实例的系统盘。

    具体操作,请参见如何恢复系统盘数据?的步骤五章节。

  6. 远程登录已修复的ECS实例,确认ECS实例恢复正常。