Tutorial: Troubleshoot and Optimize VPN Performance in Access Server
Overview
This tutorial shows you how to identify and troubleshoot VPN performance issues with Access Server.
A slow VPN connection can result from several different factors, including:
Limited internet or cloud-instance bandwidth.
High CPU utilization.
Insufficient encryption performance.
Packet loss or high latency.
TCP transport behavior.
MTU fragmentation.
Incorrect routing or tunnel configuration.
Unnecessary network hops.
The tests in this tutorial help you distinguish between latency, which measures delay, and throughput, which measures how much data can pass through the connection over time.
You’ll compare performance outside and inside the VPN tunnel, verify hardware and Data Channel Offload acceleration, inspect the network path, and use iperf3 to measure VPN throughput.
Prerequisites
Before you begin, ensure you have:
Console access to the Access Server host.
Root privileges for commands that inspect or change Access Server settings.
A VPN client from which you can reproduce the performance issue.
Access to a private resource behind Access Server when testing end-to-end throughput.
curl,ping, and other standard networking utilities.Optional:
iperf3, MTR, and OpenSSL for the related tests.
Establish a performance baseline
Before changing Access Server settings, measure your connection speed in two states:
Raw link speed: Your connection speed outside the VPN tunnel. This is the ceiling your VPN connection can never exceed. Test this first using a tool like
iperf3between client and server, or a speed test service.VPN throughput: Your connection speed while connected to the VPN. Run the same test again with the VPN active.
Compare the two results. The difference represents your VPN overhead: the cost of encryption, routing, and protocol processing.
Interpret the results
Use the following comparisons to narrow down the issue:
Result | Likely area to investigate |
|---|---|
Raw-link throughput is slow | Client ISP, server provider, cloud-instance limits, or the general network path |
Raw link is fast but VPN throughput is slow | CPU, cipher, DCO, VPN protocol, MTU, or Access Server configuration |
UDP is fast but TCP VPN is slow | TCP-over-TCP behavior, packet loss, or congestion |
Access Server VPN IP is fast but a private resource is slow | Network path, routing, firewall, or resource-side limits behind Access Server |
OpenSSL throughput is low | CPU capacity or missing hardware acceleration |
CPU is saturated during testing | Instance sizing, daemon count, cipher, or DCO |
Packet loss continues to the destination | Network or provider problem along the path |
Latency is consistently high | Geographic distance, routing, congestion, or unnecessary hops |
Small packets work but large packets fail | MTU mismatch or MTU fragmentation |
Full tunnel is slow for public internet traffic | Added server load, egress path, or geographic detour |
Next steps
After resolving the bottleneck, repeat the same baseline and VPN throughput tests to confirm the improvement.