
# 如何解决ECS日志中出现Too many open files的错误？
#### 问题描述
Linux操作系统的ECS日志中出现"Too many open files"的错误。
![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000002008304092.png "点击放大")
#### 可能原因
too many open files（打开的文件过多），表示程序打开的文件句柄数过多，超过了某一资源的限制。一般来说这个资源的限制包含两种维度的限制，包含系统的整体限制和用户单独的限制。出现该问题时需要判断具体超出了哪一维度的限制，再对该限制参数进行调整。
#### 处理方法一：系统范围设置
1. 以root用户登录云服务器。
2. 执行以下命令，查看操作系统中当前打开的所有文件数和最大打开文件数设置（部分版本默认为366954）。 **cat /proc/sys/fs/file-nr**
   **cat /proc/sys/fs/file-max**
   回显输出的第一列表示当前系统中所有打开的文件数。
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0000002044073301.png "点击放大")
   
3. 执行以下命令，更改系统范围的最大打开文件数。 **vim /etc/sysctl.conf**
   
4. 按**i**键进入编辑模式。
5. 在文件末尾添加如下内容，具体的数值可以根据实际情况修改。
   ```
   fs.file-max = 495000
   ```
   
6. 按**ESC** 键退出，并输入**:wq**保存配置。
7. 执行以下命令，使修改生效。 **sysctl -p**
   
 
#### 处理方法二：用户层面设置
1. 以root用户登录云服务器。
2. 执行以下命令，检查当前打开文件数的限制。 **ulimit -n**
   
3. 执行以下命令，增加数量限制。 **ulimit -n \<new_limit\>**
   该方法修改的参数值仅在当前运行中生效，重启后会还原为默认值，一般用于临时性验证。如需永久生效，请继续执行步骤[4]\~[8]。
   
4. 执行以下命令，编辑/etc/security/limits.conf文件，增加打开文件的数量限制。
   **vim /etc/security/limits.conf**
   
5. 按**i**键进入编辑模式。
6. 在文件末尾添加如下内容，此处以655350为例，可根据具体情况修改数值。
   - 只针对特定用户
     ```
     user - nofile 655350
     ```
     
   
   - 所有用户
     ```
     * - nofile 655350
     ```
     
    
7. 按**ESC** 键退出，并输入**:wq**保存配置。
8. 执行以下命令，重启服务器，使修改永久生效。
   **reboot**
   ![](https://support.huaweicloud.com/trouble-ecs/public_sys-resources/caution_3.0-zh-cn.png)
   Linux操作系统云服务器中的限制资源使用的模块首先读取**/etc/security/limits.conf** ，然后读取每个匹配的文件**/etc/security/limits.d/\*.conf** ，您在 **/etc/security/limits.conf** 中所做的任何更改可能会被后续文件覆盖。若重启后修改未生效请参见[修改/etc/security/limits.conf文件，重启后不生效怎么办？](https://support.huaweicloud.com/trouble-ecs/ecs_trouble_0354.html)处理。
   
 
