Я создаю сервер solr (на Ubuntu 18.04, используя репо solr-common и solr-jetty). При запуске solr сообщал, что nfile и nproc (1024, 6721 соответственно) были установлены слишком низко. Я побежал systemctl edit solr
и создал переопределение следующим образом:
[Service]
LimitNOFILE=65000
LimitNPROC=65000
Затем я перезапустил службу - solr все еще сообщает о той же проблеме.
Я добавил /etc/security/limits.d/solr, содержащий:
solr hard nofile 65535
solr soft nofile 65535
solr hard nproc 65535
solr soft nproc 65535
Он по-прежнему сообщает о той же проблеме после перезапуска службы:
# systemctl status solr
● solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; generated)
Drop-In: /etc/systemd/system/solr.service.d
└─override.conf
Active: active (exited) since Mon 2020-03-30 14:55:49 BST; 6s ago
Docs: man:systemd-sysv-generator(8)
Process: 6848 ExecStop=/etc/init.d/solr stop (code=exited, status=0/SUCCESS)
Process: 6973 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Mar 30 14:55:43 dev-a01-si-solr.bip solr[6973]: *** [WARN] *** Your open file limit is currently 1024.
Mar 30 14:55:43 dev-a01-si-solr.bip solr[6973]: It should be set to 65000 to avoid operational disruption.
Mar 30 14:55:43 dev-a01-si-solr.bip solr[6973]: If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Mar 30 14:55:43 dev-a01-si-solr.bip solr[6973]: *** [WARN] *** Your Max Processes Limit is currently 6721.
Mar 30 14:55:43 dev-a01-si-solr.bip solr[6973]: It should be set to 65000 to avoid operational disruption.
Mar 30 14:55:43 dev-a01-si-solr.bip solr[6973]: If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Mar 30 14:55:49 dev-a01-si-solr.bip solr[6973]: [194B blob data]
Mar 30 14:55:49 dev-a01-si-solr.bip solr[6973]: Started Solr server on port 8983 (pid=7045). Happy searching!
Mar 30 14:55:49 dev-a01-si-solr.bip solr[6973]: [14B blob data]
Mar 30 14:55:49 dev-a01-si-solr.bip systemd[1]: Started LSB: Controls Apache Solr as a Service.
Что я здесь делаю не так?
Обновить После изменения /etc/systemd/system.conf, чтобы он содержал ...
DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
Solr больше не жалуется на ограничение файла, но по-прежнему жалуется на ограничение процесса. Какого черта?
Drop-In: /etc/systemd/system/solr.service.d
└─override.conf
Active: active (exited) since Mon 2020-03-30 15:21:59 BST; 14s ago
Docs: man:systemd-sysv-generator(8)
Process: 1141 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Mar 30 15:21:51 dev-a01-si-solr.bip solr[1141]: If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Mar 30 15:21:51 dev-a01-si-solr.bip solr[1141]: *** [WARN] *** Your Max Processes Limit is currently 6721.
Mar 30 15:21:51 dev-a01-si-solr.bip solr[1141]: It should be set to 65000 to avoid operational disruption.
Mar 30 15:21:51 dev-a01-si-solr.bip solr[1141]: If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
Mar 30 15:21:51 dev-a01-si-solr.bip solr[1141]: Warning: Available entropy is low. As a result, use of the UUIDField, SSL, or any other features that require
Mar 30 15:21:51 dev-a01-si-solr.bip solr[1141]: RNG might not work properly. To check for the amount of available entropy, use 'cat /proc/sys/kernel/random/entropy_avail'.
Mar 30 15:21:59 dev-a01-si-solr.bip solr[1141]: [230B blob data]
Mar 30 15:21:59 dev-a01-si-solr.bip solr[1141]: Started Solr server on port 8983 (pid=1459). Happy searching!
Mar 30 15:21:59 dev-a01-si-solr.bip solr[1141]: [14B blob data]
Mar 30 15:21:59 dev-a01-si-solr.bip systemd[1]: Started LSB: Controls Apache Solr as a Service.
Исправление user.conf для соответствия не помогло.
Обновление 2 Что ж, это становится все лучше и лучше. Предупреждение nfile исчезло после перезагрузки хоста. Когда я впоследствии бегу systemctl restart solr
Я получаю это:
Mar 30 15:39:21 dev-a01-si-solr.bip solr[2503]: *** [WARN] *** Your open file limit is currently 1024.
Mar 30 15:39:21 dev-a01-si-solr.bip solr[2503]: It should be set to 65000 to avoid operational disruption.
FFS!
Итак, куда я положил этот компакт-диск Centos 5?
Обновление 3
Оказывается, это уже не был упакованный solr. Мне неизвестно, у кого-то возникли проблемы с тем, чтобы исходная сборка работала, и он нашел в Интернете руководство по установке из архива. Итак, теперь у меня есть система с наполовину tarball / half repo solr, которую мы не можем исправить / обновить.
В Ubuntu 18.04 solr фактически запускается сценарием initV, вызываемым из systemd.
Я избавился от предупреждений
1) удаление /etc/security/limits.d/solr и добавление следующего в /etc/security/limits.conf:
* hard nofile 2048
* hard nproc 2048
root hard nofile unlimited
root soft nofile unlimited
root hard nproc unlimited
root soft nproc unlimited
solr hard nofile 65535
solr soft nofile 65535
solr hard nproc 65535
solr soft nproc 65535
2) Добавьте это в начало /etc/init.d/solr
ulimit -n 65000
ulimit -u 65000
(хотя строка -u, похоже, ничего не делает)
3) running (бег) systemctl daemon-reload
4) делать жесткую перезагрузку
И предупреждения держатся подальше, когда я бегу systemctl reload solr
.
Но теперь у меня есть боты конфигурации, разбросанные повсюду, и мне нужно обрезать некоторые из них.