linux 句柄数限制_linux文件句柄数

linux 句柄数限制_linux文件句柄数一个部署到linux下的中间件项目,当收到一个Client登录的时候,需要为这个Client打开四个文件,当进行多用户的大压力测试的时候,程序就出问题了:toomanyopenedfiles。网上一查,发现有人也碰到过类似的socket/File:Can’topensomanyfiles问题。在此总结一下这个问题,希望对后来之人有点帮助。解决之法:1,ulimit…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一个部署到 linux下的中间件项目,当收到一个 Client登录的时候,需要为这个 Client打开四个文件,当进行 多用户的大压力测试的时候,程序就出问题了: too many opened files。 网上一查,发现有人也碰到过类似的 socket/File: Can’t open so many files问题。 在此总结一下这个问题,希望对后来之人有点帮助。

解决之法:

1, ulimit -a 查看当前用户的文件句柄限制

open files (-n) 65535这个就是限制数量。 (65535是我已经修改后的值了,没修改前是1024)

2,修改 /etc/security/limits.conf 增加下面的代码:

Shell代码

1bfae35c86363ffa9798e87ea82845c7.png

你的用户名  soft nofile 65535

你的用户名 hard nofile 65535

我们添加了有 soft, hard两种:硬限制是实际的限制,而软限制,是 warnning限制,只会做出 warning。修改时,改成一样就可以了。

3, 重启 shell即可。 (有些系统可能需要重启系统 , red hat 的肯定不用的)

4, ulimit -a 查看设置是否成功。

原理分析:

Linux是有文件句柄限制的,而且默认不是很高,一般都是 1024,应用程序很容易就达到这个数量,所以也就有了这篇文章。 ulimi是对单一程序的限制 ,而不是单个用户。

查看系统总限制 命令:

Shell代码

1bfae35c86363ffa9798e87ea82845c7.png

cat /proc/sys/fs/file-max

查看整个系统目前使用的文件句柄数量命令:

Shell代码

1bfae35c86363ffa9798e87ea82845c7.png

cat /proc/sys/fs/file-nr

辅助命令:

查找文件句柄问题的时候,还有一个很实用的程序 lsof,可以很方便看到某个进程开了哪些句柄 :

Shell代码

1bfae35c86363ffa9798e87ea82845c7.png

lsof -p pid

某个进程开了几个句柄 :

Shell代码

1bfae35c86363ffa9798e87ea82845c7.png

lsof -p pid |wc -l

也可以看到某个目录 /文件被什么进程占用了,显示已打开该目录或文件的所有进程信息 :

Shell代码

1bfae35c86363ffa9798e87ea82845c7.png

lsof path/filename

原帖:http://sesame.iteye.com/blog/425678

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180719.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql declare 语法_sql_declare等语法 | 学步园[通俗易懂]

    mysql declare 语法_sql_declare等语法 | 学步园[通俗易懂]===sqlserver:—sqldeclare–简单赋值declare@aintset@a=5select@a–使用select语句赋值declare@user1nvarchar(50)select@user1=’张三’select@user1declare@user2nvarchar(50)select@user2=NamefromST_Userwhe…

    2022年8月20日
    32
  • VMware虚拟机安装ubuntu16.04系统教程[通俗易懂]

    对于没有接触过Ubuntu系统的小伙伴来说,直接在物理机上安装Ubuntu单系统或者windows、Ubuntu双系统一件比较刺激的事情,因为一不小心可能就会把电脑整崩溃,或者出现各种问题,所以在一开始可以用虚拟机熟悉演练一下Ubuntu系统很有必要,今天把这个过程分享一下,希望朋友们能够一次性地顺利安装好,愉快地进行体验玩耍,话不多说,教程奉上。由于本台电脑是2010的机器了…

    2022年4月7日
    56
  • Tomcat配置appBase为空时BlazeDS找不到endpoint路径[通俗易懂]

    因为有用quartz定时任务,把tomcat的appBase设置为空,以防同时执行2次。但这样BlazeDS初始化时会找不到endpoint路径。 解决方法是把endpointurl中的{context.root}全部改为项目的路径,如项目是webapps\abc,就把所有{context.root}改为abc…

    2022年4月15日
    52
  • sendfile相关「建议收藏」

    sendfile相关「建议收藏」考虑将一个本地文件通过socket发送出去的问题。我们通常的做法是:打开文件fd和一个socket,然后循环地从文件fd中read数据,并将读取的数据send到socket中。这样,每次读写我们都需要两次系统调用,并且数据会被从内核拷贝到用户空间(read),再从用户空间拷贝到内核(send)。而sendfile就将整个发送过程封装在一个系统调用中,避免了多次系统调用,避免了数据在内核空间

    2022年5月8日
    37
  • css属性及定位操作

    字体属性文字字体font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。简单实例:body{font

    2022年3月29日
    64
  • gb50174-2017数据中心机房等级标准_计算机机房设计标准GB50174

    gb50174-2017数据中心机房等级标准_计算机机房设计标准GB501742.0.1数据中心datacenter为集中放置的电子信息设备提供运行环境的建筑场所,可以是一栋或几栋建筑物,也可以是一栋建筑物的一部分,包括主机房、辅助区、支持区和行政管理区等。2.0.2灾备数据中心businessrecoverydatacenter用于灾难发生时,接替生产系统运行,进行数据处理和支持关键业务功能继续运作的场所,包括限制区、普通区和专用区。2.0.3主机房c…

    2022年10月2日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号