[Oisf-users] Suricata Myricom and 10Gbit

Anoop Saldanha anoopsaldanha at gmail.com
Mon Mar 31 15:46:41 UTC 2014


Michal,

What ruleset are you using?  Have you disabled decoder rules?

On Mon, Mar 31, 2014 at 8:22 PM, Erich Lerch <erich.lerch at gmail.com> wrote:
> Michał,
>
> We have a similar setup, also with the Myricom 10gb interface.
>
> The following values give us fairly good results, although our traffic
> does not exceed 2Gbit at the moment.
> Performance also depends on the ruleset.
> If you have profiling compiled in, try without.
>
> SNF settings:
> SNF_NUM_RINGS=16  SNF_DATARING_SIZE=34359738368 SNF_DESCRING_SIZE=2147483648
>
> Suricata settings:
>
> ...
> max-pending-packets: 2048
> ...
> # very important:
> detect-engine:
>   - profile: custom
>   - custom-values:
>       toclient-src-groups: 200
>       toclient-dst-groups: 200
>       toclient-sp-groups: 200
>       toclient-dp-groups: 300
>       toserver-src-groups: 200
>       toserver-dst-groups: 400
>       toserver-sp-groups: 200
>       toserver-dp-groups: 200
>   - sgh-mpm-context: single
>   - inspection-recursion-limit: 3000
>   - rule-reload: true
> ...
> threading:
>   set-cpu-affinity: yes
>   [definition of cpu sets]
> ...
> defrag:
>   memcap: 512mb
>   hash-size: 65536
>   trackers: 65535
>   max-frags: 65535
>   prealloc: yes
>   timeout: 10
> ...
> flow:
>   memcap: 256mb
>   hash-size: 262144
>   prealloc: 300000
>   emergency-recovery: 30
> ...
> flow-timeouts:
>   [a lot more aggressive than the default!!!]
> ...
> stream:
>   memcap: 12gb
>   checksum-validation: no
>   inline: no
>   prealloc-sessions: 10000000
>   reassembly:
>     memcap: 16gb
>     depth: 6mb                 # reassemble 1mb into a stream
>     toserver-chunk-size: 2560
>     toclient-chunk-size: 2560
>     randomize-chunk-size: yes
> ...
>
> pcap:
>   - interface: snf0
>     threads: 16
>     buffer-size: 512mb
>     checksum-checks: no
>     promisc: no
> ...
>
> Also set the app-layer values much higher than the defaults.
>
> cheers,
> erich
>
>
> 2014-03-31 13:27 GMT+02:00 Michał Purzyński <michalpurzynski1 at gmail.com>:
>> Hello.
>>
>> I'm trying to tune Suricata to handle up to 10Gbit/sec of traffic (that's a
>> peak, jumps like crazy from 2.5 - 4.5 - 6 and up). So far my results were
>> quite bad, so I'm seeking help - must be missing something obvious here
>> judging by the numbers of articles where everyone seems to use Suricata on
>> 10Gbit traffic.
>>
>> Server:
>>
>> 2 x Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz (16 physical cores)
>> 64GB RAM
>>
>> NIC - Myricom 10Gb 10G-PCIE-8B-S with the Sniffer software loaded and
>> activated
>>
>> Software:
>>
>> This is Suricata version 2.0rc2 RELEASE
>>
>> Command line:
>>
>> SNF_NUM_RINGS=16 SNF_FLAGS=0x1 SNF_DESCRING_SIZE=1073741824
>> SNF_DATARING_SIZE=1073741824 SNF_DEBUG_MASK=0x3 suricata -c
>> /etc/nsm/nsm11-eth4/suricata.yaml -i eth4 --runmode=workers
>>
>> (16 threads, 1GB for each buffer)
>>
>> The Myricom debug output seems fine.
>>
>> Config file - pretty standard, most important things:
>>
>> max-pending-packets: 5000
>> runmode: workers
>>
>> detect-engine:
>>   - profile: medium
>>
>> Did not touch parameters here.
>>
>>   set-cpu-affinity: no
>>
>> Also default settings here.
>>
>>   detect-thread-ratio: 1.5
>>
>> (should not it be 1.0?)
>>
>> defrag:
>>   memcap: 512mb
>>   trackers: 65535 # number of defragmented flows to follow
>>   max-frags: 65535 # number of fragments to keep (higher than trackers)
>>   prealloc: yes
>>   timeout: 60
>>
>> flow:
>>   memcap: 32mb
>>   hash-size: 65536
>>   prealloc: 10000
>>   emergency-recovery: 30
>>
>> stream:
>>   memcap: 16gb
>>   max-sessions: 20000000
>>   prealloc-sessions: 10000000
>>   checksum-validation: yes      # reject wrong csums
>>   inline: no                    # no inline mode
>>   reassembly:
>>     memcap: 14gb
>>     depth: 6mb                  # reassemble 1mb into a stream
>>     toserver-chunk-size: 2560
>>     toclient-chunk-size: 2560
>>
>> pcap:
>>   - interface: eth4
>>     threads: 16
>>     buffer-size: 512kb
>>     checksum-checks: no
>>
>> The myricom tools show a high packet loss
>>
>>                      SNF recv pkts:            634485790
>>                 SNF drop ring full:            137774061
>>                         Interrupts:             12053363
>>            Net bad PHY/CRC32 drop:                32092
>>                  Net overflow drop:               219656
>>
>> Also note that it reports quite a few interrupts, which there should be
>> almost none.
>>
>> What is the direction I should go here? I know that tuning a high capacity
>> Suricata isn't exactly a single afternoon task, but I need to advise what to
>> do now, how to proceed, etc.
>>
>> Looking for clues.
>>
>> --
>> Michał Purzyński
>>
>> _______________________________________________
>> Suricata IDS Users mailing list: oisf-users at openinfosecfoundation.org
>> Site: http://suricata-ids.org | Support: http://suricata-ids.org/support/
>> List: https://lists.openinfosecfoundation.org/mailman/listinfo/oisf-users
>> OISF: http://www.openinfosecfoundation.org/
> _______________________________________________
> Suricata IDS Users mailing list: oisf-users at openinfosecfoundation.org
> Site: http://suricata-ids.org | Support: http://suricata-ids.org/support/
> List: https://lists.openinfosecfoundation.org/mailman/listinfo/oisf-users
> OISF: http://www.openinfosecfoundation.org/



-- 
-------------------------------
Anoop Saldanha
http://www.poona.me
-------------------------------



More information about the Oisf-users mailing list