В Linux можно использовать команду ulimit -n, чтобы увидеть максимальное количество файлов, которые может открыть один процесс (также учитываются соединения сокетов). системаЗначение по умолчанию — 1024。
Для общих приложений (например, Apache, системные процессы) 1024 полностью достаточен. Однако она немного затянута для однопроцессных приложений, таких как Squid, MySQL и Java. Если количество файлов, открытых одним процессом, превышает системное значение, упоминается сообщение об ошибке «слишком много файлов открыто».
Просмотр максимального количества файлов, установленных системой
LSOF (List Open Files) — это инструмент, который отображает файлы, которые сейчас открыты в системе. В среде Linux всё существует в виде файлов, через которые можно получить доступ не только к общим данным, но и к сетевым соединениям и аппаратному обеспечению. Таким образом, в фоновом режиме, таких как сокеты Transmission Control Protocol (TCP) и User Datagram Protocol (UDP), система назначает приложению дескриптор файла, независимо от характера файла, который обеспечивает общий интерфейс для взаимодействия приложения с операционной системой. Поскольку список дескрипторов для открытых файлов приложения содержит много информации о самом приложении, наличие инструмента LSOF для просмотра этого списка будет очень полезен для мониторинга и устранения неполадок.
Команда установки следующая:
Посчитайте общее количество дескрипторов файлов, открытых в системе:
Способы просмотра количества файлов, открытых в процессе применения:
Set ulimit
Временные настройки
Фактически, сама команда ulimit делится на мягкие и жёсткие ограничения: плюс-h — жёсткое ограничение, плюс-s — мягкое ограничение. По умолчанию отображаются мягкие пределы, если при выполнении команды ulimit не добавлять -H или -S, параметры меняются вместе.
В чём разница между мягкими и жёсткими пределами?
Жёсткий лимит — это фактический лимит, а мягкий лимит — предупреждающий предел, который даёт только предупреждение.
Постоянный сеттинг
Значение ulimits является постоянным, и конфигурационный файл /etc/security/limits.conf должен быть изменен
(Конец)
|