Linux 修改open files 数量

概要:
linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够。这就需要修改ulimit和file-max。特别是提供大量静态文件访问的web服务器,缓存服务器(如squid), 更要注意这个问题。
网上的教程,都只是简单说明要如何设置ulimit和file-max, 但这两者之间的关系差别,并没有仔细说明。

说明:

  1. file-max的含义。man proc,可得到file-max的描述:
    /proc/sys/fs/file-max
    This file defines a system-wide limit on the number of open files for all processes. (See
    also setrlimit(2), which can be used by a process to set the per-process limit,
    RLIMIT_NOFILE, on the number of files it may open.) If you get lots of error messages
    about running out of file handles, try increasing this value:
    即file-max是设置 系统所有进程一共可以打开的文件数量 。同时一些程序可以通过setrlimit调用,设置每个进程的限制。如果得到大量使用完文件句柄的错误信息,是应该增加这个值。
    也就是说,这项参数是系统级别的。

  2. ulimit
    Provides control over the resources available to the shell and to processes started by it, on systems that allow such control.
    即设置当前shell以及由它启动的进程的资源限制。
    显然,对服务器来说,file-max, ulimit都需要设置,否则就可能出现文件描述符用尽的问题

修改:
1.修改file-max

# echo  102400 > /proc/sys/fs/file-max 
# sysctl -w "fs.file-max=102400",前面2种重启机器后会恢复为默认值
# vim /etc/sysctl.conf, 加入以下内容,重启生效
fs.file-max=102400
net.nf_conntrack_max = 1024000
net.netfilter.nf_conntrack_max = 1024000

2.修改ulimit的open file,系统默认的ulimit对文件打开数量的限制是1024

# ulimit -HSn 102400  //这只是在当前终端有效,退出之后,open files又变为默认值。当然也可以写到/etc/profile中,因为每次登录终端时,都会自动执行/etc/profile
或
# vim /etc/security/limits.conf  //加入以下配置,重启即可生效
* hard nofile 102400
* soft nofile 102400

附录:
附录1.
为了让一个程序的open files数目扩大,可以在启动脚本前面加上ulimit -HSn 102400命令。但当程序是一个daemon时,可能这种方法无效,因为没有终端。

附录2.
如果某项服务已经启动,再动态调整ulimit是无效的,特别是涉及到线上业务就更麻烦了。
这时,可以考虑通过修改/proc/’程序pid’/limits来实现动态修改!!!
原文:[转载]linux修改open files数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,359评论 19 139
  • 引言 当修改一个Linux系统参数或限制,比如文件打开数时,之前用到过的方式有ulimit、limits.conf...
    bluexiii阅读 11,369评论 0 5
  • 为了执行权限检查,传统的 UNIX 实现区分两种类型的进程:特权进程(其有效用户 ID 为0,称为超级用户或 ro...
    hanpfei阅读 9,579评论 0 1
  • 《短诗集》②《致七夕》 文/鹿深 我愿意,和你, 和每一个晨晚, 和每一滴清晨的露珠, 从南至北,从汪洋到点滴。 ...
    编辑鹿深阅读 1,150评论 0 0
  • 虽然过去了7年多的时间,我仍然清晰的记得2009年第一次和师师来西安时的夏天,我俩去单位投完了简历,就去了大...
    罂粟的妖娆阅读 2,166评论 0 0