I tried everything, and have a little bastard and flood my server
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
PreMinidumpCallback: updating dump comment
Segmentation fault
Add «-debug» to the ./srcds_run command line to generate a debug.log to help with solving this problem
Sat Mar 17 01:03:19 BRT 2012: Server restart in 10 seconds
I have a lot of plugins to protect, but not resolvessssssssss
———————
0: «Source Python Extensions, 2009 — 2011, your-name-here»
1: «Metamod:Source 1.8.7»
2: «Mattie’s EventScripts, http://www.eventscripts.com, Version:2.1.1.370»
3: «DoS Attack Fixer, www.sourceop.com»
———————
Plugins of sourcemod:
06 «Resetscore» (1.1) by tuty
07 «Admin Help» (1.4.2-dev) by AlliedModders LLC
08 «i3D-Teleport» (1.11) by Tony G.
09 «Rock The Vote» (1.3.6) by AlliedModders LLC
10 «SourceMod Anti-Cheat» (0.7.5.1) by GoD-Tony, psychonic
11 «Basic Info Triggers» (1.4.2-dev) by AlliedModders LLC
12 «Reserved Slots» (1.4.2-dev) by AlliedModders LLC
13 «Kigen’s Anti-Cheat» (1.2.2.0) by CodingDirect LLC
14 «SourceBans» (1.4. by SourceBans Development Team
15 «Player Commands» (1.4.2-dev) by AlliedModders LLC
16 «Client Preferences» (1.4.2-dev) by AlliedModders LLC
17 «Admin Smite» (2.1) by Hipster
18 «Admin File Reader» (1.4.2-dev) by AlliedModders LLC
19 «Evento WCS» (0.1) by SoZika / Insanity Plugin
20 «gameME Plugin» (3.9) by TTS Oetzel & Goerz GmbH
21 «Basic Votes» (1.4.2-dev) by AlliedModders LLC
22 «Basic Commands» (1.4.1) by AlliedModders LLC
23 «Admin Menu» (1.4.2-dev) by AlliedModders LLC
24 «MapChooser» (1.3. by AlliedModders LLC
25 «SM Super Commands» (0.60) by pRED*
26 «Map Nominations» (1.3. by AlliedModders LLC
27 «Basic Chat» (1.4.1) by AlliedModders LLC
28 «[ANY] Rcon Password Protect» (1.0.0) by DarthNinja
29 «RealisticBulletSound» (1.2.3.9) by javalia
30 «Nextmap» (1.4.2-dev) by AlliedModders LLC
31 «Fun Votes» (1.4.2-dev) by AlliedModders LLC
32 «Noblock players and Nades» (2.0) by Originally by Tony G. Fixed by Rogue
33 «[Port] wcs_effects» (1.4.02) by joshtrav
34 «Basic Comm Control» (1.4.2-dev) by AlliedModders LLC
Now for example 01:05, the flood started by a noob! .-.
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
PLIS SOMEBODY CAN HELP MEEEEEEEE? :'(
THANKS
-
cssnik
- Сержант
- Сообщения: 80
- Зарегистрирован: 25.01.2011
- Откуда: Пространственно-временной континиум
#1
Сообщение
05.11.2011, 20:41
Вот эта вот скатина крашит сервер
Socket ProcessAccept Error: Too many open files
STV вкл/выкл значения не имеет
DospProtect стоит
Есть правила iptables от UDP флуда
Кроме бана IP есть средство защиты?
Добавлено спустя 20 часов 17 минут 9 секунд:
Ну так что, никто ещё не сталкивался?
Видать пока, как гооворится, петух в жопу не клюнет, никто и не подумает поднимать её…
щас тогда соберу ваши IP ваших серверов и отправлю ему, чтобы по крашил малясь)) может тогда зашевелитесь…
-
Jeka
- Майор
- Сообщения: 624
- Зарегистрирован: 28.03.2009
- Поблагодарили: 11 раз
#2
Сообщение
05.11.2011, 20:47
покажи правила в iptables и логи системы (messages или что у тебя там)
Три ярких цвета — это Российский флаг !
Если ты не патриот, ты не русский, а мудак !
-
kadet89
- Майор
- Сообщения: 557
- Зарегистрирован: 26.12.2006
#3
Сообщение
05.11.2011, 23:35
В лине помоему ограничение на процесс — 1000 открытых соединений. В фаере запрети открывать более 2-х соединений на один внешний ip.
-
AnTiSpameR
- Капитан
- Сообщения: 458
- Зарегистрирован: 11.10.2008
- Откуда: Belarus
- Поблагодарили: 31 раз
- Контактная информация:
#4
Сообщение
06.11.2011, 01:18
лол он мне тоже все сервера ложил, и требовал шапки =) я дал ему бандл и он отстал.
-
kadet89
- Майор
- Сообщения: 557
- Зарегистрирован: 26.12.2006
#5
Сообщение
06.11.2011, 13:59
AnTiSpameR вы предлогаете идти на провокации? Лично я никогда, пускай хоть удосит сервер до недельной остановки.
Если вы уступили с шапками, с чего вы уверены что он не попросит что-то ещё?
По моему опыту интерес у школьников угасает на третий день безрезультатного доса.
-
Jeka
- Майор
- Сообщения: 624
- Зарегистрирован: 28.03.2009
- Поблагодарили: 11 раз
#6
Сообщение
06.11.2011, 14:02
хотелось бы увидеть правила, которые автор топика написал от DDoS’a.
Если там один перец ДДоСит, то ДДоС отбить как 2 байта переслать. Форум же ксмании мы отблили от ДДоСа Вернее его ДДоСят, но как бы вы же тут сидите и всё в порядке, на быстродействии даже не отображается. Кто мешает по аналогии сделать и с игровым сервером ? )
Три ярких цвета — это Российский флаг !
Если ты не патриот, ты не русский, а мудак !
-
Jeka
- Майор
- Сообщения: 624
- Зарегистрирован: 28.03.2009
- Поблагодарили: 11 раз
#8
Сообщение
06.11.2011, 15:25
cuttep писал(а):надо поставить и настроить связку fail2ban+iptables
главное регулярку описать там правильно
а вообще все плагины «с защитой от ддоса» по сравнению со связкой fail2ban+iptables (ipfw в случае с freebsd) — полный шлак и лажа — такую защиту как fail2ban+iptables/ipfw ни один плагин не даст
Три ярких цвета — это Российский флаг !
Если ты не патриот, ты не русский, а мудак !
-
Deus_Ex_Machina
- Капитан
- Сообщения: 492
- Зарегистрирован: 23.05.2010
- Благодарил (а): 14 раз
- Поблагодарили: 43 раза
- Контактная информация:
#9
Сообщение
06.11.2011, 15:41
щас тогда соберу ваши IP ваших серверов и отправлю ему, чтобы по крашил малясь)) может тогда зашевелитесь…
Пошел вон.
лол он мне тоже все сервера ложил, и требовал шапки =) я дал ему бандл и он отстал.
Написал бы жалобу в саппорт/форму на странице коммунити с нотариально заверенными скриншотами, авось забанили бы к чертям.
-
AnTiSpameR
- Капитан
- Сообщения: 458
- Зарегистрирован: 11.10.2008
- Откуда: Belarus
- Поблагодарили: 31 раз
- Контактная информация:
#10
Сообщение
06.11.2011, 18:25
kadet89 писал(а):AnTiSpameR вы предлогаете идти на провокации? Лично я никогда, пускай хоть удосит сервер до недельной остановки.
Если вы уступили с шапками, с чего вы уверены что он не попросит что-то ещё?
По моему опыту интерес у школьников угасает на третий день безрезультатного доса.
Я нечего не предлагаю (я тоже думал некогда — ну пришлось? онлайн на серверах важнее) просто написал, как было. А бандл у меня лишний был. Сервера ложил на протижении двух недель, даже больше. Дал бандл и я его больше не вижу и не слышу, просто он еще ложил сервера, где я играю pcw.
-
cuttep
- Капитан
- Сообщения: 446
- Зарегистрирован: 26.06.2010
- Откуда: http://www.evoplay.ru
- Поблагодарили: 1 раз
- Контактная информация:
#11
Сообщение
14.11.2011, 22:41
Socket ProcessAccept Error: Too many open files
аналогичная ситуация, не могу пофиксеть падение сервера от Атаки
fail2ban+iptables не помогают, плагины, адоны защиты тоже
http://www.evoplay.ru
-
Deus_Ex_Machina
- Капитан
- Сообщения: 492
- Зарегистрирован: 23.05.2010
- Благодарил (а): 14 раз
- Поблагодарили: 43 раза
- Контактная информация:
#12
Сообщение
15.11.2011, 19:59
cuttep
Посмотри, кто провайдер атакующего, напиши им в техпо.
-
tarelka95
- Лейтенант
- Сообщения: 139
- Зарегистрирован: 11.11.2009
- Поблагодарили: 9 раз
- Контактная информация:
#14
Сообщение
21.11.2011, 08:42
Jeka писал(а):хотелось бы увидеть правила, которые автор топика написал от DDoS’a.
Если там один перец ДДоСит, то ДДоС отбить как 2 байта переслать. Форум же ксмании мы отблили от ДДоСаВернее его ДДоСят, но как бы вы же тут сидите и всё в порядке, на быстродействии даже не отображается. Кто мешает по аналогии сделать и с игровым сервером ? )
небольшая поправка
если 1 перец посылает кучу пинг запросов, то это DOS — атака.
если несколько перцев, точнее один главный перец, а другие зомби-перцы(имеется ввиду заражены вирусом, который ставит комп под управление главного перца) посылают кучу пинг запросов, то это называется DDOS — атака.
я думаю что сервер ложит 1 перец, просто не пинг запросы посылает, а что-то другое…(возможно инфу о коннекте перца на серв xD)
«Главное скилл, а не девайсы!»
«Все нужно делать с юмором», — сказал палач и начал рубить голову дольками.
«За мать Орду, за батьку Тралла, начистим аликам <…>.» — кричалка ордынцев из игры World of Warcraft
Steam Wallet xD
Admin писал(а):Попросите модератора поднять репутацию оказавшему вам помощь человеку через кнопку «Жалоба»!
-
cuttep
- Капитан
- Сообщения: 446
- Зарегистрирован: 26.06.2010
- Откуда: http://www.evoplay.ru
- Поблагодарили: 1 раз
-
Контактная информация:
#15
Сообщение
21.11.2011, 16:28
tarelka95 писал(а):
Jeka писал(а):хотелось бы увидеть правила, которые автор топика написал от DDoS’a.
Если там один перец ДДоСит, то ДДоС отбить как 2 байта переслать. Форум же ксмании мы отблили от ДДоСаВернее его ДДоСят, но как бы вы же тут сидите и всё в порядке, на быстродействии даже не отображается. Кто мешает по аналогии сделать и с игровым сервером ? )
небольшая поправка
если 1 перец посылает кучу пинг запросов, то это DOS — атака.
если несколько перцев, точнее один главный перец, а другие зомби-перцы(имеется ввиду заражены вирусом, который ставит комп под управление главного перца) посылают кучу пинг запросов, то это называется DDOS — атака.я думаю что сервер ложит 1 перец, просто не пинг запросы посылает, а что-то другое…(возможно инфу о коннекте перца на серв xD)
я пофиксел в линухах модулем connlimit либо iplimit
http://www.evoplay.ru
-
#1
Заметил это недавно! Весь день играют люди на сервере, но утром захожу на сервер и все… спавнюсь и боты тоже и все двигаться и стрелять невозможно. Сначала грешил на карту, но после удаления нескольких карт проблема осталась.
Может у кого то была такая проблема и есть ее решение?
-
zombiereloaded.cfg
26.3 КБ
· Просмотры: 4
-
gamemode_casual_server.cfg
4 КБ
· Просмотры: 5
-
#3
ах да забыл прастите сервер CSGO на линух
Вип не стоит
сокет только тот что втроен в сурсмод (1.7.2)
-
#4
Юра Шмигель, а если ботов убрать,все нормально?
-
#5
ах да забыл прастите
сервер CSGO на линух
Вип не стоит
сокет только тот что втроен в сурсмод (1.7.2)
В SourceMod нет Socket-а, и Вы не ответили насчёт спама в консоль сервера…
-
#6
В SourceMod нет Socket-а, и Вы не ответили насчёт спама в консоль сервера…
Как проблема повторится отпишусь насчет спама
Добавлено через 45 секунд
Юра Шмигель, а если ботов убрать,все нормально?
попробую отпишусь
Последнее редактирование: 21 Июн 2015
-
#7
В SourceMod нет Socket-а, и Вы не ответили насчёт спама в консоль сервера…
В консоли идет вот такой спам
Teleport trigger 'spawn SECURE' cannot find destination named 'zombie spawn'!
Попробовал убрать ботов… посмотрим повторится ли этот косяк.
-
#8
В консоли идет вот такой спам
Teleport trigger 'spawn SECURE' cannot find destination named 'zombie spawn'!
Попробовал убрать ботов… посмотрим повторится ли этот косяк.
Объясни подробнее двигаться и стрелять нельзя через какой-то время или как?
Еще список плагинов не помешал бы
Попробуй эти параметры изменить на 0 скажешь будет такое или нет
// Automatically unstick players when stuck within each others’ collision hull.
// Default: «1»
zr_antistick «1»
// Player will be protected from infection when spawning into the game late.
// Default: «1»
zr_spawnprotect «1»
Кфг нечего странного не нашел кроме эти 2 параметра надеюсь поможет если нет то обнови зм до последнего версии этот релиз обновлен сегодня 7 утра http://helgeby.no-ip.org/zrdev/release/auto/zr-3.1/zombiereloaded-3.1-patch-r731-r749.zip
-
#9
Объясни подробнее двигаться и стрелять нельзя через какой-то время или как?
Еще список плагинов не помешал бы
Попробуй эти параметры изменить на 0 скажешь будет такое или нет
// Automatically unstick players when stuck within each others’ collision hull.
// Default: «1»
zr_antistick «1»// Player will be protected from infection when spawning into the game late.
// Default: «1»
zr_spawnprotect «1»Кфг нечего странного не нашел кроме эти 2 параметра надеюсь поможет если нет то обнови зм до последнего версии этот релиз обновлен сегодня 7 утра http://helgeby.no-ip.org/zrdev/release/auto/zr-3.1/zombiereloaded-3.1-patch-r731-r749.zip
Да именно ни двигаться ни стрелять невозможно было.
Список плагинов безсмыслено давать — с теме же плагинами паблик и гунгейм сервера работают как часики. (тоесть проблема именно в зомбирелоадед)
zr_antistick «1» и zr_spawnprotect «1» отвечают совершенно за другое
Добавлено через 1 минуту
Залип игроков вроде не происходит при полностью отключенных ботах но еще буду смотреть
Последнее редактирование: 24 Июн 2015
-
#10
Юра Шмигель, ну ка дай список плагинов,может конфликт есть какой то
-
#11
Юра Шмигель, ну ка дай список плагинов,может конфликт есть какой то
![]()
Это наврятли дело было в ботах походу
Очень часто при работе на высоконагруженных Linux серверах могут возникать ошибки “too many open files”. Это означает, что процесс открыл слишком много файлов (читай файловых дескрипторов) и не может открыть новые. В Linux ограничения “max open file limit“ установлены по умолчанию для каждого процесса и пользователя, и они не слишком высокие.
В данной статье мы рассмотрим, как проверить текущие ограничения на количество открытых файлов в Linux, как изменить этот параметр для всего сервера, для отдельных сервисов и для сеанса. Статья применима для большинства современных дистрибутивов Linux (Debian, Ubuntu, CentOS, RHEL, Oracle Linux, Rocky и т.д.)
Содержание:
- Ошибка: Too many open files и лимиты на количество открытых файлов в Linux
- Глобальные ограничения на количество открытых файлов в Linux
- Увеличить лимит открытых файловых дескрипторов для отдельного сервиса
- Увеличить количество открытых файлов для Nginx и Apache
- Лимиты file-max для текущей сессии
Ошибка: Too many open files и лимиты на количество открытых файлов в Linux
Чаще всего ошибку “too many open files“. Чаще всего эта ошибка встречается на серверах с установленным веб-сервером NGINX/httpd, сервером БД (MySQL/MariaDB/PostgreSQL), при чтении большого количества логов. Например, когда веб-серверу Nginx не хватает лимита для открытия файлов, вы получите ошибку:
socket () failed (24: Too many open files) while connecting to upstream
Или:
HTTP: Accept error: accept tcp [::]:<port_number>: accept4: too many open files.
В Python:
OSError: [Errno 24] Too many open files.
Максимально количество файловых дескрипторов, которые могут быть открыты в вашей файловой системе всеми процессами можно узнать так:
# cat /proc/sys/fs/file-max
Чтобы узнать, сколько файлов открыто сейчас, выполните:
$ cat /proc/sys/fs/file-nr
7744 521 92233720
- 7744 — суммарное количество открытых файлов
- 521– число открытых файлов, но которые сейчас не используются
- 92233720– максимальное количество файлов, которое разрешено открывать
В Linux ограничение на максимальное количество открытых файлов можно натсроить на нескольких уровнях:
- Ядра ОС
- Сервиса
- Пользователя
Чтобы вывести текущее ограничение на количество открытых файлов в ядре Linux, выполните:
# sysctl fs.file-max
fs.file-max = 92233720
Выведем ограничение на количество открытых файлов для одного процесса текущего пользователя:
# ulimit -n
По умолчанию количество файлов для одного процесса этого ограничено числом 1024.
Выведем максимальное количество для одного пользователя (max user processes):
# ulimit –u
5041
Умножаем 1024 * 5041 дает нам 5161984 – это максимально количество открытых файлов всеми процессами пользователя.
В Linux есть два типа ограничений на количество открытых файлов: Hard и Soft. Soft ограничения носят рекомендательный характер, при превышении значения пользователь будет получать предупреждения. Если количество открытых файлов превысило hard лимит, пользователь не сможет открыть новые файлы пока не будет закрыты ранее открытые.
Для просмотра текущих лимитов используется команда ulimit с опцией
-S
(soft) или
-H
(hard) и параметром
-n
(the maximum number of open file descriptors).
Для вывода Soft-ограничения:
# ulimit -Sn
Для вывода Hard-ограничения:
# ulimit -Hn
Глобальные ограничения на количество открытых файлов в Linux
Чтобы разрешить всем сервисам открывать большее количество файлов, можно изменить лимиты на уровне всей ОС Linux. Чтобы новые настройки работали постоянно и не сбрасывались при перезапуске сервера или сессии, нужно поправить файл /etc/security/limits.conf. Строки с разрешениями выглядит так:
Имя_пользователя тип_огрничение название_ограничения значение
Например:
apache hard nofile 978160 apache soft nofile 978160
Вместо имени пользователя можно указать
*
. Это означает, что это ограничение будет применяться для всех пользователей Linux:
* hard nofile 97816 * soft nofile 97816
Например, вы получили ошибку too many open files для nginx. Проверьте, сколько файлов разрешено открывать процессу этому пользователю:
$ sudo -u nginx bash -c 'ulimit -n'
1024
Для нагруженного сервера этого недостаточно. Добавьте в /etc/security/limits.conf строки
nginx hard nofile 50000 nginx soft nofile 50000
В старых ядрах Linux значение fs.file-max может быть равно 10000. Поэтому проверьте это значение и увеличьте его, чтобы оно было больше чем ограничение в limits.conf:
# sysctl -w fs.file-max=500000
Это временно увеличит лимит. Чтобы новые настройки стали постоянными, нужно добавить в файл /etc/sysctl.conf строку:
fs.file-max = 500000
Проверьте, что в файле /etc/pam.d/common-session (Debian/Ubuntu или /etc/pam.d/login для CentOS/RedHat/Fedora) есть строчка:
session required pam_limits.so
Если нет, добавьте ее в конец. Она нужна, чтобы ограничения загружались при авторизации пользователя.
После изменений, перезапустите терминал и проверьте значение лимита max_open_files:
# ulimit -n
97816
Увеличить лимит открытых файловых дескрипторов для отдельного сервиса
Вы можете изменить лимит на количество открытых файловых дескрипторов для конкретного сервиса, а не для всей системы. Рассмотрим на примере apache. Чтобы изменить значения, откройте настройки службы через systemctl:
# systemctl edit httpd.service
Добавьте необходимые лимиты, например:
[Service] LimitNOFILE=16000 LimitNOFILESoft=16000
После изменения, нужно обновить конфигурацию сервиса и перезапустить его:
# systemctl daemon-reload
# systemctl restart httpd.service
Чтобы проверить, изменились ли значения, нужно получить PID сервиса:
# systemctl status httpd.service
Например, вы определил PID сервиса 32724:
# cat /proc/32724/limits | grep "Max open files”
Значение должно быть 16000.
Так вы изменили значения Max open files для конкретного сервиса.
Увеличить количество открытых файлов для Nginx и Apache
После того, как вы увеличил ограничения на количество открытых файлов для сервера, нужно также поправить конфигурационный файл службы. Например, для веб-сервера Nginx в файле конфигурации /etc/nginx/nginx.conf нужно задать значение в директиве:
worker_rlimit_nofile 16000
Директива worker_rlimit_nofile задает ограничение на количество файлов, открытых в рабочем процессе (
RLIMIT_NOFILE
). В Nginx файловые дескрипторы нужны для возврата статического файла из кэша для каждого подключения клиента. Чем больше пользователей использует ваш сервер и чем больше статических файлов отдает nginx, тем большее количество дескрипторов используется. Сверху максимальное количество дескрипторов ограничивается на уровне ОС и/или сервиса. При превышении количеств открытых файлов nginx появится ошибка
socket() failed (24: Too many open files) while connecting to upstream
.
При настройке Nginx на высоконагруженном 8-ядерном сервере с worker_connections 8192 нужно в worker_rlimit_nofile указать 8192*2*8 (vCPU) = 131072.
После чего выполнить рестарт Nginx:
# nginx -t && service nginx -s reload
Чтобы увидеть чисто открытых файлов для процессов пользователя nginx:
# su nginx
# ulimit –Hn
# for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done
Для apache, нужно создать директорию:
# mkdir /lib/systemd/system/httpd.service.d/
После этого создайте файл limit_nofile.conf:
# nano /lib/systemd/system/httpd.service.d/limit_nofile.conf
И добавьте в него:
[Service] LimitNOFILE=16000
Не забудьте перезапустить сервис httpd.
Лимиты file-max для текущей сессии
Чтобы изменить лимиты на открытые файлы в рамках текущей сессии пользователя, выполните команду:
# ulimit -n 3000
Если указать здесь значение большее, чем заданное в hard limit, появится ошибка:
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Когда вы завершите текущую сессию терминала и откроете новую, лимиты вернутся к начальным значениям, указанным в файле /etc/security/limits.conf.
В данной статье мы разобрались, как решить проблему с недостаточным лимитом для открытых файловых дескрипторов в Linux и рассмотрели несколько вариантов изменения лимитов на сервере.
Very often ‘too many open files’ errors occur on high-load Linux servers. It means that a process has opened too many files (file descriptors) and cannot open new ones. On Linux, the “max open file limit” is set by default per process or user and the values are rather small.
In this article, we’ll look at how to check the current limits on the maximum number of open files in Linux, and how to change this setting globally for the entire server, for specific services, and for a user session. The article is applicable to most modern Linux distros (Debian, Ubuntu, CentOS, RHEL, Oracle Linux, Rocky, etc.)
Contents:
- ‘Too Many Open Files’ Error and Open Files Limit in Linux
- How to Increase the Max Open Files Limit in Linux?
- Increase the Maximum Number of Open File Descriptors per Service
- How to Set Max Open Files for Nginx and Apache?
- Change the Open File Limit for the Current User Session
‘Too Many Open Files’ Error and Open Files Limit in Linux
First of all, let’s see where the ‘too many open files’ errors appear. Most often it occurs on the servers with an installed Nginx /httpd web server or a database server running MySQL/MariaDB/PostgreSQL when reading a large number of log files. For example, when an Nginx exceeds the open files limit, you will see an error:
socket () failed (29: Too many open files) while connecting to upstream
Or:
HTTP: Accept error: accept tcp [::]:<port_number>: accept4: too many open files.
In Python apps:
OSError: [Errno 24] Too many open files.
Using this command, you can get the maximum number of file descriptors your system can open:
# cat /proc/sys/fs/file-max
To find out how many files are currently open, run:
# cat /proc/sys/fs/file-nr
7122 123 92312720
- 7122 — total number of open files
- 123– number of open files that are not currently in use
- 92312720– maximum number of files allowed to be opened
In Linux, you can configure max open files limits at several levels:
- OS kernel
- Service
- User
To display the current limit on the number of open files in the Linux kernel, run:
# sysctl fs.file-max
fs.file-max = 92233720
Let’s display the open files limit for one process of the current user:
# ulimit -n
By default, the number of files for one process of this is limited to 1024.
Let’s display the maximum number for one user (max user processes):
# ulimit –u
5041
Multiplying 1024 * 5041
gives us 5161984
– this is the maximum number of open files by all user processes.
There are two types of limits on the number of open files: Hard and Soft. Soft limits are advisory. If the number of open files has exceeded the hard limit, the user won’t be able to open new files until the previously opened ones are closed.
To view the current limits, use the ulimit command with the -S
(soft) or -H
(hard) option and the -n
(the maximum number of open file descriptors) option.
To display the soft limit, run this command:
# ulimit –Sn
To display the hard limit value:
# ulimit -Hn
How to Increase the Max Open Files Limit in Linux?
To allow all services to open a large number of files, you can change the limits in your Linux OS. To make new settings permanent and prevent their reset after a server or session restart, you must make changes to /etc/security/limits.conf. This file allows limiting the number of various system resources available to a user process. Use the following format:
username restriction_type restriction_name value
For example:
apache hard nofile 978160 apache soft nofile 978160
You can use *
instead of a username. This means that this open files limit will apply to all Linux users:
* hard nofile 97816 * soft nofile 97816
For example, you got a too many open files error for Nginx. Check how many files this user process is allowed to open:
$ sudo -u nginx bash -c 'ulimit -n'
1024
This is not enough for a high-load server. Add the following lines to /etc/security/limits.conf:
nginx hard nofile 50000 nginx soft nofile 50000
On older Linux kernels, the value of fs.file-max may be set to 10000. So check this value and increase it so that it is greater than the number in limits.conf:
# sysctl -w fs.file-max=500000
This will temporarily increase the open file limit. To make the new settings permanent, you need to add the following line to the /etc/sysctl.conf file:
fs.file-max = 500000
And apply it:
# sysctl -p
Check that the file /etc/pam.d/common-session (Debian/Ubuntu) or /etc/pam.d/login (CentOS/RedHat/Fedora) contains the line:
session required pam_limits.so
If not, add it to the end of the config file. This parameter allows applying open file limits after user authentication.
After making any changes, re-open the console, and check the max_open_files value:
# ulimit -n
50000
Increase the Maximum Number of Open File Descriptors per Service
You can increase the max open file descriptors for a specific service, rather than for the entire operating system. Let’s take apache as an example. Open the service settings using systemctl:
# systemctl edit httpd.service
Add the limits you want, e.g.:
[Service] LimitNOFILE=16000 LimitNOFILESoft=16000
After making the changes, update the service configuration, and restart it:
# systemctl daemon-reload
# systemctl restart httpd.service
To check if the values have changed, get the service PID:
# systemctl status httpd.service
For example, the service PID is 3724:
# cat /proc/3724/limits | grep "Max open files"
The value must be 16000.
Thus, you have changed Max open files value for a specific service.
How to Set Max Open Files for Nginx and Apache?
After you have increased the limit on the number of open files for a server, you also have to change the service configuration file. For example, specify/change the following directive value in the Nginx configuration file /etc/nginx/nginx.conf:
worker_rlimit_nofile 16000
The worker_rlimit_nofile directive sets the limit on the number of files open by a worker process ( RLIMIT_NOFILE ). Nginx needs file descriptors to return a static file from the cache for each client connection. The more users connect to your server and the more static files Nginx returns, the more file descriptors are used. The maximum number of handles is limited at the OS and/or service level. If the number of open files in Nginx is exceeded, a “socket() failed (24: Too many open files) while connecting to upstream error
” will occur.
[alert]When configuring Nginx on a high load 8-core server with worker_connections 8192, you need to specify 8192*2*8 (vCPU) = 131072 in worker_rlimit_nofile.
Then restart Nginx.
# nginx -t && service nginx -s reload
To see the number of open files for Nginx user processes:
# su nginx
# ulimit –Hn
# for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done
For Apache, you need to create a directory:
# mkdir /lib/systemd/system/httpd.service.d/
Then create the limit_nofile.conf file:
# nano /lib/systemd/system/httpd.service.d/limit_nofile.conf
Add to it:
[Service] LimitNOFILE=16000
Don’t forget to restart the httpd service.
Change the Open File Limit for the Current User Session
To change the maximum open file limits for your current user session, run this command:
# ulimit -n 3000
If you specify a value here greater than that specified in the hard limit, an error will appear:
-bash: ulimit: open files: cannot modify limit: Operation not permitted
After closing the session and opening a new one, the limits will return to the initial values specified in /etc/security/limits.conf.
In this article, we have learned how to solve the issue when the value of open file descriptors limit in Linux is too small, and looked at several options for changing these limits on the server.
Linux users often come across the error, ‘Too Many Open Files’ due to high load in the server, leaving it hard for us to open multiple files.
We, at Bobcares have experienced similar error and our Server Administration Team have come up with effective solutions.
Today, let’s check how to find the limit of maximum number of open files set by Linux and how we alter it for an entire host, individual service or a current session.
Where can we find error, ‘Too Many Open Files’?
Since Linux has set a maximum open file limit by default, the system has a method for restricting the number of various resources a process can consume.
Usually the ‘Too Many Open Files’ error is found on servers with an installed NGINX/httpd web server or a database server (MySQL/MariaDB/PostgreSQL).
For example, when an Nginx web server exceeds the open file limit, we come across an error:
socket () failed (29: Too many open files) while connecting to upstream
To find the maximum number of file descriptors a system can open, run the following command:
# cat /proc/sys/fs/file-max
The open file limit for a current user is 1024. We can check it as follows:
# ulimit -n [root@server /]# cat /proc/sys/fs/file-max 97816 [root@server /]# ulimit -n 1024
There are two limit types: Hard and Soft. Any user can change a soft limit value but only a privileged or root user can modify a hard limit value.
However, the soft limit value cannot exceed the hard limit value.
To display the soft limit value, run the command:
To display the hard limit value:
‘Too Many Open Files’ error & Open File Limits in Linux
Now we know that these titles mean that a process has opened too many files (file descriptors) and cannot open new ones. In Linux, the maximum open file limits are set by default for each process or user and the values are rather small.
We, at Bobcares have monitored this closely and have come up with a few solutions:
Increase the Max Open File Limit in Linux
A large number of files can be opened if we change the limits in our Linux OS. In order to make new settings permanent and prevent their reset after a server or session restart, make changes to /etc/security/limits.conf. by adding these lines:
- hard nofile 97816
- soft nofile 97816
If it is using Ubuntu, add this line as well:
session required pam_limits.so
These parameters allow to set open file limits after user authentication.
After making the changes, reload the terminal and check the max_open_files value:
Increase the Open File Descriptor Limit per service
A change in the limit of open file descriptors for a specific service, rather than for an entire operating system is possible.
For example, if we take Apache, to change the limits, open the service settings using systemctl:
systemctl edit httpd.service
Once the service settings is open, add the limits required. For example;
[Service] LimitNOFILE=16000 LimitNOFILESoft=16000
After making the changes, update the service configuration and restart it:
# systemctl daemon-reload # systemctl restart httpd.service
To ensure the values have changed, get the service PID:
# systemctl status httpd.service
For example, if the service PID is 3724:
# cat /proc/3724/limits | grep “Max open files”
Thus, we can change the values for the maximum number of open files for a specific service.
Set Max Open Files Limit for Nginx & Apache
In addition to changing the limit on the number of open files to a web server, we should change the service configuration file.
For example, specify/change the following directive value in the Nginx configuration file /etc/nginx/nginx.conf:
worker_rlimit_nofile 16000
While configuring Nginx on a highly loaded 8-core server with worker_connections 8192, we need to specify
8192*2*8 (vCPU) = 131072 in worker_rlimit_nofile
Then restart Nginx.
For apache, create a directory:
# mkdir /lib/systemd/system/httpd.service.d/
Then create the limit_nofile.conf file:
# nano /lib/systemd/system/httpd.service.d/limit_nofile.conf
Add to it:
[Service] LimitNOFILE=16000
Do not forget to restart httpd.
Alter the Open File Limit for Current Session
To begin with, run the command:
Once the terminal is closed and a new session is created, the limits will get back to the original values specified in /etc/security/limits.conf.
To change the general value for the system /proc/sys/fs/file-max, change the fs.file-max value in /etc/sysctl.conf:
Finally, apply:
# sysctl -p [root@server /]# sysctl -p net.ipv4.ip_forward = 1 fs.file-max = 200000 [root@server /]# cat /proc/sys/fs/file-max 200000
[Despite all the above solutions if the issue still prevail, don’t panic. We have our Experienced Tech Team working round the clock to help you fix it for you.]
Conclusion
To conclude, today, we figured how our Support Engineers solve the error, ‘Too Many Open Files’ and discussed options to change the default limits set by Linux.
We saw that the default value of open file descriptor limit in Linux is too small, and discussed a few options for changing these limits of the server.
PREVENT YOUR SERVER FROM CRASHING!
Never again lose customers to poor server speed! Let us help you.
Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.
GET STARTED
var google_conversion_label = «owonCMyG5nEQ0aD71QM»;
Posts: 93
Threads: 36
Joined: Aug 2009
Reputation:
0
I have been attacked by someone who knows how to crash my server.
He managed to do this 4 times till now.
What to do in order to secure my server from his hands??
PLEASE!!! IT’S EMERGENCY!!!!!!
Here is a screenshot that this guy send to me:
https://pithos.grnet.gr/pithos/rest/chem2866@upatras.gr/files/scrlll.jpg
I searched the logs but i didn’t find anything…
HELP ME!!!!
Posts: 2,441
Threads: 73
Joined: May 2009
Reputation:
33
08-26-2011, 04:26 AM
(This post was last modified: 08-26-2011, 04:27 AM by loopyman.)
Posts: 93
Threads: 36
Joined: Aug 2009
Reputation:
0
(08-26-2011, 04:26 AM)loopyman Wrote:
Lots of people recommend http://www.sourceop.com/modules.php?name=Downloads&d_op=viewdownload&cid=9
When the server was going to crash, I managed to see this SPAMMING MESSAGE at console, just before crashed:
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Socket ProcessAccept Error: Too many open files
Posts: 2,031
Threads: 27
Joined: Nov 2008
Reputation:
17
try installing zblock, that should prevent such hacking.
Posts: 92
Threads: 1
Joined: Jun 2011
Reputation:
1
Problem is that this is a public server with 32 slots. Afair zblock eats too much ressources in this case.
(I know about his servers because he contacted me.)
Posts: 2,031
Threads: 27
Joined: Nov 2008
Reputation:
17
if have zblock running on my public servers, the bigger one has «only» 22 slots, but I see absolutely no performance impact. you have to run zblock in public server mode of course…
Posts: 93
Threads: 36
Joined: Aug 2009
Reputation:
0
08-28-2011, 12:40 AM
(This post was last modified: 08-28-2011, 12:41 AM by bob7.)
zblock is not always a solution.
Besides from not having it for above-10-slot servers (non-private ones) due to performance issues (more server fps drops), is zblock compatible with tf2 servers?
Zblock can’t be installed to a tf2 server, I think.
Posts: 2,031
Threads: 27
Joined: Nov 2008
Reputation:
17
(08-28-2011, 12:40 AM)bob7 Wrote: Zblock can’t be installed to a tf2 server, I think.
ah, you might be right. but that is the only valid argument against it
but there are other plugins to block those so-called DoS or DDoS attacks (which are in fact not really such attacks). if you are running sourcemod you might try finding a sourcemod plugin for this (I forgot its name).
Posts: 92
Threads: 1
Joined: Jun 2011
Reputation:
1
Yeah, we tried them all out and kept them installed, but they don’t fix syn-flooding. We had to manually block that with the iptables.
MIG
Junior Member
Posts: 36
Threads: 3
Joined: Aug 2009
Reputation:
0
(08-29-2011, 12:29 AM)Cyba_Mephisto Wrote: Yeah, we tried them all out and kept them installed, but they don’t fix syn-flooding. We had to manually block that with the iptables.
You can’t syn flood a source game because it uses UDP game data syn-flooding is a TCP based attack, you can syn-flood the rcon port so block rcon in IP tables for all other IP other than your own.
I had problems with getting DDOSed aswell and it is very hard to block because faking source IPs with UDP is very easy to do, other attacks i have seen are reflective DDoS attack that are virtual impossible to block.
Need help? Join my Teamspeak 203.98.81.94:9987
Posts: 92
Threads: 1
Joined: Jun 2011
Reputation:
1
(08-29-2011, 08:25 PM)MIG Wrote: You can’t syn flood a source game because it uses UDP game data syn-flooding is a TCP based attack, you can syn-flood the rcon port so block rcon in IP tables for all other IP other than your own.
That’s what I meant. But he insists on using rcon.
We changed the rcon-port now and set up a few rules against portscanning and syn-flooding and thx to the pseudohackers the servers are fine for now.
Posts: 882
Threads: 43
Joined: Dec 2010
Reputation:
13
Well, you could post the iptables rules on here to help others with the same problem.. Just sayin’