-
Notifications
You must be signed in to change notification settings - Fork 3
Home
- nginx: 1.11.10
- ModSecurity: v3/dev/parser (8b8fd84)
- ModSecurity-nginx: v3/dev/parser (9f6d3a7)
- environment: 2-core VirtualBox VM on MBP A1502 (early 2015, 2-core i5 2.9GHz)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 39445.56 46228.25 44283.87 43476.616 2184.7312
latency (ms)
x 10 1.1 1.37 1.21 1.222 0.091627264
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 8071.25 11953.68 10634.85 10374.126 1200.2281
latency (ms)
x 10 4.23 7.82 5 5.358 1.2109941
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 238.8 259.02 246.88 247.418 5.9640549
latency (ms)
x 10 208.11 230.52 217.76 218.968 6.9131273
- nginx: 1.11.10
- ModSecurity: v3/master (3a41308)
- ModSecurity-nginx: master (134bd36)
- environment: 2-core VirtualBox VM on MBP A1502 (early 2015, 2-core i5 2.9GHz)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 38136.4 47561.79 44300.42 43351.954 2743.1755
latency (ms)
x 10 1.07 1.4 1.19 1.206 0.099911072
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 10120.76 12979.9 12727.41 12290.594 891.67524
latency (ms)
x 10 3.88 5.02 3.98 4.128 0.34726871
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 334.64 370.86 363.77 356.733 13.667706
latency (ms)
x 10 142.49 158.27 147.04 148.176 5.8598297
- nginx: 1.11.10
- ModSecurity: v3/dev/parser (8b8fd84)
- ModSecurity-nginx: v3/dev/parser (9f6d3a7)
- environment: 12-core KVM/libvirt VM on bare-metal server (Intel Xeon E5645 2.4GHz, 24 cores total)
- configuration details:
- nginx:
worker_processes 6; worker_cpu_affinity 111111000000;
- wrk:
taskset -c 0-5 wrk -t6 -c600 -d30s
(10 iterations)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 87538.41 97062.44 93506.49 92832.83 2717.0839
latency (ms)
x 10 6.22 6.88 6.49 6.508 0.21054427
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 27984.07 31588.76 31013.95 30484.634 1151.9494
latency (ms)
x 10 18.98 21.57 20.06 20.01 0.81266366
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 164.5 251.93 181.79 191.226 28.760167
latency (ms)
x 10 197.41 429.26 330.67 308.639 73.228166
The numbers for /modsec-off
and /modsec-light
with multi-worker nginx setup are significantly better than in single-worker mode, but /modsec-full
does not show any difference. In the process of investigation it turned out that disabling audit log (by setting SecAuditEngine Off
) greatly improves overall performance with OWASP CRS v3.0.0 loaded:
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 577.99 864.63 854.69 823.902 87.17359
latency (ms)
x 10 633.42 730.81 646.95 654.834 28.487218
Further investigation showed that in case of SecAuditEngine RelevantOnly
only one CPU core (among the set of cores nginx is using according to worker_cpu_affinity
) is 100% busy:
With SecAuditEngine Off
, all cores that are being used by nginx are constantly busy:
- nginx: 1.11.10
- ModSecurity: v3/master (53485c7)
- ModSecurity-nginx: master (5175214)
- environment: 2-core VirtualBox VM on MBP A1502 (early 2015, 2-core i5 2.9GHz)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 44040.08 56882.7 53699.65 51600.859 4057.3947
latency (ms)
x 10 0.87 1.14 0.99 0.977 0.084859361
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 10568.21 13532.37 12921.28 12336.21 1207.9385
latency (ms)
x 10 3.71 4.74 3.9 4.104 0.42893149
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 238.79 259.41 253.79 250.74 7.4913906
latency (ms)
x 10 207.47 221.61 213.96 213.635 5.7969556
- nginx: 1.11.10
- ModSecurity: v3/dev/speedup (d9fabea)
- ModSecurity-nginx: master (5175214)
- environment: 2-core VirtualBox VM on MBP A1502 (early 2015, 2-core i5 2.9GHz)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 48151.25 54508.49 52135.16 51337.515 2114.2494
latency (ms)
x 10 0.92 1.14 0.99 0.996 0.069633964
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 10456.84 13941.7 13011.89 12441.49 1375.0929
latency (ms)
x 10 3.59 4.8 3.97 4.078 0.48276518
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 270.44 284.01 278.54 278.824 4.1302763
latency (ms)
x 10 187.65 198.52 191.41 191.247 3.5242337
- nginx: 1.11.10
- ModSecurity: v3/master (b58f713)
- ModSecurity-nginx: master (3de175b)
- environment: 2-core VirtualBox VM on MBP A1502 (early 2015, 2-core i5 2.9GHz)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 46879.99 58925.23 53077.84 53435.713 3596.6361
latency (ms)
x 10 0.85 843.78 0.96 85.236 266.5252
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 10060.67 13613.14 12955.81 12213.674 1312.7484
latency (ms)
x 10 3.67 5.16 4.02 4.164 0.5084661
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 271.63 295.32 290.55 287.362 7.2825313
latency (ms)
x 10 179.23 192.48 183.71 185.278 4.2224369
- nginx: 1.11.10
- ModSecurity: v3/master (b58f713)
- ModSecurity-nginx: master (3de175b)
- environment: 12-core KVM/libvirt VM on bare-metal server (Intel Xeon E5645 2.4GHz, 24 cores total)
- configuration details:
- nginx:
worker_processes 6; worker_cpu_affinity 111111000000;
- wrk:
taskset -c 0-5 wrk -t6 -c600 -d30s
(10 iterations)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 97613.95 101573.29 99853.65 99354.804 1370.9853
latency (ms)
x 10 5.94 6.85 6.11 6.145 0.2596258
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 23101.87 31886.19 31184.36 30033.129 2761.2698
latency (ms)
x 10 18.89 26.73 20 21.017 2.5738603
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 931.68 946.17 939.08 939.032 4.0696869
latency (ms)
x 10 580.29 626.9 600.27 598.622 14.275303
With the recent sources all the nginx workers are busy while benchmarking /modsec-full
location (previously only one worker process reached to 100% CPU usage).
Also, turning SecAuditEngine Off
does not affect latency && rps anymore.
- OS updated to Ubuntu 17.04 "zesty" (kernel 4.10.0-30-generic #34-Ubuntu)
- nginx: 1.13.4
- ModSecurity: v3/master (8d6209f)
- ModSecurity-nginx: master (abbf2c4)
- environment: 12-core KVM/libvirt VM on bare-metal server (Intel Xeon E5-2660 2.20GHz, 32 cores total)
- configuration details:
- nginx:
worker_processes 6; worker_cpu_affinity 111111000000;
- wrk:
taskset -c 0-5 wrk -t6 -c600 -d30s
(10 iterations)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 53343.88 103336.29 100394.62 94998.443 14838.037
latency (ms)
x 10 5.81 11.35 6.12 6.58 1.6827689
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 20488.98 29468.81 28974.4 28141.574 2706.7983
latency (ms)
x 10 20.44 29.72 21.36 22.29 2.7457927
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 813.95 965.7 940.75 931.136 42.406455
latency (ms)
x 10 541.48 627.62 605.03 599.103 23.770327
- nginx: 1.13.4
- ModSecurity: v3/master (04f7009)
- ModSecurity-nginx: master (abbf2c4)
- environment: 12-core KVM/libvirt VM on bare-metal server (Intel Xeon E5-2660 2.20GHz, 32 cores total)
- configuration details:
- nginx:
worker_processes 6; worker_cpu_affinity 111111000000;
- wrk:
taskset -c 0-5 wrk -t6 -c600 -d30s
(10 iterations)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 59232.06 98088.52 94674.82 90202.254 11188.852
latency (ms)
x 10 6.18 10.15 6.44 6.799 1.1892336
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 25687.36 26564.29 26299.24 26197.744 294.37041
latency (ms)
x 10 22.76 25.53 25.08 24.543 0.91399064
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 988.93 1037.52 1008.77 1010.23 12.988515
latency (ms)
x 10 575.26 604.29 589.26 590.084 8.6321379
- nginx: 1.13.7
- ModSecurity: v3/master (81e1cdc)
- ModSecurity-nginx: master (a2a5858)
- environment: 12-core KVM/libvirt VM on bare-metal server (Intel Xeon E5-2660 2.20GHz, 32 cores total)
- configuration details:
- nginx:
worker_processes 6; worker_cpu_affinity 111111000000;
- wrk:
taskset -c 0-5 wrk -t6 -c600 -d30s
(10 iterations)
Summary for /modsec-off, RPS (count):
N Min Max Median Avg Stddev
x 10 98673.71 109369.41 107954.84 106506.79 3085.2164
latency (ms)
x 10 5.48 6.08 5.59 5.666 0.18530455
Summary for /modsec-light, RPS (count):
N Min Max Median Avg Stddev
x 10 27851.53 29340.27 28257.97 28321.345 475.51244
latency (ms)
x 10 20.8 22.41 22.26 21.944 0.5227959
Summary for /modsec-full, RPS (count):
N Min Max Median Avg Stddev
x 10 720.59 731.77 726.96 726.013 4.0179377
latency (ms)
x 10 425.48 743.31 604.91 606.949 117.04856
- nginx: 1.13.7
- ModSecurity: revisions from a2427df27f482c64ea8666dca9552c67d3a68904 to head of v3/master
- ModSecurity-nginx: https://github.com/SpiderLabs/ModSecurity-nginx/releases/tag/v1.0.0
- environment: 12-core KVM/libvirt VM on bare-metal server (Intel Xeon E5-2660 2.20GHz, 32 cores total)
- configuration details:
- nginx:
worker_processes 6; worker_cpu_affinity 111111000000;
- wrk:
taskset -c 0-5 wrk -t6 -c600 -d30s
(3 iterations, averages from ministat for/modsec-full
location)
;rps_avg,latency_avg,revision,date,commit_log
890.54667,601.61,a2427df27f482c64ea8666dca9552c67d3a68904,2017-08-27 23:39:43 -0300,fix: ignore .git directory while generating the release file
893.12,601.18,119a6fc07482096e8429399dc2d7c0d3f903a7ae,2017-09-07 22:23:07 -0300,test-only: Placing a mutex while evaluating the pm operator
896.33667,595.66667,7d786b335024f2c896eb30830427c54f28dcc44c,2017-09-07 22:23:34 -0300,Makes pm mutex optional via configuration flag
892.11333,605.76667,1c91e807778f826b20d45abcef9a204e8f313d01,2017-09-07 22:23:48 -0300,Extends acmp_prepare to pm_from_file
884.25333,602.43667,48be601ca74f2f6496c8fb47371a6f9d884f9cf1,2017-09-26 16:33:48 +0000,Very first version of our changes file
888.53333,601.2,082a0d3acabc6e5d87f7202b7fad9e9ba7d64953,2017-09-11 12:44:53 +0000,Adds ios::[open|app] to the parallel.cc to fix write over SELinux
889.55,599.48,4909713991765515b0b6120bd2cc4c3f8092aac6,2017-09-27 12:41:40 +0000,Adds CHANGES info for #1562
890.33667,604.25,495b47d8a21f209b4c297d207bccb4874f89c271,2017-09-21 17:48:42 +0200,Eliminate some reorder and sign warnings
889.54,601.62,ba4e2e3737837a888d1cf414f32658d00c1c5137,2017-09-29 17:18:06 +0000,Adds CHANGES info for #1572
902.22333,593.65667,a5266d6d1c144ccd5fbbba836e46eec502867abd,2017-09-21 17:51:06 +0200,Store the connection and url parameters in std::string
906.69,588.47333,658c9b5daecf80e5509b8cff45bb41f3f91982bf,2017-09-29 16:31:03 +0000,Adds CHANGES info for #1571
897.98667,604.07333,210e72aa213a1a2b8feec705257484f748395ed2,2017-10-06 18:42:32 +0000,Consideres under quote variable while loading the rules
898.01333,607.67667,a76030256ea914ca7bedf1a6636b4a3e3afa8713,2017-08-17 21:03:39 +0300,support macro expansion in @rx
905.4,593.38333,10c4f9b1b2476f71159fa5569d9238001760404c,2017-08-19 10:21:57 +0300,add a test for macro expansion in @rx
903.18,590.3,9e9db08b874fe7c1200aafd95fe6bccd41148ae5,2017-08-19 11:16:54 +0300,add @rx macro expansion test to list in Makefile
673.38,764.12667,fa7973a4ef99b0d91122d16ffee51744288d037f,2017-10-06 20:32:40 +0000,Removes a regex optimization added at #1536
670.78333,764.32667,2988c5bb07c4a5ad434855413f20fec11008c818,2017-10-06 20:35:09 +0000,CHANGES: add info about #1536
674.66333,751.00667,63bef3d142b2ae25ed42d344c40729fb5f3d552e,2017-10-03 20:50:02 +0000,Support to JSON stuff on serial logging
674.18,753.06,d285bc02b87a03e591c0b58f4abdf981c1085d52,2017-10-06 16:58:17 -0400,Add missing statements
675.27667,756.07,e09304a08ae2443acb21632b557e451abcab6c6d,2017-10-09 09:08:31 -0300,CHANGES: Adds info about #1583
671.56333,758.71,d3f979f1d237366fd1f494867ede326ec9a2305c,2017-10-10 09:30:21 -0300,Makes auditlog more verbose on debug logs
670.88667,762.67333,30364628a02b744651160adac8d2e40b00be7e3e,2017-10-10 10:25:22 -0300,Makes clear to the user when audit log is empty due to missing JSON sup.
670.15667,764.44,41bf7f716bb2e3bbb91bc4d7931a52c7e23f66b7,2017-10-10 15:03:50 -0300,Calls xml init and xml cleanup to avoid memory leak
668.83,762.43333,20edf9ab77e4c8016776eb10ffc11e8b6e683133,2017-10-10 18:14:41 -0300,Removes xml initialization from CURL if/def
674.1,759.65667,1ad95254cd8caec4a0af83d01844fc3cc65f3ce7,2017-10-11 12:37:13 -0300,Avoids unicode initialization on every rules block
675.15667,758.09,1518c43d6157e0762c138a49e840bacbbd387e66,2017-10-11 23:18:44 -0300,Adds test case for issue #1565
Reason: https://github.com/SpiderLabs/ModSecurity/commit/fa7973a4ef99b0d91122d16ffee51744288d037f