Я читал отдельный вопрос SU о настройке значения ulimit, и в ответе Гордона упоминалось о жестком и мягком ограничении на количество дескрипторов открытых файлов. Просто любопытно, зачем нам нужен жесткий и мягкий лимит в первую очередь? Какая польза от этого? Не проще ли просто иметь единственное ограничение, не прибегая к жесткой и мягкой дифференциации?

Кстати, я уже проверил справочную страницу, и она не обсуждает ничего конкретного на ulimit

1 ответ1

2

По той же причине у нас жесткие и мягкие ограничения на все остальное.  Жестким ограничением является защита пользователей друг от друга.  Если бы один пользователь мог использовать ресурсы без ограничений, это снизило бы производительность системы / отклик для всех остальных пользователей.  Мягким ограничением является защита пользователей от самих себя, и количество открытых файлов является прекрасным примером этого.  Вам может потребоваться открыть 300 файлов одновременно, и если ваш жесткий лимит составляет 300 или выше, вы можете сделать это.  (Если ваш мягкий лимит ниже 300, вам нужно будет его увеличить - что вы можете сделать, вплоть до вашего жесткого лимита.)  Но очень немногим программам нужно одновременно открывать 300 файлов.  Если ваша программа делает это, она, вероятно, имеет ошибку, когда она открывает файлы и не может их закрыть, даже если это сделано с их использованием.  В этом случае вам, вероятно, лучше узнать об этом, когда программа попытается открыть свой 101-й файл; это сэкономит ваше время и, возможно, позволит вам обнаружить ошибку в вашей программе раньше, чем кто-либо другой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .