linux 打开的fd数量,【原创】如何在 Linux 下调整可打开文件/文件描述符数目

How do I increase the maximum number of open files under CentOS Linux? How do I open more file descriptors under Linux?

The ulimit command provides control over the resources available to the shell and/or to processes started by it, on systems that allow such control. The maximum number of open file descriptors displayed with following command (login as the root user).

ulimit 命令提供了针对 shell  和/或由该 shell 启动的进程占用资源的控制。

Command To List Number Of Open File Descriptors

Use the following command to display maximum number of open file descriptors:

cat /proc/sys/fs/file-max -- 显示单个登陆会话允许打开的 fd 数目

Output:

75000

75000 files normal user can have open in single login session . To see the hard and soft values, issue the command as follows:

# ulimit -Hn

# ulimit -Sn

To see the hard and soft values for httpd or oracle user, issue the command as follows:

通过切换登陆用户,可以查看针对特定登陆用户所设置的 fd 限制数目。

# su - username

In this example, su to oracle user, enter:

# su - oracle

$ ulimit -Hn

$ ulimit -Sn

System-wide File Descriptors (FD) Limits

The number of concurrently open file descriptors throughout the system can be changed via /etc/sysctl.conf file under Linux operating systems.

系统范围级别的 fd 数量控制需要编辑 /etc/sysctl.conf 内核参数配置文件。

The Number Of Maximum Files Was Reached, How Do I Fix This Problem?

Many application such as Oracle database or Apache web server needs this range quite higher. So you can increase the maximum number of open files by setting a new value in kernel variable /proc/sys/fs/file-max as follows (login as the root):

通过调整内核参数  /proc/sys/fs/file-max 来增加可打开 fd 数目。

# sysctl -w fs.file-max=100000 -- 这种方式只能临时修改 fd 数目限制

Above command forces the limit to 100000 files. You need to edit /etc/sysctl.conf file and put following line so that after reboot the setting will remain as it is:

通过修改 /etc/sysctl.conf 文件,可以在令针对 fd 的修改一直生效。

# vi /etc/sysctl.conf

Append a config directive as follows:

fs.file-max = 100000 -- 系统范围内修改 fd 数目

Save and close the file. Users need to log out and log back in again to changes take effect or just type the following command:

# sysctl -p -- 不用重启系统令修改生效的方法

Verify your settings with command:

# cat /proc/sys/fs/file-max

OR

# sysctl fs.file-max

User Level FD Limits

The above procedure sets system-wide file descriptors (FD) limits. However, you can limit httpd (or any other users) user to specific limits by editing /etc/security/limits.conf file, enter:

通过修改 /etc/security/limits.conf 文件可以在用户级别对 fd 进行限制。

# vi /etc/security/limits.conf

Set httpd user soft and hard limits as follows:

httpd soft nofile 4096 -- 针对 httpd 用户做 fd 限制

httpd hard nofile 10240

Save and close the file. To see limits, enter:

# su - httpd

$ ulimit -Hn

$ ulimit -Sn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值