По умолчанию производительность СОВ настроена для одноядерных аппаратных платформ. Настройки производительности прописаны в конфигурационном файле /etc/suricata/suricata-debian.yaml. Администратору доступно изменить настройки по умолчанию для оптимизации производительности в зависимости от следующих показателей:
• количества ядер на аппаратной платформе – применяются настройки согласно Таблице 1;
• объема установленной оперативной памяти – применяются настройки согласно Таблице 2.
Таблица 1
|
Количество ядер |
|
>1 |
1 (по умолчанию) |
|
af-packet: |
threads: auto |
#threads: auto |
|
cluster-type: cluster_cpu |
cluster-type: cluster_flow |
|
use-mmap: yes |
#use-mmap: yes |
|
ring-size: 300000 |
#ring-size: 2048 |
|
#- interface: default |
interface: default |
|
max-pending-packets: 1024 |
#max-pending-packets: 1024 |
|
runmode: workers |
#runmode: autofp |
defrag: |
#hash-size: 65536 |
hash-size: 65536 |
|
#prealloc: yes |
prealloc: yes |
|
#timeout: 60 |
timeout: 60 |
flow: |
memcap: 64mb |
memcap: 128mb |
|
hash-size: 8192 |
hash-size: 65536 |
stream: |
memcap: 3gb |
memcap: 64mb |
|
max-sessions: 20000000 |
|
|
prealloc-sessions: 500000 |
|
|
#checksum-validation: yes |
checksum-validation: yes |
|
inline: no |
inline: auto |
reassembly: |
memcap: 4gb |
memcap: 256mb |
|
#randomize-chunk-size: yes |
randomize-chunk-size: yes |
|
set-cpu-affinity: yes |
set-cpu-affinity: no |
cpu-affinity: |
- management-cpu-set: |
- management-cpu-set: |
|
cpu: [ "all" ] |
cpu: [ 0 ] |
|
mode: "balanced" |
- receive-cpu-set: |
|
prio: |
cpu: [ 0 ] |
|
default: "low" |
- worker-cpu-set: |
|
- detect-cpu-set: |
cpu: [ "all" ] |
|
cpu: ["all"] |
mode: "exclusive" |
|
mode: "exclusive" |
prio: |
|
prio: |
low: [ 0 ] |
|
default: "high" |
medium: [ "1-2" ] |
|
|
high: [ 3 ] |
|
|
default: "medium" |
Таблица 2
|
Объём памяти [Gb] |
||||
8 |
16 |
32 |
64 |
||
stream: |
memcap: |
3gb |
6gb |
16gb |
16gb |
reassembly: |
memcap: |
4gb |
8gb |
18gb |
18gb |
|
depth: |
1mb |
1mb |
2mb |
2mb |
max-pending-packets: |
4096 |
8192 |
8192 |
8192 |
Шаг 1: В конфигурационном файле обновлений /etc/suricata/suricata-debian.yaml пропишите необходимые настройки (согласно Таблице 1 и Таблице 2). После произведенных изменений пересчитайте контрольную сумму файла /etc/suricata/suricata-debian.yaml и перезапустите функции мониторинга СОВ:
run service ids stop
run service ids start
Шаг 2: При необходимости измените интерфейс мониторинга СОВ (см. Раздел «Изменение интерфейса для анализа трафика»).
Шаг 3: В некоторых случаях настройки сетевого драйвера требуют корректировки. Так, для igb-драйвера необходимо создать файл /etc/modprobe.d/igb.conf следующего вида:
alias ethX igb # (ethX – интерфейс для анализа трафика)
options igb InterruptThrottleRate=2,2 RSS=2,2 QueuePairs=1,1 (для двухъядерного процессора)
options igb InterruptThrottleRate=4,4 RSS=4,4 QueuePairs=1,1 (для четырехъядерного процессора)
options igb InterruptThrottleRate=6,6 RSS=6,6 QueuePairs=1,1 (для шестиядерного процессора)
и т.д.
Примечание.
Для драйверов ixgbe и vmxnet3
изменение настроек не требуется. Посмотреть тип драйвера на интерфейсе
можно командой:
run ethtool -i ethX
где
ethX – интерфейс для анализа трафика
Шаг 4: Для активации всех измененных настроек необходимо применить скрипт балансировки /opt/S-Terra_IDS/bin/irq_balance.sh к интерфейсу мониторинга командой:
run /opt/S-Terra_IDS/bin/irq_balance.sh ethX
где
ethX – интерфейс для анализа трафика
Внимание! |
Для применения скрипта необходимо, чтобы сетевой драйвер поддерживал RSS. |