请选择 进入手机版 | 继续访问电脑版
用户
请注意:社区账号与官网账号不互通,如需登录社区,请在此注册社区账号!
 找回密码
 注册社区账号

QQ登录

只需一步,快速开始

搜索

limits.conf修改ulimit后,在命令终端应用中不生效

使用交流 2018-01-10 00:48 [复制链接] 查看: 42|回复: 1
问题描述

1.服务器ulimit -n原数值为1024,在limits.conf文件中修改为204800后,重启,使用SSH登录执行ulimit -n命令生效,显示最大打开文件数为204800。

2.但在appnode中,在命令终端软件(软件列表中的命令终端)使用ulimit -n查看仍为1024,并且在软件管家安装的Supervisor中执行的程序会出现报错:too many open files。

3.通过appnode首页-节点管理-节点列表中的命令终端查看,ulimit -n设置数值为204800生效,节点设置中的远程连接同样生效

4.如果卸载受控端,重装后,打开软件列表中的命令终端,ulimit -n生效,Supervisor执行程序不会出现too many open files的错误。

5.执行4之后,重启服务器,又会出现2中的问题,ulimit -n自定义值在软件列表中的命令终端无效,Supervisor中执行的程序持续出现过多连接的报错
回复

使用道具 举报

虚竹  楼主| 发表于 2018-1-10 00:49:03 | 显示全部楼层
问题分析

这是 CentOS 6 系统本身的限制,CentOS 7 系统采用了 systemd,无此问题。

后续版本中,我们会在 AppNode 控制中心/受控端启动时,强制初始化 ulimit -n 值为 102400,以便满足大部分场景的需求。

1. CentOS 6下的 limits.conf,只会影响用户登录后的 session,如 ssh 登录后,再执行 ulimit -n 查看。

2. 在 AppNode 本机的命令终端中执行 ulimit -n 时,显示的是 AppNode 服务的 ulimit 值,由于本机命令终端打开时不会产生系统用户登录行为,这里不会产生 session,自然也不会受到 limits.conf 配置的限制,所以是系统的默认值 1024。
supervisor服务同样存在这个问题。

3. 这样设置改的是 AppNode 这个进程的 ulimit 值,因此是生效的。

4. 通过 SSH 卸载受控端并重装,因为 AppNode 是由 SSH session 启动的,因此此后 AppNode 进程的 ulimit 继承了 SSH session 的值,也就是 limits.conf 里的值,因此会生效。

5. 重启服务器后,AppNode又变为由系统启动,不产生 session,因此 limits.conf 不生效。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册社区账号

本版积分规则

温馨提示
为了能您的问题能够尽快得到解决,复杂问题建议您直接提交工单处理。
QQ群:744188

Archiver|手机版|AppNode 用户社区

GMT+8, 2018-1-22 10:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回列表