BSD общий лимит дескрипторов сокетов и файлов

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
jet8001
проходил мимо
Сообщения: 3
Зарегистрирован: 2015-02-03 16:29:38

BSD общий лимит дескрипторов сокетов и файлов

Непрочитанное сообщение jet8001 » 2015-02-03 16:58:56

система FreeBSD 8/9/10

в sysctl прописано

kern.maxfiles: 204800
kern.maxfilesperproc: 200000

все действия производятся под рутом

отдельно взятый процесс даёт открыть только 32764 файловых дескрипторов (32768 / 0x8000 вероятно лимит вместе с откртыми системой изначально)

если открыть 32768 сокетов, то файлов можно открыть после этого 0 (НОЛЬ)
(дальше ошибка - EMFILE /* Too many open files */)
хотя сокеты можно продолжать открывтаь до лимита в 200к, прописанного в sysctl
само собой если в это время смотреть в kern.openfiles, то до kern.maxfilesperproc: 200000 там очень далеко

тоесть вот этот лимит непонятный в 32768 он общий на файлы и сокеты открытые, но при заполнениии сокеты его игнорируют, а файлы нет

не понятно почему он вообще есть и почему он отличается от того, что висит в sysctl
есть мысли как его можно увеличить?

Отправлено спустя 25 минут :
getrlimit c параметром RLIMIT_OFILE возвращает 200000 / 200000
собственно как и должно быть в соответствии с kern.maxfilesperproc

но откуда тогда берётся ограничение в 32768 на процесс?!?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Sadok123
сержант
Сообщения: 185
Зарегистрирован: 2008-09-04 10:59:32

BSD общий лимит дескрипторов сокетов и файлов

Непрочитанное сообщение Sadok123 » 2015-02-03 17:20:17

а в /etc/login.conf ничего не понапихано?

jet8001
проходил мимо
Сообщения: 3
Зарегистрирован: 2015-02-03 16:29:38

BSD общий лимит дескрипторов сокетов и файлов

Непрочитанное сообщение jet8001 » 2015-02-03 17:57:19

решено
у fopen, как оказалось, есть какие-то свои, особенные ограничения. нахрена они нужны и почему они игнорируют системные для меня загадка
open() в этом случае отрабатывает правильно

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35480
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

BSD общий лимит дескрипторов сокетов и файлов

Непрочитанное сообщение Alex Keda » 2015-02-03 18:23:12

Гуглите по форуму, я года 4 назад ковырялся.
Ключевое слово FD_SETSIZE столе

Вкратце, его надо в сорцах и в системных заголовках менять, пересобирать ядро, мир, весь софт

Отправлено спустя 1 минуту 51 секунду:
http://forum.lissyara.su/viewtopic.php? ... fd+setsize
Убей их всех! Бог потом рассортирует...

jet8001
проходил мимо
Сообщения: 3
Зарегистрирован: 2015-02-03 16:29:38

BSD общий лимит дескрипторов сокетов и файлов

Непрочитанное сообщение jet8001 » 2015-02-03 18:39:00

Alex, насчёт 2007 года не знаю, но сейчас эти параметры в ядре в норме
я уже отписал выше - проблема в libc / fopen

искать где там оно в сорцах libc и пересобирать не стал, заменил fopen на родной open