9.3. 调整注意事项¶
用于检查最佳性能的设置。
9.3.1. 最大挂起数据包数:<number>¶
此设置控制引擎可以处理的同时数据包数。将此值设置得更高通常会使线程更忙,但将其设置得太高会导致性能下降。
建议设置:10000或更高。最大值约为65000。此设置为每个线程。内存在启动时设置,用法如下:
number_of.threads X max-pending-packets X (default-packet-size + ~750 bytes)
9.3.2. MPM算法:<AC |hs| AC BS AC KS>¶
Controls the pattern matcher algorithm. AC (Aho–Corasick
) is the default.
On supported platforms, 超扫描 is the best option. On commodity
hardware if Hyperscan is not available the suggested setting is
mpm-algo: ac-ks
(Aho–Corasick
Ken Steele variant) as it performs better than
mpm-algo: ac
9.3.3. 检测配置文件:<低 |medium| 高自定义>¶
检测引擎尝试将单独的签名拆分成组,以便只根据实际匹配的签名检查包。在大型规则集中,这将导致太多的组和内存使用相似的组合并在一起。配置文件设置控制合并的积极程度。的默认设置 high
通常已经足够好了。
“自定义”设置允许修改组大小:
custom-values:
toclient-groups: 100
toserver-groups: 100
一般来说,增加将提高性能。这将导致内存使用的最小增长。的默认值 toclient-groups
和 toserver-groups
具有 detect.profile: high
是75。
9.3.4. detect.sgh-mpm-context:<auto |single| 满>¶
多模式匹配器可以为每个签名组(完整)或全局(单个)提供上下文。自动选择基于 mpm-algo 挑选出来的。ac、ac bs、ac ks、hs默认为“单个”。将此设置为“满” mpm-algo: ac
或 mpm-algo: ac-ks
提供更好的性能。将此设置为“满” mpm-algo: hs
不建议使用,因为这会导致启动时间更长。而不是超扫描 detect.profile: high
或者可以使用更大的自定义组大小设置(如上所述),它提供比 ac
和 ac-ks
即使 detect.sgh-mpm-context: full
.
9.3.5. af包¶
如果使用 af-packet
(Linux上的默认设置)建议将af packet v3用于IDS/NSM部署。对于IP,建议使用af包v2。为了确保使用af包v3,可以在 af-packet
的配置部分苏瑞塔亚姆是这样的:
af-packet:
- interface: eth0
....
....
....
use-mmap: yes
tpacket-v3: yes
9.3.6. 戒指尺寸¶
戒指尺寸是另一个 af-packet
可考虑用于优化和性能优势的变量。它基本上是指每个线程的数据包的缓冲区大小。所以如果设置是 ring-size: 100000
如下所示:
af-packet:
- interface: eth0
threads: 5
ring-size: 100000
这意味着在5个线程的每个缓冲区中允许有100000个数据包。如果任何一个缓冲区被填满(例如,数据包处理跟不上),就会产生数据包 drop
统计日志中的计数器增加。
用于这些存储器的内存在启动时设置并专用,计算如下:
- ::
空军-包.线程X自动对焦-分组环-大小X(默认数据包大小+~750字节)
在哪里? af-packet.threads
, af-packet.ring-size
, default-packet-size
是否设置了值苏瑞塔亚姆. 例如,af packet的配置值可以通过在命令行上快速显示 suricata --dump-config |grep af-packet
.
9.3.7. stream.bypass¶
另一个可以用来提高性能的选项是 stream.bypass
. 在下面的示例中:
stream:
memcap: 64mb
checksum-validation: yes # reject wrong csums
inline: auto # auto will use inline mode in IPS mode, yes or no set it statically
bypass: yes
reassembly:
memcap: 256mb
depth: 1mb # reassemble 1mb into a stream
toserver-chunk-size: 2560
toclient-chunk-size: 2560
randomize-chunk-size: yes
当 stream.reassembly.depth
对于特定流,达到1mb。