ile kont użytkowników może obsługiwać system operacyjny typu Unix? [duplikować]

13

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.


źródło
"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.
MDMarra,
Czy to odpowiada na twoje pytanie? Maksymalna liczba użytkowników w systemie Linux
mniej

Odpowiedzi:

22

Teoretycznie możesz mieć tyle użytkowników, ile obsługuje przestrzeń ID użytkownika. Aby to ustalić w konkretnym systemie, sprawdź definicję uid_ttypu. Zwykle jest definiowany jako unsigned intlub intoznacza, ż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.

Adam Zalcman
źródło
1
+1 za wzmiankę o zasobach ... Z drugiej strony systemy uniksowe pozwalają na szalone konfiguracje sprzętowe.
HTDutchy,
Czy jesteś pewien różnicy między 32-bit a 64-bit? Czy możesz dodać referencję? Oto, co znajduję 1 i 2
malat
8

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.

jørgensen
źródło
1

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.

Mark Glossop
źródło
0

Jak wyżej, jesteś teoretycznie ograniczony przez identyfikator UID bez znaku int, ale najprawdopodobniej będziesz ograniczony zasobami przed osiągnięciem tego limitu.

mwil7034
źródło