Angenommen, ich möchte einen Server mit möglichst vielen Benutzerkonten haben. Wie viele ist die max?
Ich möchte Millionen von Benutzerkonten. Ist das verrückt Ich würde Dutzende von Load-Balance-Spiegeln der Box hosten, und Benutzerdaten würden auf einer hochverfügbaren Speicherfreigabe gespeichert, während alle anderen Daten als flüchtig angenommen werden.
"I want millions of user accounts. Is that crazy?"
- Ja. Verwenden Sie ein Verzeichnis für so viele Benutzer, nicht Dutzende von Spiegeln für so viele Benutzer.Antworten:
Theoretisch können Sie so viele Benutzer haben, wie der Benutzer-ID-Bereich unterstützt. Um dies auf einem bestimmten System festzustellen, lesen Sie die Definition des
uid_t
Typs. Es ist in der Regel definiertunsigned int
oderint
was bedeutet , dass auf 32-Bit - Plattformen , die Sie auf fast 4,3 Milliarden Benutzer erstellen können. Auf 64-Bit-Plattformen können Sie mehr als 16e18 verschiedene Benutzer-IDs haben.Andere Ressourcen können jedoch erschöpft sein, bevor Sie dieses Limit erreichen, z. B. Speicherplatz. Wenn Sie für jeden Benutzer ein Basisverzeichnis erstellen, benötigen Sie sogar mit nur 1 MB Speicherplatz für jeden Benutzer mehr als 4 PB Speicherplatz. Außerdem kann eine große Anzahl von Benutzern, die Prozesse im Hintergrund laufen lassen, Cron-Jobs planen, FTP- und / oder SSH-Sitzungen eröffnen, das System stark belasten.
quelle
Bis der UID-Speicherplatz erschöpft ist. In modernen Systemen werden vorzeichenlose 32-Bit-Ganzzahlen verwendet, wobei 65535 und 4294967295 magische Werte für "any" / "unknown" / usw. Sind. Daher ist Platz für 4294967294 gleichzeitige unterschiedliche Benutzer. Ältere Systeme zeigen möglicherweise noch 16-Bit-Ganzzahlen ohne Vorzeichen an.
quelle
Andere Antworten haben buchstäblich auf die Frage von OP nach bestimmten Grenzen geantwortet. Angesichts der Tatsache, dass SF auch als langfristige Referenz dient, halte ich es für wichtig, auf eine sehr wichtige Einschränkung des von Ihnen in Betracht gezogenen Ansatzes hinzuweisen.
Sie möchten einen Verzeichnisdienst zum Verwalten von Benutzerkonten in dieser Größenordnung verwenden. Es ist genau das Problem, für das Verzeichnisdienste (z. B. OpenLDAP, Active Directory usw.) entwickelt wurden.
Die Verwendung von "Standard" [1] -Unix-Benutzertools zum Verwalten von mehr als einer Handvoll lokaler Benutzerkonten ist ein abgenutzter, schmerzhafter Weg, der sich nicht leicht skalieren lässt und - Ihrer Problembeschreibung nach - aller Wahrscheinlichkeit nach zu einem signifikanten Ergebnis führt Neuarchitektur der von Ihnen gewählten Lösung, wenn diese bei mehreren Servern nicht horizontal skaliert werden kann.
[1] Sie funktionieren im Allgemeinen sehr ähnlich, aber die genauen Beschwörungsformeln variieren von Plattform zu Plattform, sind manchmal auch in Linux-Distributionen mit ähnlichem Erbe unterschiedlich und werden natürlich regelmäßig mit OS-Release-Versionen geändert. Vorbehalt Emptor.
quelle
Wie oben beschrieben, sind Sie theoretisch durch die vorzeichenlose int-Größe der UID begrenzt, werden jedoch höchstwahrscheinlich vor Erreichen dieser Grenze durch Ressourcen eingeschränkt.
quelle