Powiedzmy, że chcę mieć serwer z jak największą liczbą kont użytkowników. Ile wynosi maksimum?
Chcę miliony kont użytkowników. Czy to szalone? Hostowałbym dziesiątki serwerów lustrzanych równoważących obciążenie, a dane użytkownika byłyby przechowywane w bardzo dostępnym udziale pamięci, podczas gdy wszystkie inne dane są niestabilne.
"I want millions of user accounts. Is that crazy?"
- Tak. Użyj katalogu dla tylu użytkowników, a nie dziesiątek serwerów lustrzanych dla tylu użytkowników.Odpowiedzi:
Teoretycznie możesz mieć tyle użytkowników, ile obsługuje przestrzeń ID użytkownika. Aby to ustalić w konkretnym systemie, sprawdź definicję
uid_t
typu. Zwykle jest definiowany jakounsigned int
lubint
oznacza, że na platformach 32-bitowych można utworzyć do prawie 4,3 miliarda użytkowników. Na platformach 64-bitowych możesz mieć ponad 16e18 różnych identyfikatorów użytkowników.Jednak inne zasoby mogą zostać wyczerpane przed osiągnięciem tego limitu, np. Miejsce na dysku. Jeśli utworzysz katalog domowy dla każdego użytkownika, nawet przy zaledwie 1 MB miejsca dla każdego użytkownika potrzebujesz ponad 4PB pamięci. Ponadto duża liczba użytkowników pozostawiających procesy działające w tle, planujących zadania cron, otwierających sesje ftp i / lub ssh mogą powodować poważne obciążenie systemu.
źródło
Aż do wyczerpania miejsca UID. Współczesne systemy używają 32-bitowych liczb całkowitych bez znaku, przy czym 65535 i 4294967295 są magicznymi wartościami dla „dowolnych” / „nieznanych” / itd., Więc jest miejsce dla 4294967294 równoczesnych różnych użytkowników. Starsze systemy mogą nadal wyświetlać 16-bitowe liczby całkowite bez znaku.
źródło
Inne odpowiedzi odpowiedziały dosłownie na pytanie OP dotyczące konkretnych limitów. Biorąc pod uwagę naturę SF jako odniesienia długoterminowego, myślę, że ważne jest, aby wskazać bardzo ważne zastrzeżenie dotyczące rozważanego podejścia.
Ty chcesz być za pomocą usługi katalogowej do zarządzania kontami użytkowników na tej skali. Właśnie dla tego problemu zostały zaprojektowane usługi katalogowe [np. OpenLDAP, Active Directory i in.].
Używanie „standardowych” narzędzi użytkownika Unix do zarządzania więcej niż garstką lokalnych kont użytkowników jest dobrze znoszoną ścieżką obarczoną bólem, nie będzie się łatwo skalować i - biorąc pod uwagę opis problemu - najprawdopodobniej doprowadzi do znacznego ponowna architektura wybranego rozwiązania, gdy nie skaluje się ono w poziomie z wieloma serwerami.
[1] Zasadniczo działają bardzo podobnie, ale dokładne inkantacje różnią się w zależności od platformy, czasem różnią się nawet w podobnych dystrybucjach Linuksa o podobnej tradycji i oczywiście są regularnie zmieniane w zależności od wersji systemu operacyjnego. Zastrzegający emptor.
źródło
Jak wyżej, jesteś teoretycznie ograniczony przez identyfikator UID bez znaku int, ale najprawdopodobniej będziesz ograniczony zasobami przed osiągnięciem tego limitu.
źródło