Deep CDR Performance (Throughput)

Performance Tuning Guide

Processing time and resources consumed by the engine vary relatively greatly depending on several aspects, e.g., nature and complexity of file structure, number of objects or components inside input files, etc. File size can be an aspect but is not necessary to contribute proportionally to processing time and resources consumption.

Depending on load and its complexity, users can tune some parameters to achieve a suitable balance on processing speed and throughput.

  • Timeouts: a duration given to the engine for processing a file. Higher value gives the engine more chances to complete processing with complex files.

    • To set a value for this parameter, go to Workflow Management > Workflows > [Workflow name] > Deep CDR
  • Parallel count: number of files being processed by the engine in parallel. Lower value puts low stress on the engine, giving it chances to complete processing with complex files.

    • Too large value can cause a domino effect that results in series of failures due to processing timed out.
    • Ones may keep it at 20 by default and, when necessary, should not increase it over 40.
    • To set a value for this parameter, see parallelcount_ds on MetaDefender Configuration.
  • Number of Image Processing Threads: number of CPU cores being used for processing images. Higher value may drain CPU resources. Recommended value: <number of CPU cores>/8.

    • To set a value for this parameter, go to Inventory > Modules > Deep CDR.

Load with complex files

  • Timeouts should be set to a high value, e.g., 30 minutes or 60 minutes.
  • Parallel count should be set to a low value, e.g., 15 or 10.
  • Number of Image Processing Threads should be set as recommended, <number of CPU cores>/8.

Load with less complex files

  • Timeouts can be set to a low value, e.g., 5 minutes or 10 minutes.
  • Parallel can be set to a high value, e.g., 20 but should not exceed 40.
  • Number of Image Processing Threads should be set as recommended, <number of CPU cores>/8.

Throughput Test

We do not guarantee the same performance in your environment. Performance can vary significantly depending on data sets and systems used when running the tests. The sole purpose of this section of the User Guide is to provide a high-level indicator of performance impact when enabling sanitization in your business logic.

Windows System Info

  • RAM: 32.0 GB
  • CPU: Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz
  • OS: Window 10 x64
  • Disk Drive: SSD 100.0 GB

Linux System Info

  • RAM: 32 GB
  • CPU: 16
  • OS: CentOS Linux release 7.6.1810
  • Disk Drive: 100 GB

Resources

  • MetaDefender Core version

    • v5.x Windows: MetaDefender Core v5.0.0 with 8 engines
    • v5.x Linux: MetaDefender Core v5.0.0 with 10 engines
  • Default Deep CDR configuration

    • Window version: 6.0.0.10522

Test Results

Conversion typeTotal fileAverage file size (KB)Average Time (s) WindowsAverage Time (s) Linux
pdf2pdf700840.6080.6120.371
ai2ai5001218.3850.3190.249
docx2docx700423.3940.3520.299
dotx2dotx600595.4350.3710.312
docm2docm600159.1450.4510.246
dotm2dotm450891.8690.4220.384
xlsx2xlsx750188.0210.3270.208
xlsm2xlsm300255.1250.4590.359
xlsb2xlsb40091.1810.2620.224
xltx2xltx500175.4460.2810.196
xltm2xltm600242.9170.3730.206
pptx2pptx600920.0620.5480.563
pptm2pptm4501316.6830.6050.714
potx2potx300532.5950.4410.466
potm2potm300534.0490.4720.484
ppsm2ppsm300533.0870.4550.483
ppsx2ppsx300661.1060.4170.331
doc2doc800490.1120.4910.477
dot2dot500222.8720.3660.349
xls2xls1000711.5960.6560.408
xlt2xlt900856.0130.7400.379
ppt2ppt5001340.3490.9090.948
pot2pot2001455.6100.7520.673
pps2pps2001324.3900.6970.621
jpg2jpg700712.8400.4980.369
png2png700469.6960.6880.509
bmp2bmp600788.2150.2930.276
gif2gif4002055.7880.8330.406
tiff2tiff300125.9372.3361.589
html2html2000333.1080.2320.206
rtf2rtf2000119.6240.1950.192
csv2csv1350129.2330.1840.180
hwp2hwp1111538.3380.2830.253
hwt2hwt1111538.3380.2440.212
hwpx2hwpx500550.7250.2770.208
jtd2jtd1112799.9420.2260.212
jtdc2jtdc900930.7780.2030.187
svg2svg180019.5660.1790.180
emf2emf1900343.2600.1870.183
wmf2wmf2000165.2670.2070.183
vsdm2vsdm600204.4970.3020.248
vsdx2vsdx800101.8890.2300.210
vssm2vssm600244.6800.3830.358
vssx2vssx60055.2650.1900.226
vstm2vstm600207.6890.3840.378
vstx2vstx50054.5810.1980.225
vdx2vdx200903.0180.5240.316
vsx2vsx200435.2600.3480.307
vtx2vtx200582.1170.4650.317
txt2txt1000101.7320.1740.197
xml2xml2700130.7110.1780.187
xml-doc2pdf800246.2130.1990.248
xml-docx2pdf500263.2720.2150.269
xml-xls2pdf550366.0420.3100.867
odt2odt1000271.2580.3310.462
ott2ott1000280.9820.3400.492
ods2ods79966.6080.1950.186
ots2ots800129.7610.2530.241
odp2odp7001128.3880.6451.008
otp2otp700699.0480.4490.701
show2show450825.7880.4690.442
cell2cell700136.6280.2280.204
ico2ico500191.9100.1840.191
cur2cur55043.6260.1760.171
dwg2dwg900567.5970.1940.234
dwt2dwt900567.5970.1930.22
dws2dws900567.5970.1950.225
dwf2pdf40085.6330.7681.029
dxf2pdf80077.9710.1770.565
hta2hta600366.1050.3740.357
3ds23ds5501093.8540.1980.220
dae2dae650868.0290.2220.214
drc2drc80067.5990.2490.264
u3d2u3d750515.6370.2420.284
rvm2rvm6001251.0320.2040.234
ics2ics60031.3810.1820.231
vcs2vcs7500.4360.1740.287
wdp2wdp4002343.9690.7010.630
dcm2dcm7003320.8390.3240.357
sldx2sldx600920.0620.5360.554
sldm2sldm4501316.6830.6140.637
webp2webp300290.2960.8271.426
lnk2lnk4001.6230.1900.267
avi2avi4003005.9670.3120.157
mp32mp33004293.6600.3290.260
mpeg2mpeg10013352.2400.6950.343
wav2wav10013425.5000.7400.365
mht2pdf700308.1380.4520.214
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard