LINUXCAMP_TG Telegram 510
Когда процессу не дают дышать

Симптом:

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


Too many open files


Виноват ulimit

Каждый процесс в Linux живёт в рамках ограничений ядра - ulimits. Одно из них nofile, максимум открытых файловых дескрипторов. Файл, сокет, pipe - всё это дескрипторы.

Посмотреть текущие лимиты:


ulimit -n


увидишь, например:


1024


Это значит, что твой процесс не может держать больше 1024 открытых файлов и соединений.

Как увеличить

Иногда это нужно для высоконагруженных сервисов, например, база данных, reverse-proxy или API, который держит тысячи открытых соединений. Если лимит слишком маленький, то приложение начнёт падать на пике трафика.

Временно (для текущей сессии):


ulimit -n 65535


Навсегда — в /etc/security/limits.conf или /etc/systemd/system.conf:


* soft nofile 65535
* hard nofile 65535


Если сервис под systemd, добавь в unit-файл:


[Service]
LimitNOFILE=65535


и перезапусти:


systemctl daemon-reexec
systemctl restart <service>


Осторожно с лимитами

Увеличивать можно, но без фанатизма. Слишком высокий nofile при множестве активных процессов может съесть память и дескрипторы ядра, Особенно если приложение не закрывает файлы корректно. Поэтому лучше провести ревизию приложения вначале.

Вывод

Too many open files - это не баг, а защита ядра. Если приложение задыхается, то можно увеличить лимиты. Главное понимать почему в приложении появляется данная проблема

LinuxCamp | #utils
🔥27👍147❤‍🔥1



tgoop.com/linuxcamp_tg/510
Create:
Last Update:

Когда процессу не дают дышать

Симптом:

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


Too many open files


Виноват ulimit

Каждый процесс в Linux живёт в рамках ограничений ядра - ulimits. Одно из них nofile, максимум открытых файловых дескрипторов. Файл, сокет, pipe - всё это дескрипторы.

Посмотреть текущие лимиты:


ulimit -n


увидишь, например:


1024


Это значит, что твой процесс не может держать больше 1024 открытых файлов и соединений.

Как увеличить

Иногда это нужно для высоконагруженных сервисов, например, база данных, reverse-proxy или API, который держит тысячи открытых соединений. Если лимит слишком маленький, то приложение начнёт падать на пике трафика.

Временно (для текущей сессии):


ulimit -n 65535


Навсегда — в /etc/security/limits.conf или /etc/systemd/system.conf:


* soft nofile 65535
* hard nofile 65535


Если сервис под systemd, добавь в unit-файл:


[Service]
LimitNOFILE=65535


и перезапусти:


systemctl daemon-reexec
systemctl restart <service>


Осторожно с лимитами

Увеличивать можно, но без фанатизма. Слишком высокий nofile при множестве активных процессов может съесть память и дескрипторы ядра, Особенно если приложение не закрывает файлы корректно. Поэтому лучше провести ревизию приложения вначале.

Вывод

Too many open files - это не баг, а защита ядра. Если приложение задыхается, то можно увеличить лимиты. Главное понимать почему в приложении появляется данная проблема

LinuxCamp | #utils

BY LinuxCamp | DevOps




Share with your friend now:
tgoop.com/linuxcamp_tg/510

View MORE
Open in Telegram


Telegram News

Date: |

During a meeting with the president of the Supreme Electoral Court (TSE) on June 6, Telegram's Vice President Ilya Perekopsky announced the initiatives. According to the executive, Brazil is the first country in the world where Telegram is introducing the features, which could be expanded to other countries facing threats to democracy through the dissemination of false content. How to create a business channel on Telegram? (Tutorial) How to build a private or public channel on Telegram? In the next window, choose the type of your channel. If you want your channel to be public, you need to develop a link for it. In the screenshot below, it’s ”/catmarketing.” If your selected link is unavailable, you’ll need to suggest another option. The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers.
from us


Telegram LinuxCamp | DevOps
FROM American