免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: reyleon
打印 上一主题 下一主题

[系统管理] 关于 Linux 打开文件数限制的问题 [复制链接]

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
11 [报告]
发表于 2014-03-07 10:04 |只看该作者
回复 8# reyleon

resin 我可没用过, 你得自己找了.

如果不是root用户, 好象不能设置 open file 属性.
   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
12 [报告]
发表于 2014-03-07 14:36 |只看该作者
回复 9# reyleon


131072 = 128K
有可能是达到了系统参数设定的 TCP Socket 缓冲区最大值
看看下面几个文件里面有没有相关的设置:
  1. cat /proc/sys/net/ipv4/tcp_wmem
  2. cat /proc/sys/net/ipv4/tcp_rmem

  3. cat /proc/sys/net/core/rmem_max
  4. cat /proc/sys/net/core/wmem_max
  5. cat /proc/sys/net/core/rmem_default
  6. cat /proc/sys/net/core/wmem_default

  7. /etc/sysctl.conf
  8. /etc/rc.local
  9. /etc/profile
复制代码
下次再出问题的时候,可以用 netstat 命令看看 TCP 连接的状态都是有哪些。
  1. netstat -an | awk '/^tcp/{a[$NF]++}END{for(i in a)print i,a[i]}'
复制代码
不过,我觉得更加重要的是,让开发人员检查一下源代码和日志,看看为什么这么多打开的文件或socket没有正常关闭。

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
13 [报告]
发表于 2014-03-07 15:38 |只看该作者
回复 12# Shell_HAT


   

很多打开的文件句柄都是以下这些, 我不知道 pipe 跟 eventpoll 怎么有那么多.
  1. eventpoll  27594
  2. pipe       55296
  3. socket     1637
复制代码
  1. [root@admin ~]# netstat -nt | awk 'NR>1{a[$NF]++}END{for(i in a)print i,a[i]}' | column -t
  2. TIME_WAIT    605
  3. CLOSE_WAIT   4
  4. FIN_WAIT1    2
  5. State        1
  6. FIN_WAIT2    1
  7. ESTABLISHED  3697
  8. [root@admin ~]#
复制代码
建立的连接也不多呀.

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
14 [报告]
发表于 2014-03-07 15:50 |只看该作者
回复 12# Shell_HAT


    将你列出的这些值,改大了,生效重启应用后,还是没用... 在 /proc/[pid]/limits 显示还是 131072:
  1. Limit                     Soft Limit           Hard Limit           Units     
  2. Max open files            131072               131072               files   
复制代码
这个 Max open files 就改不了么?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
15 [报告]
发表于 2014-03-07 15:56 |只看该作者
很多打开的文件句柄都是以下这些, 我不知道 pipe 跟 eventpoll 怎么有那么多.

俺没有做过开发,不懂。
找你们的 Java 程序员问问(不会就是你自己吧

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
16 [报告]
发表于 2014-03-07 15:58 |只看该作者
将你列出的这些值,改大了,生效重启应用后,还是没用

你是重启了操作系统?还是执行了 sysctl -p 这个命令?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
17 [报告]
发表于 2014-03-07 15:59 |只看该作者
还有就是再看看这几个文件
cat /proc/sys/fs/file-max
cat /proc/sys/fs/file-nr
sysctl -a | grep 'fs.file-max'
grep 'fs.file-max' /etc/sysctl.conf

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
18 [报告]
发表于 2014-03-07 16:08 |只看该作者
回复 15# Shell_HAT


不是我, 俺只是运维,妹的,开发找了好多天了都没找到问题..

我是执行了 sysctl -p  命令.

而是

[root@admin ~]# cat /proc/sys/fs/file-max
6491053
[root@admin ~]# cat /proc/sys/fs/file-nr
195840  0       6491053
[root@admin ~]# sysctl -a | grep 'fs.file-max'
fs.file-max = 6491053
[root@admin ~]# grep 'fs.file-max' /etc/sysctl.conf
[root@admin ~]#

都是很大的

我的意思是: 系统(/etc/security/limits.conf )的最大打开文件数限制配置其实是很大的了. 但是到了单个Java进程, 在 /proc/[pid]/limits 中看到的最大打开文件数限制却只有 131072,我是一直纠结在这里. 我不知道

/proc/[pid]/limits 与 /etc/security/limits.conf 有什么关联的.

论坛徽章:
0
19 [报告]
发表于 2014-03-07 16:09 |只看该作者
JVM能否限制

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
20 [报告]
发表于 2014-03-07 16:15 |只看该作者
回复 19# runintostar


    我也不是太清楚 JVM 或者是resin (我的问题就是resin提供的web服务) 能否限制,我也找过,但是没找到相关的配置项.

而我查看其他服务器的Java进程,系统配置多大打开文件数,那那个进程在/proc/[pid]/limits 中看到就是多少.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP