Digamos que quiero tener un servidor con tantas cuentas de usuario como sea posible. ¿Cuánto es el máximo?
Quiero millones de cuentas de usuario. ¿Eso es una locura? Alojaría docenas de espejos de equilibrio de carga de la caja, y los datos del usuario se almacenarían en un recurso compartido de almacenamiento de alta disponibilidad, mientras que se supone que todos los demás datos son volátiles.
"I want millions of user accounts. Is that crazy?"
- Si. Use un directorio para tantos usuarios, no docenas de espejos para tantos usuarios.Respuestas:
Teóricamente, puede tener tantos usuarios como el espacio de ID de usuario admite. Para determinar esto en un sistema en particular, consulte la definición del
uid_t
tipo. Por lo general, se define comounsigned int
oint
significa que en plataformas de 32 bits puede crear hasta casi 4,3 mil millones de usuarios. En plataformas de 64 bits, puede tener más de 16e18 ID de usuario diferentes.Sin embargo, otros recursos pueden agotarse antes de alcanzar este límite, por ejemplo, espacio en disco. Si crea un directorio de inicio para cada usuario, incluso con solo 1 MB de espacio para cada usuario, necesita más de 4 PB de almacenamiento. Además, una gran cantidad de usuarios que dejan procesos ejecutándose en segundo plano, programando trabajos cron, abriendo sesiones ftp y / o ssh pueden crear una carga severa en el sistema.
fuente
Hasta que se agote el espacio UID. Los sistemas contemporáneos usan enteros sin signo de 32 bits, con 65535 y 4294967295 siendo valores mágicos para "cualquier" / "desconocido" / etc., por lo que hay espacio para 4294967294 usuarios distintos concurrentes. Los sistemas más antiguos aún pueden mostrar enteros sin signo de 16 bits.
fuente
Otras respuestas han respondido literalmente a la pregunta de OP sobre límites específicos. Dada la naturaleza de SF como referencia a largo plazo también, creo que es importante señalar una advertencia muy importante sobre el enfoque que está contemplando.
Usted quiere estar usando un servicio de directorio para administrar cuentas de usuario en esta escala. Es exactamente el problema para el que se diseñaron los servicios de directorio [por ejemplo, OpenLDAP, Active Directory, et al.].
El uso de herramientas de usuario "estándar" [1] de Unix para administrar más de un puñado de cuentas de usuarios locales es una vía muy cargada de dolor, no escalará muy fácilmente y, dada la descripción de su problema, con toda probabilidad conducirá a una significativa rediseñar su solución elegida cuando de hecho no se escala horizontalmente con múltiples servidores.
[1] Generalmente funcionan de manera muy similar, pero los encantamientos exactos varían de una plataforma a otra, son diferentes a veces incluso en distribuciones de Linux de herencia similares y, por supuesto, se cambian regularmente con las versiones de lanzamiento del sistema operativo. Advertencia emptor.
fuente
Como anteriormente, está limitado por el tamaño int UID sin signo teóricamente, pero lo más probable es que esté restringido por los recursos en la actualidad antes de alcanzar dicho límite.
fuente