Несколько слов о том, как можно повысить скорость OpenVPN соединения увеличив размер буферов.
Размер буфера — это величина обозначающая максимальный объём данных, который будет передан за единицу времени. В OpenVPN этот параметр составляет 64КБ. При этом, количество отправленных пакетов на единицу времени ограничивается скоростью прохождения этих самых пакетов. Соответственно, чем ниже у нас будет скорость прохождения пакетов, тем ниже скорость работы OpenVPN мы получим.
Давайте попробуем увеличить объём данных, который будет передаваться за единицу времени. В OpenVPN для этого предусмотрены параметры sndbuf и rcvbuf. Для того, что бы размер буфера задавался настройками ОС, в конфиг можно просто задать этим параметрам 0:
sndbuf 0 rcvbuf 0
Если возможности изменить конфигурацию клиента нет, то значения буфера нужно ему передать с помощью push. При этом, передавать мы будем сразу же большое знчение:
sndbuf 0 rcvbuf 0 push "sndbuf 524288" push "rcvbuf 524288"
При этом, мы можем обозначить и размер буфера в конфигурации сервера, сделать вот так, например:
sndbuf 524288 rcvbuf 524288 push "sndbuf 524288" push "rcvbuf 524288"
Размер буферов мы можем изменить и в настройках самой системы если это Linux. Если мы используем UDP в OpenVPN, то увеличить буферы можно передав значения для net.core.rmem_default и net.core.wmem_default, при этом, передаваемые им значения мы делим на два. При использовании TCP, размер буферов увеличивается параметрами net.ipv4.tcp_rmem и net.ipv4.tcp_wmem.
При этом, не стоит забывать что в системе существуют параметры net.core.rmem_max и net.core.wmem_max, значения которых, возможно, так же потребуется увеличить. Параметры отвечают за максимальный размер буфера для приёма и передачи данных.