技术要求
Passwork 不是资源密集型的。所需的资源量(RAM、CPU、HDD)和服务器数量取决于活跃用户的数量、存储数据的量以及系统的容错要求。
Passwork 由一个应用服务器(Web服务器 + PHP)和一个数据库(MongoDB 4.2+)组成。这两者都可以在一个共享的专用服务器或虚拟服务器上运行。
如果出现以下情况,可能需要多个服务器:
- 安全政策要求应用服务器和数据库分开;
- 需要在多个服务器上同时存储数据;
- 需要容错解决方案(多个应用服务器)。
IOPS 值对数据库的速度非常重要,因此建议使用 SSD 硬盘。
对于 RAM 小于 4GB 的 Linux,我们推荐包含一个 4GB 的交换文件。
在专用或虚拟服务器上安装 Passwork 的选项
通常适用于最多 500 名用户的版本,没有特殊的数据存储要求:
用户数量 | RAM | CPU | HDD |
---|---|---|---|
最多 50 | 2-4 GB | 4 | 100 GB |
最多 100 | 4-8 GB
| 8 | 150 GB |
最多 500 | 8-16 GB | 8 | 200 GB |
数据库和应用服务器分布在不同的服务器上
- RAM-1, CPU-1, HDD-1 — 应用服务器。
- RAM-2, CPU-2, HDD-2 — 数据库
Dont change the parameters in table exept that i have translated
用户数量 | RAM-1 | CPU-1 | HDD-1 | RAM-2
| CPU-2 | HDD-2 |
---|---|---|---|---|---|---|
最多 50 | 2-4 GB | 4 | 100GB | 2-4 GB | 4 | 100GB |
最多 100 | 4-8 GB | 8 | 100GB | 4 GB | 4 | 150GB |
最多 500 | 8-16 GB | 8 | 100GB | 8 GB | 8 | 200GB |
最多 1 000 | 8-16 GB | 8 | 100GB | 16 GB | 8 | 200GB |
最多 10 000 | 16-32 GB | 16 | 100GB | 16-32 GB | 16 | 200GB |
MongoDB 数据库可以以“集群”模式运行。在这样的集群中,服务器有三个主要角色:
- Master — 主服务器;
- Replica — 拥有数据副本的服务器;
- Arbiter — 一个特殊的服务器,确保在选择主数据库时投票过程的正确性。
Arbiter 服务器用于自动切换主服务器并提供容错能力。
可能的情况:
- 2台服务器:一台主服务器,积极使用,+ 一台副本服务器,被动存储数据库的副本;
- 3台服务器:两台全功能数据库服务器,其中一台被选为主服务器,第二台作为副本,第三台作为仲裁服务器,确保主服务器选择过程的正确性。如果当前的主服务器出现故障,主数据库将自动切换。仲裁服务器节省资源,因为它对资源的需求较少;
- 3台或更多服务器:三台完备的数据库服务器(主服务器在投票过程中被选出)。在这样的情况下,仲裁者也可以作为第三台+服务器使用。在特定的集群中,如果您需要使用预测性的主数据库切换,这可能是必要的。
仲裁者的技术要求:
- RAM - 4 GB, CPU - 4, HDD - 100 GB
- 与其它数据库服务器的高速网络连接。
可以将多个应用服务器并行使用,包括:
- 水平扩展的多个 PHP-FPM 服务器;
- 负载均衡器
这将允许:
- 如果一台服务器宕机,请求会自动重定向到工作中的服务器;
- 当用户数量很大时(10,000 人及以上),加速应用的操作"
数据存储、备份和日志
上述 HDD 建议不包括备份和日志。我们推荐在单独的服务器或专门的存储设备中存储数据库备份。
归档的数据库备份大约占数据库本身大小的 10%。