假设我想让一台服务器拥有尽可能多的用户帐户。最大值是多少?
我想要数百万个用户帐户。疯了吗 我将在机箱中放置数十个负载平衡镜像,并且用户数据将存储在高可用性的存储共享上,而所有其他数据均假定为易失性。
假设我想让一台服务器拥有尽可能多的用户帐户。最大值是多少?
我想要数百万个用户帐户。疯了吗 我将在机箱中放置数十个负载平衡镜像,并且用户数据将存储在高可用性的存储共享上,而所有其他数据均假定为易失性。
Answers:
从理论上讲,您可以拥有用户ID空间支持的尽可能多的用户。要在特定系统上确定此内容,请检查uid_t
类型的定义。通常定义为unsigned int
或int
表示在32位平台上最多可以创建43亿用户。在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?"
-是的 为这么多用户使用目录,而不要为那么多用户使用数十个镜像。