Katakanlah saya ingin memiliki server dengan sebanyak mungkin akun pengguna. Berapa maks?
Saya ingin jutaan akun pengguna. Apakah itu gila? Saya akan meng-host puluhan mirror load-balance dari kotak, dan data pengguna akan disimpan pada share penyimpanan yang sangat tersedia, sementara semua data lain diasumsikan volatile.
"I want millions of user accounts. Is that crazy?"
- Iya. Gunakan direktori untuk banyak pengguna ini, bukan lusinan mirror untuk sebanyak itu pengguna.Jawaban:
Secara teoritis Anda dapat memiliki pengguna sebanyak yang didukung oleh ruang ID pengguna. Untuk menentukan ini pada sistem tertentu, periksa definisi
uid_t
jenisnya. Biasanya didefinisikan sebagaiunsigned int
atauint
artinya bahwa pada platform 32-bit Anda dapat membuat hingga hampir 4,3 miliar pengguna. Pada platform 64-bit Anda dapat memiliki lebih dari 16e18 ID pengguna yang berbeda.Namun, sumber daya lain mungkin menjadi habis sebelum Anda mencapai batas ini, misalnya ruang disk. Jika Anda membuat direktori home untuk setiap pengguna maka bahkan dengan hanya 1MB ruang untuk setiap pengguna Anda membutuhkan lebih dari 4PB penyimpanan. Juga, sejumlah besar pengguna meninggalkan proses yang berjalan di latar belakang, menjadwalkan pekerjaan cron, membuka sesi ftp dan / atau ssh dapat membuat beban berat pada sistem.
sumber
Hingga ruang UID habis. Sistem kontemporer menggunakan bilangan bulat 32-bit unsigned, dengan 65535 dan 4294967295 menjadi nilai ajaib untuk "any" / "unknown" / etc., Jadi ada ruang untuk 4294967294 pengguna yang berbeda secara bersamaan. Sistem yang lebih lama mungkin masih menunjukkan bilangan bulat 16-bit yang tidak ditandatangani.
sumber
Jawaban lain telah menjawab pertanyaan OP mengenai batas tertentu. Mengingat sifat SF sebagai referensi jangka panjang juga, saya pikir penting untuk menunjukkan peringatan yang sangat penting pada pendekatan yang Anda renungkan.
Anda ingin menggunakan layanan direktori untuk mengelola akun pengguna pada skala ini. Persisnya masalah yang dirancang untuk layanan direktori [misalnya OpenLDAP, Active Directory, dkk.].
Menggunakan "standar" [1] Alat pengguna Unix untuk mengelola lebih dari beberapa akun pengguna lokal adalah jalur usang yang sarat dengan rasa sakit, tidak akan menskala dengan sangat mudah dan - mengingat uraian masalah Anda - kemungkinan besar akan mengarah ke signifikan merancang ulang solusi yang Anda pilih ketika tidak benar-benar berskala horizontal dengan beberapa server.
[1] Mereka umumnya bekerja sangat mirip, tetapi mantra yang tepat bervariasi dari platform ke platform, berbeda kadang-kadang bahkan dalam distro Linux warisan yang sama dan tentu saja secara teratur diubah dengan versi rilis OS. Kaisar peringatan.
sumber
Seperti di atas Anda dibatasi oleh UID unsigned int size secara teoritis tetapi kemungkinan besar akan dibatasi oleh sumber daya saat ini sebelum mencapai batas tersebut.
sumber