Estimate OpenVPN tunnel throughput and MTU from cipher choice, transport protocol and instance count.
OpenVPN's data channel is single-threaded, so one process is capped by cipher speed no matter how many cores exist; scaling comes from running several instances behind a load balancer. The wire cost is 69 bytes over UDP and 89 over TCP once the extra TCP header and length prefix are counted. It explains the classic complaint that a 1 Gbps circuit only delivers 300 Mbps over OpenVPN, and shows whether the fix is AES-NI, GCM or more daemons.
OpenVPN Performance
throughput = min(link rate × payload ÷ (payload + overhead), cipher rate × instances), with overhead 69 B for UDP and 89 B for TCP.
throughput = min(link rate × payload ÷ (payload + overhead), cipher rate × instances), with overhead 69 B for UDP and 89 B for TCP. OpenVPN's data channel is single-threaded, so one process is capped by cipher speed no matter how many cores exist; scaling comes from running several instances behind a load balancer. The wire cost is 69 bytes over UDP and 89 over TCP once the extra TCP header and length prefix are counted.
It explains the classic complaint that a 1 Gbps circuit only delivers 300 Mbps over OpenVPN, and shows whether the fix is AES-NI, GCM or more daemons.
This calculator takes 6 inputs: Link rate, Cipher and CPU support, Transport and overhead, Average packet size, Path MTU, Parallel OpenVPN instances. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.