Hi,
I have a gigabit server running openvpn proxy server serving a 200 road warrior users. Normal test using wget and http, traffic can achieve 700mbps without openvpn.
However with more than 100 clients connecting to it, total bandwidth tops at 160Mbps. This is running in Centos 5.6.
Server specs: 8GB RAM, AMD Quad Cores, SSD Drive.
Sysctl Network values as follows:
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_syncookies = 1
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_congestion_control = cubic
net.core.wmem_default = 16777216
net.core.rmem_default = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.ipv4.tcp_timestamps = 0
Partial Openvpn Server Config (hidden are the ipconfig etc..):
keepalive 10 300
ping-timer-rem
persist-tun
persist-key
max-clients 200
float
;mssfix max
mute-replay-warnings
# Run OpenVPN as a daemon and drop privileges to user/group nobody user nobody
group nobody
daemon
status status.log 30
status-version 2
log openvpn.log
verb 2
sndbuf 655360
rcvbuf 655360
txqueuelen 1000
With more than 100 users connected, top shows that memory and CPU usage is still reasonable.
Cpu(s): 26.2%us, 29.2%sy, 0.0%ni, 33.6%id, 0.0%wa, 1.7%hi, 9.4%si, 0.0%st
Mem: 7918596k total, 2372548k used, 5546048k free, 58528k buffers
Swap: 3604472k total, 0k used, 3604472k free, 332068k cached
From what I can observed is that once it reaches the 160Mbit, every users will be fighting for the available bandwidth within the max speed.
MTU used is default value.
Really appreciate if anyone can tell me what are the best optimum settings (linux and openvpn) to utilize gigabit (server) transfer to road warriors (internet). even reaching 300Mbps is sufficient enough.
TIA