如何排除 CTD 处理值在 > 调试 dataplane pow 性能中突然升高或运行过高的故障
15900
Created On 06/06/23 21:01 PM - Last Modified 08/23/23 18:40 PM
Objective
CLI 命令> 调试 dataplane pow 性能显示 CPU 执行各种软件功能以处理通过防火墙的流量所需的时间(以微秒为单位)。当 CTD 资源接近防火墙中的最大使用率时,与较低的正常工作时间相比,此输出中的值可能会更高或出现峰值,并且可能会看到的症状包括:CPU 百分比高、流量/应用程序缓慢或故障、数据包描述符(片上)和数据包缓冲区使用率高等。 以下功能通常负责在流量通过防火墙时执行 CTD 检查(内容和威胁检测):
> debug dataplane pow performance func max-μs avg-μs count total-μs ac-max-μs ac-avg-μs ac-count ac-total-μs sml_vm 0 276491782.0 0 0 65 1.1 312208 369019 ctd_token 0 36.0 27197221 0 180 20.8 18000 374440 detector_run_p1 0 0.0 0 0 66 4.9 8509 42053 detector_run_p2 0 0.0 0 0 27 1.5 8786 13669 regex_lookup 0 0.0 0 0 1093 7.0 11494 81464注:(上述输出中的μs代表微秒)
示例:如果数数突然变高但是平均μs保持较低水平,CPU 仍在快速检查数据包,只是此时进入防火墙的流量(计数)较高。 因此,重要的是单独解释上述值,并将它们与不存在问题时的工作时间进行比较,以确定它们是否是问题的根本原因。 (即,如果它们仅在问题发生期间变高,则它们可能与导致问题有关)。 在示例中,其中数数走高但是平均μs保持较低水平,您只需评估传入流量即可查看哪些新流量进入导致了此峰值数数看看这是否是问题的根本原因。
在正常、工作、无问题的条件下确定上述值的基线非常重要,这样,如果确实出现由上述值引起的问题,异常高于正常值的值就会脱颖而出、被注意到并被理解(要查看此输出的历史值以比较工作时间与非工作时间,请查看dp-monitorX.log使用命令: > 少 mp-log dp-monitor<1-5>.log ) 。
Environment
- 泛操作系统
- CTD(内容和威胁检测)
Procedure
可能导致 CTD 资源使用量激增或过高的最常见场景涉及网络、流量概况/模式或特定的新大流量的最新变化,例如:
- 引入了对防火墙检查引擎较大或较重的某种新流量,例如:unknown-udp、unknown-tcp、ms-ds-smb、mssql-db 等。
- 大量或速率异常高的较重类型流量正在通过防火墙,例如:unknown-udp、unknown-tcp、ms-ds-smb、mssql-db 等。
- 所有或大量流量都会通过附加了“严格”安全配置文件的一个安全策略允许规则(特别是当流量接近该模型的最大值时)性能和容量- 在这种情况下, sml_vm , ctd_token ,探测器运行_p1 , 和探测器运行p2预计会很高)。
- 所有或大部分流量都会经过一个广泛的安全配置文件规则,该规则上配置了许多繁重或严格的安全配置文件,特别是当有大量未分类流量(未知 udp、未知 tcp)或高数据速率流量(ms-ds-smb、mssql-db 等)通过防火墙时
- 配置了低效的自定义 URL 过滤、自定义应用程序或自定义威胁签名/对象,其中使用了太多通配符、仅使用单个通配符、太宽泛等(这种错误配置通常会导致该功能正则表达式查找专门去高)。 要解决此问题,请删除 URL 过滤对象、自定义应用程序或自定义签名中所有影响性能、低效的通配符或模式 - 请参阅URL 中嵌套通配符 (*) 可能会严重影响性能更多细节
- 在问题发生之前获取这些值的基线(或检查历史值)。如果当前值为sml_vm , ctd_token ,探测器运行_p1 , 和探测器运行p2是很多高于之前看到的值,那么它们可能是高 CPU 或流量问题的罪魁祸首。 如果当前值在相同的作为问题出现时的旧值不是发生,那么它们可能不是问题的罪魁祸首或根本原因。 如果该值异常高于问题开始发生之前的基线值,则继续执行下面的步骤 2。
- 确定引入了哪些新流量(按源 IP、源端口、目标 IP、目标端口、应用程序)并开始导致这些值增加
- 导航ACC >网络活动选项卡 > 查看源IP活动,目的地 IP 活动, 和应用程序使用图表
- 检查并评估上述图表中作为异常值占用大量字节、会话、数据包速率等的任何流量(特别是新的自问题开始发生以来才出现的流量)。 仅在出现问题时查找图表中显示的特定流量或应用程序是发生和是不是当问题没有发生时出现
- 运行 CLI 命令: > 显示正在运行的应用程序统计信息检查任何应用程序的任何列是否具有异常高的值(特别是对于数据速率较高的应用程序,例如:web-browsing、unknown-udp、unknown-tcp、dns、ms-ds-smb、ms-ds-smbv2、ms-ds-smbv3 和 mssql-db,或任何自定义应用程序)
- 如果在上述步骤中任何流量或应用程序可能成为违规者,即它们的值高于正常、工作、非问题时间(没有流量/高 CPU 问题),则暂时停止该流量通过防火墙,并查看 CTD 相关值是否在> 调试 dataplane pow 性能(sml_vm、ctd_token、 detector_run_p1 或 detector_run_p2)返回到正常水平,如果流量问题现在消失了
- 通过以下方式减少对该特定流量进行的任何检查:
注意:上述选项 B、C 和 D 将减少对流量进行的安全检查量。 尽可能仅使用上述选项 A
Additional Information
在对高 DP CPU 进行故障排除期间如何解释“调试数据平面 pow 性能”的输出
如何缓解由于高应用程序使用率而导致的高 DP CPU 问题
如何对高数据平面 CPU 进行故障排除
URL 中嵌套通配符 (*) 可能会严重影响性能
提示与技巧:自定义漏洞