Почему операционные системы ограничивают файловые дескрипторы?

Я задаю этот вопрос после того, как изо всех сил старался найти лучший способ реализовать сервер очереди сообщений. Почему операционные системы устанавливают ограничения на количество открытых файловых дескрипторов, которые может иметь процесс и глобальная система? Моя текущая реализация сервера использует zeromq и открывает сокет подписчика для каждого подключенного клиента websocket. Очевидно, что этот единственный процесс сможет обрабатывать клиентов только до предела fds. Когда я исследую эту тему, я нахожу много информации о том, как поднять системные ограничения до уровней до 64 КБ, но никогда не упоминается, как это влияет на производительность системы и почему для начала это 1 КБ и ниже? Мой текущий подход состоит в том, чтобы попытаться отправить сообщения всем клиентам, используя сопрограмму в ее собственном цикле, а также карту всех клиентов и их каналов подписки. Но я бы просто хотел услышать твердый ответ об ограничениях файловых дескрипторов и о том, как они влияют на приложения, которые пытаются использовать их на уровне каждого клиента с постоянными соединениями?

18
задан Aseem Bansal 5 September 2014 в 16:07
поделиться