Skip to main content
Version: 2.9.0

Halo

Halo Performance Summary​

Overview: Industry-Leading Performance​

The performance of the Glasswall CDR Platform depends on several factors, including:

  • File type, size, and complexity
  • The number of Glasswall engines available for processing
  • Current traffic/load on the system

Every file has a unique Glasswall engine rebuild time, which directly impacts total processing time. More engines enable more files to be processed concurrently.

Example:
1 deployed engine = 1 concurrent rebuild
5 deployed engines = 5 concurrent rebuilds

Note: The number of engines does not equal the number of concurrent API requests the platform can handle. For best performance, keep concurrent API requests at or below the number of available engines.


Factors Influencing Performance​

1. File Type​

  • Complex files (e.g. PDFs, archives) take longer than simpler formats (e.g. images).
  • Archives process slower as each file inside is treated separately.

2. File Size​

  • Larger files require more scanning and rebuilding.
  • Example: A 2MB PDF takes significantly longer than a 20KB PDF.

3. Current Load​

  • When concurrent requests exceed the number of engines, files are queued.
  • Queued files are delayed by the processing time of earlier files in the queue.
  • Wait times vary based on file complexity and processing time of prior batches.

Test Summary​

  • Files Tested: 2000 business files
  • Size Range: 0.05 MB – 17 MB
  • Mean Size: 3.74 MB
  • Types: PowerPoint, Video, Excel, Word, Image, PDF, Audio
  • Halo Version: v2.6.1

Performance by Environment​

Kubernetes (AKS)​

Pod Resource Configuration:

ServiceRequested CPURequested MemoryCPU LimitMemory Limit
Engine200m500Mi (524MB)1 core1Gi (1.07GB)
API1500m4Gi (4.29GB)1500m4Gi (4.29GB)

Small (1 Node)​

  • Node Type: 1 x DS4_v2
  • Resources: 8 vCores, 28GB RAM, 5 Engines
MetricValue
Files per Hour21,600
Data per Hour96 GB
Files per Day518,400
Data per Day2.3 TB
Mean Processing Time4769.94 ms
API Success Rate99.999%

Medium (3 Nodes)​

  • Node Type: 3 x DS4_v2
  • Resources: 24 vCores total, 84GB RAM total, 15 Engines
MetricValue
Files per Hour64,800
Data per Hour200 GB
Files per Day1,555,200
Data per Day4.8 TB
Mean Processing Time1788.83 ms
API Success Rate99.999%

Large (5 Nodes)​

  • Node Type: 5 x DS4_v2
  • Resources: 40 vCores total, 140GB RAM total, 25 Engines
MetricValue
Files per Hour108,000
Data per Hour343 GB
Files per Day2,592,000
Data per Day8.23 TB
Mean Processing Time17 ms
API Success Rate99.999%

File set​

The requests made to induce load used a set of 2000 files gathered from https://www.gov.uk . Below is a summary of the test set broken down by file type:

FiletypeProportion (%)Average Size (KiB)Std Dev (KiB)Min Size (KiB)Max Size (KiB)Supported
pdf89.05566.901636.000.0434122.18Yes
docx2.40135.08236.6115.971361.26Yes
xls1.95497.441111.5740.006429.50Yes
xlsx1.80952.313504.8918.4320207.05Yes
ods1.65230.50352.804.591948.65No
odt1.20210.83437.707.911798.76No
doc1.05595.93670.8724.002062.00Yes
csv0.60901.053002.840.4810434.15No
ppt0.154168.555460.57933.0010473.14Yes
xlsm0.102239.003048.0183.734394.27Yes
jpg0.0515.23-15.2315.23Yes

Sync API Performance​


Sync Performance Charts​

OVA (Standalone VM)​


Pod Resource Configuration:

ServiceRequested CPURequested MemoryCPU LimitMemory Limit
Engine1300m3Gi (3.22GB)1300m3Gi (3.22GB)
API1 core3Gi (3.22GB)1 core3Gi (3.22GB)

Small (Single VM)​

  • VM Type: F16s_v2
  • Resources: 16 vCores, 32 GB RAM, 3 Engines
MetricValue
Files per Hour9,150
Data per Hour33 GB
Files per Day220,000
Data per Day800 GB
Mean Processing Time392 ms
API Success Rate99.999%

Large (Single VM)​

  • VM Type: F32s_v2
  • Resources: 32 vCores, 64 GB RAM, 13 Engines
MetricValue
Files per Hour13,800
Data per Hour50 GB
Files per Day331,400
Data per Day1.2 TB
Mean Processing Time260 ms
API Success Rate99.999%

OVA vs Kubernetes: Key Differences​

  • The OVA uses RKE; Kubernetes control plane resources are shared with workloads.
  • Kubernetes multi-node clusters require shared storage, introducing I/O overhead.
  • OVA delivers faster inter-service network speeds as all services run on a single machine.
  • Kubernetes offers better scalability but has slightly more orchestration and storage overhead.