LINUX.ORG.RU
ФорумAdmin

Openvpn CPU load


1

6

Есть небольшой домашний шлюз/сервер на AMD E-350. Железка не шибко шустрая, но до поры до времени вполне хватало ее для всех задач. Какое-то время назад сменил провайдера, у которого есть внутрилокальная сеть (или пиринговая). На другом конце города живет знакомый, который так же на этом провайдере. Решил поднять Openvpn туннель. Все бы ничего, но максимум что я добился от этого туннеля - 40мбит/с. Хотя физически есть возможность и до 100мбит/с. Все упирается в мой проц. Одно ядро загружается на 100%. Конфиг сервера

port 32233
proto tcp
dev tun0
ca keys/my.net/ca.crt
cert keys/my.net/home-server.crt
key keys/my.net/home-server.key
dh keys/my.net/dh1024.pem
server 10.10.90.0 255.255.255.0
crl-verify keys/my.net/crl.pem
ifconfig-pool-persist servers/home/logs/ipp.txt
cipher BF-CBC
user nobody
group nogroup
status servers/home/logs/openvpn-status.log
log-append servers/home/logs/openvpn.log
verb 4
mute 20
max-clients 100
keepalive 10 120
client-config-dir /etc/openvpn/servers/home/ccd
persist-key
persist-tun
ccd-exclusive
mode server
push "route 192.168.1.0 255.255.255.0"
topology subnet
script-security 2

Что можно подкрутить, чтоб понизить нагрузку, и выжать еще пару мб/с? (замену процу не предлагать)

UDP пробовал. Разницы нет. Разные шифрования тоже. Разница на уровне погрешности.

★★

Включить lzo, выключить lzo. Вообще не знаю, никогда openvpn'ом и на 5% не нагружал. Хоть и dh param у меня побольше.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

нафиг lzo. Мы контентом будем перекидываться в основном. Тем более lzo был до этого включен.

as_lan ★★
() автор топика

Да, поэтому я отказался от openvn в сторону tinc. Openvpn сильно грузит cpu и как-то вяло использует канал.

anonymous
()
Ответ на: комментарий от as_lan

опенвпн - это юзерспейс решение. Накладные расходы там безумные (особенно на дохлом проце)

есть интересная статейка https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

Если шифрование ненужно, то можно поднять ipip/ipgre - оно проц не кушает.

vel ★★★★★
()

Если у знакомого винда, то можно попробовать поднять ipsec. Если Линукс - вариантов дофигище. Один из них - попробовать vtun вместо openvpn.

iron ★★★★★
()

Перейти на ядерный ipsec, тот же strongswan я юзаю. Хотя старый core2 у меня нормально в опенвпн прожевывал 100мбит в аес256, правда он 3 с чем то ГГц был...

blind_oracle ★★★★★
()
Последнее исправление: blind_oracle (всего исправлений: 1)
Ответ на: комментарий от vel

С MTU поигрался. Безрезультатно. Максимум что могу сейчас выжать - 52429 Kbits/sec. Шифрование отключать не хочется. Так как Openvpn еще и для своих целей использую (с работы подключаться. С телефона заходить в свою сетку, просматривать картинку с камер наблюдения). Но даже без шифрования удалось максимум в пике до 60000 Kbit/sec в пике получить.

as_lan ★★
() автор топика
Ответ на: комментарий от as_lan

Попробую для начала ipsec поднять и протестировать. Жаль что с Openvpn нет больше вариантов. Для меня он был удобен и привычен.

as_lan ★★
() автор топика
Ответ на: комментарий от as_lan

Я завтра на на одном говнороутере протестирую openvpn на 1 гбит канале. Сейчас проверил, 16 мбит, нагрузка на процессор 2%.

steemandlinux ★★★★★
()
Ответ на: комментарий от steemandlinux

Пока изучал ipsec, параллельно настроил сервер accel-ppp. С mppe-128 выжал 70мбит. Оказалось это физический максимум (возможно свитч провайдера тупит, или тупо уже не справляется). Нагрузка на cpu была незначительная. В итоге ipsec даже бросил, так как не вижу смысла. Оставлю и openvpn и pptp (раз настроил). Dnsmasq настроил чтоб передавал виндовым машинам маршрут до моей сети по DHCP.

Один вопрос остался. На каждого клиента pptp сервер создает новый интерфейс pppN. Углубленно не изучал pptp, но нельзя ли сделать, чтоб создавался один интерфейс для всех клиентов, как это происходит с openvpn?

as_lan ★★
() автор топика
Ответ на: комментарий от as_lan

openconnect (ocserv) - Ъ. Настраивается легко, работает быстро, AES128, клиенты на мобильниках есть. Единственное дистрибутив нужен свежий.

steemandlinux ★★★★★
()
Ответ на: комментарий от ValdikSS

нет. не помогает. Упирается в CPU. Одно ядро загружено постоянно на 100%. 40-45мбит/с все что удалось.

as_lan ★★
() автор топика
Ответ на: комментарий от as_lan

Странно, не думаю, что у вас прямо такое слабое железо. По крайней мере, я на телефоне около 50 выжимал через VPN.

Попробуйте тогда IPsec, что ли.

ValdikSS ★★★★★
()
Ответ на: комментарий от ValdikSS

Попробовал. Практически нет разницы. Короче с Опенвпн без шифрования вытащить больше 60мбит/с не выйдет на этом железе.

as_lan ★★
() автор топика
1 марта 2015 г.
Ответ на: комментарий от as_lan

Удалось выжать до 85-90 мбит. В конце конфига добавил

для клиента

tun-mtu 1500
fragment 1300
mssfix 1300
sndbuf 26000
rcvbuf 26000

для сервера

tun-mtu 1500
fragment 1300
mssfix 1300
fast-io
txqueuelen 300
sndbuf 26000
rcvbuf 26000

Возможно могло быть и больше, но такое ощущение что забивается порт провайдерского коммутатора. Но в целом результатом доволен.

Использование NFS вместо CIFS тоже увеличит результат, так как samba добавляет 10-15% загрузки к имеющимся 90 от openvpn

Дальнейшее уменьшение или увеличение sndbuf и rcvbuf ситуацию не улучшают, а только ухудшают, поэтому остановился на этих значениях.

as_lan ★★
() автор топика
Последнее исправление: as_lan (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.