Openfire进程不遵循limits.conf中的ulimit nofiles值

时间:2016-10-07 06:24:00

标签: linux centos openfire ulimit

我在

中设置了以下值

/etc/security/limits.conf文件

*          hard    nofile   1048576
*          soft    nofile   1048576
openfire   hard    nofile   1048576
openfire   soft    nofile   1048576

我希望openfire进程将其值设置为相同。但是,当我做一个openfire的PID时。它只显示'Max open files'的值为4096。

cat / proc / 178747 / limits

Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             255821               255821               processes
Max open files            4096                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       255821               255821               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

如何配置我的机器(Centos 7),以便Openfire进程遵循limits.conf中设置的值

2 个答案:

答案 0 :(得分:1)

CentOS7使用systemd来设置自己的限制。

LimitNOFILE=65536的[Service]部分中添加/etc/systemd/system/openfire.service,然后重新启动服务应该可以解决问题。

背景:Systemd忽略limits.conf中的配置。

  1. 最大值为默认值。打开文件的数量,在旧系统上为4096,在新系统上为64k。所有未明确更改限制的“单位”都将继承此限制。

  2. 此默认值可以在/etc/systemd/system.conf中的选项“ DefaultLimitNOFILE =“

  3. 中覆盖
  4. 每个“单位”都可以在单位定义文件中配置(请参见上文)

答案 1 :(得分:0)

/etc/security/limits.conf更改在系统重新启动时很方便,对于当前状态,您应该在终端上执行“ulimit -n 1048576”,然后重新启动openfire服务并进行验证。这将立即适用。