LINUX.ORG.RU
ФорумAdmin

Как избавиться от too many open files 3proxy

 ,


2

2

Всем доброго дня!

Я не сильно шарю в Линуксе, разве что, на уровне любителя.

Настраиваю IPv6-прокси, поначалу все работает, через день или два начинаются траблы - то работают прокси, то нет. То валидны, то нет, плавающая такая проблема.

В логе пишет, что too many open files.

Пробовал расширить лимиты через команды в терминале, не помогает. Перезапуск процесса прокси-сервера дает положительный результат, но потом через время проблема опять повторяется.

Кто может подсказать, как решить проблему? И вообще дело именно в too many open files или может быть в чем-то другом?

Ответ на: комментарий от anonymous

Вводил это, пробовал такое же значение и 600000, но не помогает ни то, ни другое.

Yura1206 ()
Ответ на: комментарий от Yura1206

В смысле?

exit

делал? а потом обратно зайти. Лимиты изменились?

anonymous ()
Ответ на: комментарий от anonymous

Вот это не проверял. А как посмотреть изменились лимиты или нет?

Yura1206 ()

Если 3proxy стартует с помощью systemd, лимит на open max files надо выставлять в соответствующим unit файле

[Unit]
Description=Some Daemon
After=syslog.target network.target

[Service]
Type=notify
LimitNOFILE=99999
ExecStart=/usr/sbin/somedaemon

[Install]
WantedBy=multi-user.target

menzoberronzan ()
Ответ на: комментарий от lasthappy

Посмотрел. Изначально там лимит 250000. Ввожу в командную строку сервера через SHH ulimit -n 999999. Проверяю снова это количество, да, оно показывает 999999. Выхожу из сервера, захожу снова, проверяю количество, а оно опять 250000.

Не сохраняется в общем. Как сделать, чтобы сохранялось?

Yura1206 ()
Ответ на: комментарий от anonymous

Если этот 3proxy течёт, ему хоть лярд выстави.

anonymous ()
Ответ на: комментарий от Yura1206

Создать или отредактировать файл:/etc/systemd/system/3proxy.service.d/limits.conf

Приведя его к виду:

[Service]

LimitNOFILE=999999

Если же балом править не systemd, то нужно править Файл /etc/security/limits.conf, добавив в него:

* hard nofile 999999

* soft nofile 999999

lasthappy ()
Ответ на: комментарий от lasthappy

Вот у меня второй вариант. Кстати, вчера и нашел, как сделать. Правда, там несколько полей с nofile, со звездочкой, как вы написали и без звездочек. Я везде выставил 999999 и потом сохранил файл. Теперь значение действует всегда.

Спасибо за подсказку, если бы не нашел ранее инфу, мне бы она помогла.

Yura1206 ()
Ответ на: комментарий от lasthappy

Все равно в логе появились позже уведомления, что too many open files и прокси легли... После перезагрузки процесса прокси-сервера восстановились, а также даже ресет VDS не помог.

Куда копать?)

Yura1206 ()
Ответ на: комментарий от Yura1206

полную строчку ошибки из лога(и пару соседних строк прихвати, чо уж там). Ну и версию дистрибутива и версию самого 3proxy - в студию.

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

L0.0.0.0 - - [28/Mar/2018:02:31:57 -0400] «accept(): Too many open files» 00000 0 0 PROXY/2a07:4dc0:2ca:40bd:acd:73:af:9f1:0 L176.121.175.200 - test1 [28/Mar/2018:02:31:57 -0400] «CONNECT http://www.instagram.com:443 HTTP/1.1» 00011 0 0 PROXY/2a03:2880:f216:e5:face:b00c:0:4420:443 L176.121.175.200 - test1 [28/Mar/2018:02:31:57 -0400] «CONNECT http://www.instagram.com:443 HTTP/1.1» 00011 0 0 PROXY/2a03:2880:f216:e5:face:b00c:0:4420:443 L0.0.0.0 - - [28/Mar/2018:02:31:57 -0400] «accept(): Too many open files» 00000 0 0 PROXY/2a07:4dc0:2ca:959a:2:4d3:a:9c:0 L176.121.175.200 - test1 [28/Mar/2018:02:31:57 -0400] «CONNECT http://www.instagram.com:443 HTTP/1.1» 00011 0 0 PROXY/2a03:2880:f216:e5:face:b00c:0:4420:443

Debian 7. 3proxy 0.8.8 (на более поздних версиях то же самое).

Yura1206 ()
Ответ на: комментарий от Yura1206

Сдаётся мне настройки nofile не применились. В качестве грубого костыля попробуй вставить команду ulimit в init-скрипт...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Yura1206

ты всё же попробуй, я в своё время со squid-ом наплясался с ulimit-ом(там еще отдельный параметр для этого есть)... кстаати...

Дай-ка сам конфиг 3proxy. А то мало ли... Может там тебе maxconn надо поднять

Собственно официальный гайд по оптимизации(в том числе есть команда для съема лимитов в файл)

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Yura1206

ну крути тогда те настройки с ulimit через конфиг 3proxy из гайда

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Наугад не могу, так как могу забуровить сервер человеку... Надо, чтобы точно знать, что делать. Но спасибо за подсказки.

Yura1206 ()
Ответ на: комментарий от Yura1206

Попробуй еще в этом файле /etc/sysctl.conf задать:

fs.file-max = 999999

Применить изменения командой sysctl -p или перезагрузкой

lasthappy ()
Ответ на: комментарий от lasthappy

Зашел в файл. Там такой строки не было, везде только были строки с # (комментарии).

Вставил эту строку вниз файла без решетки. Сохранил. Ввел команду для применения изменений Вашу.

Отобразилось это: http://joxi.ru/v297M0gc3xwJpr

Так и должно быть?

Yura1206 ()
Ответ на: комментарий от Pinkbyte

Потому что systemctl daemon-reload надо делать, если conf-файл мутился не через systemctl edit

Radjah ★★★★★ ()
Ответ на: комментарий от lasthappy

Не используется. Я попытался зайти в этот файл, открыло пустое окно, насколько помню.

Кстати, после ваших советов, которые я применил, пока что все работает и не было того предупреждения в логе.

Я сам еще, правда, расширил u лимиты тоже до 999999 (процессы). Может, и это возымело эффект. Но точно не знаю, я не линуксхакер))

Yura1206 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.