免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
21 [报告]
发表于 2014-03-07 16:22 |只看该作者
本帖最后由 runintostar 于 2014-03-07 16:26 编辑

回复 20# reyleon
我这边服务器限制的limit都比较少,而且程序不是我能随便重启了,也没法帮您测试。
搜了一下看到的唯一一个跟文件有关系的就是MAXFDLIMIT,不知道是这个可以限制么。以后有机会我要测下

Sorry,刚才搜了下,原来这个参数是sol系统才能用的,而且功能是是否遵从操作系统的openfilelimits,看来不是这个

   

论坛徽章:
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
22 [报告]
发表于 2014-03-07 16:39 |只看该作者
回复 21# runintostar


    你有使用 resin 吗? 或java进程


可以帮我看看, /proc/[resinpid]/limits 这个文件里的 Max open files 相关值 与 使用 ulimit -a 看到的 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
23 [报告]
发表于 2014-03-07 16:40 |只看该作者
  1. jni_open_file(JNIEnv *env,
  2.               jbyteArray name,
  3.               jint length)
  4. {
  5.   char buffer[8192];
  6.   int fd;
  7.   int flags;
  8.   int offset = 0;

  9.   if (! name || length <= 0 || sizeof(buffer) <= length) {
  10.     return -1;
  11.   }

  12.   (*env)->GetByteArrayRegion(env, name, offset, length, (void*) buffer);

  13.   buffer[length] = 0;

  14.   flags = O_RDONLY;
  15.   
  16. #ifdef O_BINARY
  17.   flags |= O_BINARY;
  18. #endif
  19.   
  20. #ifdef O_LARGEFILE
  21.   flags |= O_LARGEFILE;
  22. #endif

  23.   fd = open(buffer, flags, 0664);

  24.   return fd;
  25. }
复制代码
resin-4.0.38\modules\c\src\resin_os\jni_socket.c 里面看到的代码
不知道是不是有关系

论坛徽章:
0
24 [报告]
发表于 2014-03-07 16:44 |只看该作者
回复 22# reyleon
全是was,而且都是aix,只有一台rh的机器并且装着was的
  1. $ cat /proc/21479/limits
  2. Limit                     Soft Limit           Hard Limit           Units
  3. Max cpu time              unlimited            unlimited            seconds
  4. Max file size             unlimited            unlimited            bytes
  5. Max data size             unlimited            unlimited            bytes
  6. Max stack size            10485760             unlimited            bytes
  7. Max core file size        0                    unlimited            bytes
  8. Max resident set          unlimited            unlimited            bytes
  9. Max processes             40960                40960                processes
  10. Max open files            1024                 1024                 files
  11. Max locked memory         32768                32768                bytes
  12. Max address space         unlimited            unlimited            bytes
  13. Max file locks            unlimited            unlimited            locks
  14. Max pending signals       40960                40960                signals
  15. Max msgqueue size         819200               819200               bytes
  16. Max nice priority         0                    0
  17. Max realtime priority     0                    0
复制代码
  1. $ ulimit -a
  2. core file size          (blocks, -c) 0
  3. data seg size           (kbytes, -d) unlimited
  4. scheduling priority             (-e) 0
  5. file size               (blocks, -f) unlimited
  6. pending signals                 (-i) 40960
  7. max locked memory       (kbytes, -l) 32
  8. max memory size         (kbytes, -m) unlimited
  9. open files                      (-n) 1024
  10. pipe size            (512 bytes, -p) 8
  11. POSIX message queues     (bytes, -q) 819200
  12. real-time priority              (-r) 0
  13. stack size              (kbytes, -s) 10240
  14. cpu time               (seconds, -t) unlimited
  15. max user processes              (-u) 40960
  16. virtual memory          (kbytes, -v) unlimited
  17. file locks                      (-x) unlimited
复制代码
看了dmgr ndagent server 都一样。不过我这个没参考价值,因为开始就说,系统限制的太小了。。

论坛徽章:
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
25 [报告]
发表于 2014-03-07 17:17 |只看该作者

应该跟系统的打开文件数限制没关系!我用安装个了个虚拟机搞了个 resin 看了下,最大打开文件数限制也是 131072 ,而系统默认是 1024 的,我在虚拟机里没有更改此值.

就是不知道在哪儿找到 131072 这个配置项! @Shell_HAT @runintostar
  1. [root@centos6-1 bin]# ps -ef | grep java
  2. root      2612     1 23 17:13 pts/0    00:00:04 /usr/java/jdk1.7.0_40/bin/java -Dresin.watchdog=app-0 -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl -Djava.awt.headless=true -Dresin.home=/usr/local/resin/ -Dresin.root=/usr/local/resin/ -Xrs -Xss256k -Xmx32m -d64 -server com.caucho.boot.WatchdogManager start --log-directory /usr/local/resin/log
  3. root      2654  2612 34 17:13 pts/0    00:00:02 /usr/java/jdk1.7.0_40/bin/java -Dresin.server=app-0 -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -Djava.system.class.loader=com.caucho.loader.SystemClassLoader -Djava.endorsed.dirs=/usr/java/jdk1.7.0_40/jre/lib/endorsed:/usr/local/resin//endorsed:/usr/local/resin//endorsed -Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl -Djava.awt.headless=true -Dresin.home=/usr/local/resin/ -Xss1m -Xmx256m -d64 -server com.caucho.server.resin.Resin --root-directory /usr/local/resin/ -conf /usr/local/resin/conf/resin.xml -server app-0 -socketwait 45310 start --log-directory /usr/local/resin/log
  4. root      2686  2454  0 17:13 pts/0    00:00:00 grep java
  5. [root@centos6-1 bin]#
  6. [root@centos6-1 bin]#
  7. [root@centos6-1 bin]#
  8. [root@centos6-1 bin]# cat /proc/2654/limits
  9. Limit                     Soft Limit           Hard Limit           Units     
  10. Max cpu time              unlimited            unlimited            seconds   
  11. Max file size             unlimited            unlimited            bytes     
  12. Max data size             unlimited            unlimited            bytes     
  13. Max stack size            10485760             unlimited            bytes     
  14. Max core file size        0                    unlimited            bytes     
  15. Max resident set          unlimited            unlimited            bytes     
  16. Max processes             1754                 1754                 processes
  17. Max open files            131072               131072               files     
  18. Max locked memory         65536                65536                bytes     
  19. Max address space         unlimited            unlimited            bytes     
  20. Max file locks            unlimited            unlimited            locks     
  21. Max pending signals       1754                 1754                 signals   
  22. Max msgqueue size         819200               819200               bytes     
  23. Max nice priority         0                    0                    
  24. Max realtime priority     0                    0                    
  25. Max realtime timeout      unlimited            unlimited            us        
  26. [root@centos6-1 bin]# ulimit -a
  27. core file size          (blocks, -c) 0
  28. data seg size           (kbytes, -d) unlimited
  29. scheduling priority             (-e) 0
  30. file size               (blocks, -f) unlimited
  31. pending signals                 (-i) 1754
  32. max locked memory       (kbytes, -l) 64
  33. max memory size         (kbytes, -m) unlimited
  34. open files                      (-n) 1024
  35. pipe size            (512 bytes, -p) 8
  36. POSIX message queues     (bytes, -q) 819200
  37. real-time priority              (-r) 0
  38. stack size              (kbytes, -s) 10240
  39. cpu time               (seconds, -t) unlimited
  40. max user processes              (-u) 1754
  41. virtual memory          (kbytes, -v) unlimited
  42. file locks                      (-x) unlimited
  43. [root@centos6-1 bin]#
复制代码

论坛徽章:
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
26 [报告]
发表于 2014-03-07 18:00 |只看该作者
不研究了, 系统是: CentOS 5.5 x86_64 .内核版本:2.6.18-194.el5 不给力呀.. @runintostar@Shell_HAT


在 内核为 2.6.32-358.el6.x86_64 的系统上 可以直接修改:
  1. echo -n "Max open files=409600:409600" > /proc/<pid>/limits
复制代码
蛋疼,不搞了,让开发自己去看程序得了,13万的打开文件数还不够,只能说明程序太烂.  

论坛徽章:
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
27 [报告]
发表于 2014-03-07 18:38 |只看该作者
回复 26# reyleon

如果是我, 根本不会去找.

13w 还不够, 说明打开了文件根本就没有关闭. 不用看代码我都知道, 一定是哪里的循环打开了文件, 但在循环最后忘了关了, 结果, 这个循环执行多少次, 就打开多少文件.

以上, 纯YY.
   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
28 [报告]
发表于 2014-03-08 10:54 |只看该作者
java程序的话 ,最好是直接查怎么报的错误,然后谷歌一下就行了。
本贴的话,先看一下resin too many open files相关的错误提示,然后谷歌之。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
29 [报告]
发表于 2015-08-27 14:03 |只看该作者
可能在/etc/security/limit.d/xxx.conf里面 这个优先级要高于limit.conf

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
30 [报告]
发表于 2015-08-27 14:04 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP