가능한 한 많은 사용자 계정을 가진 서버를 갖고 싶다고 가정 해 봅시다. 최대는 몇 개입니까?
수백만의 사용자 계정이 필요합니다. 미쳤어? 박스에 수십 개의로드 밸런싱 미러를 호스팅하고 사용자 데이터는 고 가용성 스토리지 공유에 저장되는 반면 다른 모든 데이터는 일시적인 것으로 가정합니다.
가능한 한 많은 사용자 계정을 가진 서버를 갖고 싶다고 가정 해 봅시다. 최대는 몇 개입니까?
수백만의 사용자 계정이 필요합니다. 미쳤어? 박스에 수십 개의로드 밸런싱 미러를 호스팅하고 사용자 데이터는 고 가용성 스토리지 공유에 저장되는 반면 다른 모든 데이터는 일시적인 것으로 가정합니다.
답변:
이론적으로 사용자 ID 공간이 지원하는 수의 사용자를 가질 수 있습니다. 특정 시스템에서이를 판별하려면 uid_t
유형 정의를 확인하십시오 . 일반적으로 32 비트 플랫폼에서 최대 43 억 명의 사용자를 만들 수있는 것으로 정의 unsigned int
되거나 int
의미합니다. 64 비트 플랫폼에서는 16e18 개 이상의 서로 다른 사용자 ID를 가질 수 있습니다.
그러나이 제한에 도달하기 전에 디스크 공간과 같은 다른 리소스가 소진 될 수 있습니다. 각 사용자에 대해 홈 디렉토리를 작성하는 경우 각 사용자에 대해 1MB의 공간 만 있으면 4PB 이상의 스토리지가 필요합니다. 또한 백그라운드에서 실행중인 프로세스를 떠나고 cron 작업을 예약하고 ftp 및 / 또는 ssh 세션을 여는 많은 사용자가 시스템에 심각한 부담을 줄 수 있습니다.
다른 답변은 특정 제한에 관한 OP의 질문에 문자 그대로 응답했습니다. SF가 장기적인 참고 자료라는 점을 감안할 때, 여러분이 고려하고있는 접근법에 대해 매우 중요한 경고를 지적하는 것이 중요하다고 생각합니다.
당신이 원하는 이 규모의 사용자 계정을 관리하기 위해 디렉토리 서비스를 사용 할 수 있습니다. 디렉터리 서비스 (예 : OpenLDAP, Active Directory 등)가 설계된 문제는 정확히 문제입니다.
"표준"[1] Unix 사용자 도구를 사용하여 소수의 로컬 사용자 계정 이상을 관리하는 것은 고통으로 가득 찬 잘 알려진 경로이며, 쉽게 확장되지 않으며-문제 설명을 감안할 때-가능성이 상당히 높습니다. 실제로 여러 서버로 수평 확장 할 수없는 경우 선택한 솔루션을 다시 설계합니다.
[1] 그것들은 일반적으로 매우 유사하게 작동하지만 정확한 주문은 플랫폼마다 다르며, 비슷한 문화 유산 Linux 배포판에서도 때때로 다르며 물론 OS 릴리스 버전으로 정기적으로 변경됩니다. 주의 사항
"I want millions of user accounts. Is that crazy?"
- 예. 많은 사용자를 위해 수십 개의 미러가 아닌이 많은 사용자를위한 디렉토리를 사용하십시오.