Допустим, я хочу иметь сервер с как можно большим количеством учетных записей. Сколько макс?
Я хочу миллионы учетных записей пользователей. Это безумие? Я бы разместил десятки зеркал балансировки нагрузки коробки, и пользовательские данные будут храниться в высокодоступном общем хранилище, в то время как все другие данные будут нестабильными.
"I want millions of user accounts. Is that crazy?"
- Да. Используйте каталог для такого количества пользователей, а не десятки зеркал для такого количества пользователей.Ответы:
Теоретически вы можете иметь столько пользователей, сколько поддерживает пространство идентификаторов пользователей. Чтобы определить это в конкретной системе, проверьте определение
uid_t
типа. Обычно это означаетunsigned int
илиint
означает, что на 32-битных платформах вы можете создать почти 4,3 миллиарда пользователей. На 64-битных платформах вы можете иметь более 16e18 различных идентификаторов пользователей.Однако другие ресурсы могут быть исчерпаны до достижения этого предела, например, место на диске. Если вы создаете домашний каталог для каждого пользователя, то даже с 1 МБ свободного места для каждого пользователя вам потребуется более 4 ПБ памяти. Кроме того, большое количество пользователей, оставляющих процессы, работающие в фоновом режиме, планирующие задания cron, открывающие сеансы ftp и / или ssh, могут создать серьезную нагрузку на систему.
источник
До тех пор, пока пространство UID не будет исчерпано. Современные системы используют 32-разрядные целые числа без знака, причем 65535 и 4294967295 являются магическими значениями для «любого» / «неизвестного» / и т. Д., Поэтому есть место для 4294967294 одновременно работающих разных пользователей. В старых системах все еще могут отображаться 16-разрядные целые числа без знака.
источник
Другие ответы буквально ответили на вопрос ОП относительно конкретных ограничений. Учитывая природу SF как долгосрочного ориентира, я думаю, что важно отметить очень важное предостережение относительно подхода, который вы рассматриваете.
Вы хотите использовать службу каталогов для управления учетными записями пользователей такого масштаба. Это именно та проблема, для которой были разработаны службы каталогов [например, OpenLDAP, Active Directory и др.].
Использование «стандартных» [1] пользовательских инструментов Unix для управления более, чем несколькими локальными учетными записями пользователей - это хорошо проработанный путь, чреватый болью, который будет не очень легко масштабироваться и, учитывая описание вашей проблемы, по всей вероятности, приведет к значительному реорганизация выбранного вами решения, когда оно фактически не масштабируется по горизонтали с несколькими серверами.
[1] Как правило, они работают очень схожим образом, но точные заклинания варьируются от платформы к платформе, иногда отличаются даже в аналогичных дистрибутивах Linux и, конечно, регулярно меняются в версиях ОС. Пусть покупатель будет бдителен.
источник
Как указано выше, вы ограничены размером UID unsigned int теоретически, но, скорее всего, в настоящее время будут ограничены ресурсами до достижения указанного предела.
источник