使用SystemD运行Solr:在运行时应用的用户限制(ulimit)与配置的限制不同

时间:2018-06-25 07:12:01

标签: solr systemd

我正在尝试将solr作为SystemD服务运行。当我启动服务时,收到此警告,然后solr服务器停止。

jun 22 16:20:07 solr_start[1488]: *** [WARN] ***  Your Max Processes Limit is currently 14972.
jun 22 16:20:07 solr_start[1488]: It should be set to 65000 to avoid operational disruption.
jun 22 16:20:07 solr_start[1488]: If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
jun 22 16:20:09 solr_start[1488]: Warning: Available entropy is low. As a result, use of the UUIDField, SSL, or any other features that require
jun 22 16:20:09 solr_start[1488]: RNG might not work properly. To check for the amount of available entropy, use 'cat /proc/sys/kernel/random/entropy_avail'.
jun 22 16:20:14 solr_start[1488]: [146B blob data]
jun 22 16:20:14 solr_start[1488]: Started Solr server on port 8983 (pid=1579). Happy searching!
jun 22 16:20:15 solr_stop[1680]: Sending stop command to Solr running on port 8983 ... waiting up to 180 seconds to allow Jetty process 1579 to stop gracefully.

我检查了https://github.com/apache/lucene-solr/blob/master/solr/bin/solr#L1509处的代码。 我可以看到solr对ulimit -u和ulimit -n进行了检查。

奇怪的是,我确保SystemD将以“ solr”用户身份运行solr服务器。

[Unit]
Description=Apache SOLR
After=syslog.target network.target remote-fs.target nss-lookup.target systemd-journald-dev-log.socket
Before=multi-user.target
[Service]
User=solr
#PIDFile=/mnt/solrdata/solr-8983.pid
Environment=SOLR_INCLUDE=/opt/solr/bin/solr.in.sh
ExecStart=/opt/solr/bin/solr_start
ExecStop=/opt/solr/bin/solr_stop
#Restart=on-failure
[Install]
WantedBy=multi-user.target​

这个“ solr”用户(我特别配置为运行Solr服务器)可以创建无限数量的进程并打开无限数量的文件。

[solr@xxx ~]# ulimit -n
unlimited
[root@xxx ~]# ulimit -u
unlimited

当SystemD启动solr时,我看到它使用正确的用户(我配置的“ solr”用户)。但是我看到了上面的错误。

当我直接与“ solr”用户运行solr时(对于SystemD则不行),它会起作用。

为什么我自己运行Solr服务器时在运行时应用的用户限制与SystemD运行时所使用的限制不同?

1 个答案:

答案 0 :(得分:1)

根据/etc/security/limit.conf中定义的this限制不适用于systemD。

要在systemD单位文件中定义新限制,请在服务部分添加以下行:

LimitNOFILE=65000
LimitNPROC=65000

有关完整列表,请参见the man page