容量需求规划
容量规划是通过确定当前使用趋势和分析增长模式来确定应用程序在一段时间内所需资源的过程。随着使用量的增长,主要的挑战是确保系统性能在很长一段时间内保持一致,并且系统有足够的资源来处理未来需求的容量。本文档提供了基于预期使用的应用程序容量使用模式的详细信息,以便您可以计划、分析和解决容量问题,并根据需要分配资源,以支持您的预期使用。
该方法首先分析特定条件下的当前容量,如资产数量、执行扫描的数量、生成报告的频率和数量,然后规划未来的容量需求。为了准确地捕捉不同类型的资产对扫描时间、网络利用率和磁盘使用率的影响,我们使用各种各样的单个资产完成了测试。然后使用这些测试的结果创建公式,您可以使用这些公式预测各种使用场景的容量需求。然后使用真实的扫描场景对这些公式进行测试,以获得磁盘使用情况、扫描持续时间和网络使用情况的可重复的经验测量值。
如果您是管理员,请使用容量规划指南回答以下问题:
- 我的部署需要多大的控制台?
- 扫描平均资产需要多长时间?
- 网络延迟如何影响扫描时间?
- 我的控制台上需要多少磁盘空间?
- 一个扫描引擎可以处理多少资产?
- 用Y引擎扫描X资产需要多长时间?
- 我需要多少引擎才能在Y小时内扫描X资产?
- 扫描时将使用多少网络带宽?
- 我如何调整应用程序最大限度地扫描?
我的部署需要多大的控制台?
下面是根据您的扫描需求部署所需的控制台大小的一些一般指导原则。该表显示了每周扫描时推荐的控制台大小。所提供的规范基于Rapid7的预构建硬件设备,当不使用Rapid7的预构建设备时,这些规范也可以作为建议:
数量的资产 |
推荐 |
规范 |
|---|---|---|
<5,000. |
R7-1000入口级设备 |
|
5000 - 20000 |
R7-3000中层设备 |
|
20000 - 150000 |
r7 - 5000企业 |
|
150000 - 400000 |
r7 - 5000 x企业+ |
|
|
多个企业或企业+控制台 |
|
扫描平均资产需要多长时间?
扫描持续时间将基于安装的操作系统,资产响应,安装的应用程序,安装的应用程序以及修补程序级别的响应性。除了扫描配置和网络条件外,这些变量会影响扫描持续时间和磁盘使用情况。
以下是使用Full Audit模板时的平均扫描时间和磁盘使用情况的总结,在一个/20网络范围内,大约有1,000个资产处于活动状态。我们将在以后的计算中使用这些值,根据资产、引擎和线程的数量确定总扫描持续时间。
| 扫描类型 | Vulns /资产 | 平均资产扫描持续时间 | 平均资产磁盘使用率 |
|---|---|---|---|
| 未经身份验证 | 18 | 3.5分钟(射程12 s - 29分钟) | 37 KB |
| 通过身份验证 | 307. | 7.4分钟(范围12 s - 38分钟) | 422 KB |
测试结果表明,由于访问资产时评估的本地软件数量的增加,认证扫描所花费的时间大约是未认证扫描的两倍。
网络延迟如何影响扫描时间?
扫描持续时间可以根据网络延迟而变化。下图显示了在扫描漏洞时两个采样资产的扫描时间(无策略检查)在不同的网络延迟下的凭据。在容量规划测试中,观察到,100 ms的网络延迟增加扫描时间15-25%,300 ms的网络延迟增加扫描时间约为所测试的资产约35%。实际影响可能因扫描的资产和扫描设置而异。
我的控制台上需要多少磁盘空间?
我们将使用以下价格使用以下值,以便我们收集的“平均资产磁盘使用”。经过身份验证的扫描将消耗未经身份验证的扫描将消耗的10倍。这是因为经过身份验证的扫描将评估本地软件包中的漏洞和未经身份验证的扫描不会评估的文件共享。
扫描类型 |
Vulns /资产 |
平均资产扫描持续时间 |
平均资产磁盘使用率 |
|---|---|---|---|
未经身份验证 |
18 |
3.5分钟 |
37 KB |
通过身份验证 |
307. |
7.4分钟(范围12 s - 38分钟) |
422 KB |
总结趋势或修复信息的报告比导出所有资产和漏洞信息的报告和导出格式更少的磁盘空间。因此,要通过报告确定磁盘使用情况,创建了〜1,000个资产上的所有字段的CSV导出,以便计算每个资产用于经过身份验证和未经身份验证的扫描的磁盘使用情况。这将表示每次扫描后检索系统的所有数据。
扫描类型 |
平均粗糙 |
报告模板 |
平均资产磁盘使用率 |
|---|---|---|---|
未经身份验证 |
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 |
米 |
2,500 MB. |
2,500 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
=953,060 MB(〜.95 TB)
为了保证磁盘容量,请通过“设置数据保留首选项”章节设置合适的数据保留策略。
一个扫描引擎可以处理多少资产?
真实世界的扫描吞吐量将取决于网络条件、平均资产扫描时间和调度。如果给定的引擎正在处理并发扫描,请记住线程的数量也会增加。例如,如果一个8 GB引擎分配给两个网站和扫描1000资产在每个站点扫描模板,同时扫描100资产,然后并发资产实际上是200,你可能想改变计划或增加内存或减少并发的资产。控件上设置了要扫描的并发资产的数量扫描模板配置页面使用每个扫描引擎同时扫描的最大资产选择在一般选项卡。要学得多,看得多调优部分。
下表提供了一般指南,即根据一般指南,给定扫描引擎可以在一天中扫描多少资产。
引擎的记忆 |
引擎内核 |
并发资产 |
未经身份验证 |
通过身份验证 |
|---|---|---|---|---|
8 GB. |
4 |
100. |
每天0-10,000. |
每天0 - 5000 |
16 GB |
8 |
200. |
每天一万到两万 |
每天五千到一万 |
32 GB. |
8 |
400 |
每天20,000 - 40,000 |
每天一万到两万 |
用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小时
执行验证扫描的总时间10,000个资产,其中一个扫描引擎是如下所示:
=(1.2 x 3.5 min x 10,000)/(85 x 4 x 100)= 123分钟=〜2小时
这个图表显示了使用不同数量的线程和引擎时对扫描持续时间的影响。如您所见,增加每个引擎的线程数比增加引擎更有效。然而,在内存或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_x no.fassetsscanned同时_AverageNetwork带宽(Mbps)= 0.45 _x PeakNetworkBandwidth_
如何调整应用程序以获得最大扫描吞吐量?
优化数据库服务器以获得最大性能
该应用程序附带安装了一个PostgreSQL数据库服务器,可以根据控制台主机可用RAM的大小进行优化以获得更好的性能。调优PostgreSQL将提高集成时间,从而减少总体扫描时间。看到调谐PostgreSQL设置有关如何调整数据库的更多信息。
调整扫描模板以获得最大性能
扫描模板具有各种选项,可以调整,以在扫描时提供更大的吞吐量。最有效的调谐选项之一是通过设置增加默认值的扫描线程数每个扫描引擎同时扫描的最大资产在这方面一般选项卡的扫描模板配置页面。当扫描资产时,有很多开放的服务,增加价值每个资产上同时使用的最大扫描过程缩短扫描时间。要减少资产发现期间花费的时间,可以增加的最小值数据包 - 每秒速率在这方面发现性能单击扫描模板的。增加最小值可以极大地提高发现性能,但代价是额外的带宽使用,因此在增加这个值时要注意网络上的需求。
看到扫描模板有关如何调优模板以获得最大性能的信息。
使用多个扫描引擎进行缩放
正如扫描引擎性能部分,多个引擎可以提供更大的扫描吞吐量,并使部署水平扩展到大量资产。在扩展到多个引擎之前,请增加使用的线程数量,以便最大化每个引擎上可用的硬件资源。由于控制台负责生成报告、集成扫描结果和为最终用户提供内容,所以强烈建议在扫描数百个以上资产时将扫描委托给远程引擎。
使用多个安全控制台进行扩展
在区域区域有自己的扫描和报告需求的情况下,还可以部署多个控制台。添加额外的控制台支持报表、用户界面和集成资源的水平扩展。有关更多信息,请参见安全控制台放在哪里.