技术要求

一般信息

Passwork 不是资源密集型的。所需的资源量(RAM、CPU、HDD)和服务器数量取决于活跃用户的数量、存储数据的量以及系统的容错要求。

Passwork 由一个应用服务器(Web服务器 + PHP)和一个数据库(MongoDB 4.2+)组成。这两者都可以在一个共享的专用服务器或虚拟服务器上运行。

如果出现以下情况,可能需要多个服务器:

  • 安全政策要求应用服务器和数据库分开;
  • 需要在多个服务器上同时存储数据;
  • 需要容错解决方案(多个应用服务器)。

IOPS 值对数据库的速度非常重要,因此建议使用 SSD 硬盘。

对于 RAM 小于 4GB 的 Linux,我们推荐包含一个 4GB 的交换文件。

在专用或虚拟服务器上安装 Passwork 的选项

1. 单服务器

通常适用于最多 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

2. 应用程序和数据库使用不同的服务器

数据库和应用服务器分布在不同的服务器上

  • 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

3. 多个数据库服务器

MongoDB 数据库可以以“集群”模式运行。在这样的集群中,服务器有三个主要角色:

  1. Master — 主服务器;
  2. Replica — 拥有数据副本的服务器;
  3. Arbiter — 一个特殊的服务器,确保在选择主数据库时投票过程的正确性。

Arbiter 服务器用于自动切换主服务器并提供容错能力。

可能的情况:

  1. 2台服务器:一台主服务器,积极使用,+ 一台副本服务器,被动存储数据库的副本;
  2. 3台服务器:两台全功能数据库服务器,其中一台被选为主服务器,第二台作为副本,第三台作为仲裁服务器,确保主服务器选择过程的正确性。如果当前的主服务器出现故障,主数据库将自动切换。仲裁服务器节省资源,因为它对资源的需求较少;
  3. 3台或更多服务器:三台完备的数据库服务器(主服务器在投票过程中被选出)。在这样的情况下,仲裁者也可以作为第三台+服务器使用。在特定的集群中,如果您需要使用预测性的主数据库切换,这可能是必要的。

仲裁者的技术要求:

  • RAM - 4 GB, CPU - 4, HDD - 100 GB
  • 与其它数据库服务器的高速网络连接。

4. 多个应用服务器

可以将多个应用服务器并行使用,包括:

  • 水平扩展的多个 PHP-FPM 服务器;
  • 负载均衡器

这将允许:

  1. 如果一台服务器宕机,请求会自动重定向到工作中的服务器;
  2. 当用户数量很大时(10,000 人及以上),加速应用的操作"

数据存储、备份和日志

上述 HDD 建议不包括备份和日志。我们推荐在单独的服务器或专门的存储设备中存储数据库备份。

归档的数据库备份大约占数据库本身大小的 10%。