容量需求规划

容量规划是通过确定当前使用趋势和分析增长模式来确定应用程序在一段时间内所需资源的过程。随着使用量的增长,主要的挑战是确保系统性能在很长一段时间内保持一致,并且系统有足够的资源来处理未来需求的容量。本文档提供了基于预期使用的应用程序容量使用模式的详细信息,以便您可以计划、分析和解决容量问题,并根据需要分配资源,以支持您的预期使用。

该方法首先分析特定条件下的当前容量,如资产数量、执行扫描的数量、生成报告的频率和数量,然后规划未来的容量需求。为了准确地捕捉不同类型的资产对扫描时间、网络利用率和磁盘使用率的影响,我们使用各种各样的单个资产完成了测试。然后使用这些测试的结果创建公式,您可以使用这些公式预测各种使用场景的容量需求。然后使用真实的扫描场景对这些公式进行测试,以获得磁盘使用情况、扫描持续时间和网络使用情况的可重复的经验测量值。

如果您是管理员,请根据容量规划指引回答以下问题:

我的部署需要多大的控制台?

下面是根据您的扫描需求部署所需的控制台大小的一些一般指导原则。该表显示了每周扫描时推荐的控制台大小。所提供的规范基于Rapid7的预构建硬件设备,当不使用Rapid7的预构建设备时,这些规范也可以作为建议:

数量的资产

推荐

规范

< 5000

入门级器具

  • 16 gb的RAM
    * Intel Xeon E5-2603 v3 1.6 Ghz(6核)
    * 2 * 1TB 7200 SATA (1TB软件RAID-1)
    * 1 U HP DL120 Gen9

5000 - 20000

r7 - 3000中型设备

  • 64 gb RAM
    * 2 * Intel Xeon E5-2609 v3 1.90 GHz(6核)
    * 8x 500GB 7200 SATA (2TB硬件RAID-10)
    * 2 U HP DL380 Gen9

20000 - 150000

r7 - 5000企业

  • 128 gb RAM
    * 2 * Intel Xeon E5-2609 v3 1.90 GHz(6核)
    * 16 * 500GB 7200 SATA (4TB硬件RAID-10)
    * 2 U HP DL380 Gen9

150000 - 400000

r7 - 5000 x企业+

  • 256 gb RAM
    * 2 * Intel Xeon E5-2609 v3 1.90 GHz(6核)
    * 16 x 1TB 7200 SATA (8TB硬件RAID-10)
    * 2 U HP DL380 Gen9

400,000

多个企业或企业+控制台

  • Rapid7将根据您的扫描需求帮助确定部署的大小和架构。

扫描平均资产需要多长时间?

扫描时间会根据安装的操作系统、资产的响应性、开放端口、安装的应用程序、运行的服务和补丁级别而变化。除了扫描配置和网络条件之外,这些变量还会影响扫描时间和磁盘使用需求。

以下是使用Full Audit模板时的平均扫描时间和磁盘使用情况的总结,在一个/20网络范围内,大约有1,000个资产处于活动状态。我们将在以后的计算中使用这些值,根据资产、引擎和线程的数量确定总扫描持续时间。

类型的扫描 Vulns /资产 平均资产扫描时间 平均资产磁盘使用率
未经身份验证的 18 3.5分钟(射程12 s - 29分钟) 37 KB
通过身份验证 307 7.4分钟(射程12秒- 38分钟) 422 KB

测试结果表明,由于访问资产时评估的本地软件数量的增加,认证扫描所花费的时间大约是未认证扫描的两倍。

网络延迟如何影响扫描时间?

扫描时间根据网络时延不同而不同。下图显示了在不同网络延迟下扫描带有凭据的漏洞(没有运行策略检查)时两个样本资产的扫描时间。在容量规划测试中,可以观察到100 ms的网络延迟将扫描时间增加15-25%,300 ms的网络延迟将扫描时间增加约35%。实际影响可能因所扫描的资产和扫描设置而不同。

我的控制台上需要多少磁盘空间?

我们将使用以下我们之前收集的“平均资产磁盘使用率”值。通过身份验证的扫描所占用的磁盘大约是未经身份验证的扫描所占用磁盘的10倍。这是因为经过身份验证的扫描将评估本地软件包和文件共享中的漏洞,而未经身份验证的扫描将无法评估这些漏洞。

类型的扫描

Vulns /资产

平均资产扫描时间

平均资产磁盘使用率

未经身份验证的

18

3.5分钟

37 KB

通过身份验证

307

7.4分钟(射程12秒- 38分钟)

422 KB

汇总趋势或补救信息的报告使用的磁盘空间要比导出所有资产和漏洞信息的报告和导出格式少得多。因此,为了通过报告来确定磁盘使用情况,需要创建一个跨1000个测试资产的所有字段的CSV导出,以便计算每个资产在经过身份验证和未经身份验证扫描时的磁盘使用情况。这将表示在每次扫描后从系统中检索所有数据。

类型的扫描

平均Vulns

报告模板

平均资产磁盘使用率

未经身份验证的

18

CSV导出-所有字段

52 KB

通过身份验证

307

CSV导出-所有字段

703 KB

下面是根据扫描次数、报告次数和扫描和报告的资产数量计算总磁盘使用率的公式:

总磁盘SpaceRequired= (K x NumberOfAssets x NumberOfScans

  • L x NumberOfAssets x NumberOfScans x NumberOfReportsGenerated

其中K =一个资产的一次扫描的磁盘使用量,L =报告一个资产的磁盘使用量,M =应用程序的基本安装。这些值可以从我们的测试数据中提取,用于验证和未经验证的扫描:

参数

未经身份验证的扫描

验证扫描

K

37 KB

422 KB

l

52 KB

703 KB

2500 MB

2500 MB

现在我们可以计算随时间变化的总磁盘使用量。在一年的时间里,每周对10,000个资产进行未经身份验证的扫描并生成两个报告所需的总磁盘空间,所有字段的CSV导出和一个顶级补救与细节报告,每星期:

= (0.037 x 10,000 x 52) + (0.052 x 10,000 x 2 x 52) + 2,500 MB

75,820 MB (~ 76gb)

下面的图表演示了用于报告和的随时间变化的磁盘使用情况未经身份验证的每周扫描10,000个资产,每次扫描生成两个报告:

所需的总磁盘空间通过身份验证每周扫描10,000个资产,并生成两份报告,CSV导出补救计划每周:

=(。422 x 10,000 x 52) + (.703 x 10,000 x 2 x 52) + 2,500 MB

953060 MB (~,92TB)

为了保证磁盘容量,请通过“设置数据保留首选项”章节设置合适的数据保留策略。

一个扫描引擎可以处理多少资产?

真实世界的扫描吞吐量将取决于网络条件、平均资产扫描时间和调度。如果给定的引擎正在处理并发扫描,请记住线程的数量也会增加。例如,如果一个8 GB引擎分配给两个网站和扫描1000资产在每个站点扫描模板,同时扫描100资产,然后并发资产实际上是200,你可能想改变计划或增加内存或减少并发的资产。控件上设置了要扫描的并发资产的数量扫描模板配置页面使用每个扫描引擎同时扫描的最大资产选择在一般选项卡。要学得多,看得多调优部分。

下表提供了基于一般指导方针的一般指导方针,说明一个给定的扫描引擎每天可以扫描多少资产。

引擎的记忆

引擎内核

并发资产

未经身份验证的

通过身份验证

8 GB

4

One hundred.

每天0 - 10000

每天0 - 5000

16 GB

8

200

每天一万到两万

每天五千到一万

32 GB

8

400

每天两万到四万

每天一万到两万

用Y引擎扫描X资产需要多长时间?

扫描时间取决于要扫描的资产数量、平均资产扫描时间、使用的扫描引擎数量和扫描模板上使用的扫描线程数。对于固定数量的资产,扫描时间会随着扫描引擎数量和扫描线程数量的增加而减少。由于检索结果所需的远程通信,添加引擎会带来一些额外的开销;然而,添加扫描引擎是在更短的时间内水平地将扫描能力扩展到更多资产的最佳方法。

下面的公式根据资产数量、每个资产的平均扫描时间、扫描线程的数量和扫描引擎的数量计算估计的扫描时间。请注意,网络配置也是所需扫描引擎数量的一个重要因素。例如,如果资产分散在4个VLAN中,而它们之间没有连接,则每个VLAN需要一个扫描引擎来扫描该VLAN中的资产。

1.2上面的值表示将扫描结果集成到控制台的开销。的.85表示管理其他扫描引擎的开销。这两个值都是保守估计,可能会根据控制台的规格和配置而有所不同。这两个公式的下界总是最长的资产扫描时间。例如,如果有一个资产需要30分钟来扫描,那么所有资产的总扫描时间将永远不会少于30分钟。

下面是一个使用100个线程扫描10,000个资产的例子,平均资产扫描时间为3.5分钟:

= (1.2 x 3.5 min x 10,000)/100 = 420分钟= 7小时

使用一个scan Engine执行10,000个资产的验证扫描的总时间如下:

= (1.2 x 3.5 min x 10,000)/(。85 x 4 x 100)= 123 minutes = ~2 hours

这个图表显示了使用不同数量的线程和引擎时对扫描持续时间的影响。如您所见,增加每个引擎的线程数比增加引擎更有效。然而,在内存或CPU争用成为瓶颈之前,每个引擎只能处理一定数量的线程,添加更多的线程或引擎也没有多大帮助。因此,在扩展到多个引擎之前,应该最大限度地增加每个引擎的线程数,以便对扫描持续时间有最大的影响。

我需要多少引擎才能在Y小时内扫描X资产?

同样的公式也可以用来计算所需的扫描引擎数量。例如,如果需要在4小时内扫描10,000个资产,那么下面将计算所需的引擎数量:

对于100个线程的未认证扫描,平均资产扫描时间为3.5分钟:

= (1.2 x 3.5 min x 10,000)/(。85 x 100 x 240) =~ 2引擎需要

对于带有100个线程的认证扫描,我们将平均资产扫描时间更改为7.4分钟:

= (1.2 x 7.4 min x 10,000)/(。85 x 100 x 240) =~ 4发动机要求

请注意,所需的引擎数量可能由使用的扫描模板和网络拓扑中扫描目标的可访问性决定。上面的公式是用来指导确定纯粹吞吐量所需的引擎数量,并假设引擎可以访问所有被扫描的资产,资产可以平均分布在各个站点。

扫描时将使用多少网络带宽?

当应用程序通过网络扫描资产时,可能会消耗大量的网络资源。网络带宽占用量与同时扫描的设备个数、被扫描资产类型和扫描模板设置成正比。本节提供了在扫描网络资产时网络利用率的容量指导原则,以便管理员可以调整扫描窗口和扫描模板设置,以不影响其他关键网络流量或影响扫描结果的准确性。

下图表示了一个站点中不同资产数量的网络利用率,保持扫描线程数量不变(20),扫描端口数量不变(20),并执行未经认证的扫描:

由于上限是由扫描模板中定义的总扫描线程数决定的,所以在一定数量的资产之后,网络利用率将保持不变。

同时执行的扫描越多,在某一点上消耗的网络带宽就越多。下图展示了对固定数量资产执行的两种不同扫描场景下的网络带宽消耗情况

  • 场景1:一个站点- 20个线程配置-未经身份验证扫描
  • 场景2:两个站点-配置了20个线程(每个)-未经验证的扫描
  • 场景3:三个站点- 20个线程配置(每个)-未经身份验证扫描

下图显示了三种场景下的网络利用率比较:

当与其他站点同时执行扫描时,扫描时间会减少,但代价是网络带宽和CPU利用率。

峰值网络带宽(Mbps)= 0.4值。OfAssetsScanned Simultaneously_AverageNetwork带宽(Mbps)= 0.45 _x PeakNetworkBandwidth_

如何优化应用程序以获得最大扫描吞吐量?

优化数据库服务器以获得最大性能

该应用程序附带安装了一个PostgreSQL数据库服务器,可以根据控制台主机可用RAM的大小进行优化以获得更好的性能。调优PostgreSQL将提高集成时间,从而减少总体扫描时间。看到调谐PostgreSQL设置有关如何调优数据库的更多信息。

调优扫描模板以获得最大性能

扫描模板有各种各样的选项,可以调整,以提供更大的吞吐量时扫描。最有效的调优选项之一是通过设置来增加默认值的扫描线程数每个扫描引擎同时扫描的最大资产一般选项卡的扫描模板配置页面。当扫描资产时,有很多开放的服务,增加价值在每个资产上同时使用的最大扫描进程缩短扫描时间。要减少资产发现期间花费的时间,可以增加的最小值Packets-per-Second率发现性能单击扫描模板的。增加最小值可以极大地提高发现性能,但代价是额外的带宽使用,因此在增加这个值时要注意网络上的需求。

看到扫描模板有关如何调优模板以获得最大性能的信息。

使用多个扫描引擎进行缩放

正如扫描引擎性能部分,多个引擎可以提供更大的扫描吞吐量,并使部署水平扩展到大量资产。在扩展到多个引擎之前,请增加使用的线程数量,以便最大化每个引擎上可用的硬件资源。由于控制台负责生成报告、集成扫描结果和为最终用户提供内容,所以强烈建议在扫描数百个以上资产时将扫描委托给远程引擎。

使用多个安全控制台进行扩展

在区域区域有自己的扫描和报告需求的情况下,还可以部署多个控制台。添加额外的控制台支持报表、用户界面和集成资源的水平扩展。有关更多信息,请参见安全控制台放在哪里