Як досягти швидкості OpenVPN в 89% від швидкості WireGuard

25/Січень/2023 openvpnkernelwireguard

В інтернеті маса публікацій на тему покращення швидкості OpenVPN, і часто всі вони зосереджені на налаштуваннях самого сервер-клієнта, розмірів пакетів, алгоритми шифрування або їх відключення. Усі приводять у порівняння WireGuard, мовляв, він працює в kernel space, у той час як openvpn у userspace. А це не зовсім так.

Тут я відразу маю уточнити, що наведений спосіб вирішення проблеми специфічний для віртуалок з малим об’ємом пам’яті, від 1Gb до 8Gb, в інших випадках треба зіставляти пам’ять, канал та швидкість.

Ось список значень, що динамічно встановлюються відповідно до обсягу пам’яті системи:

  • sysctl net.core.rmem_default
  • sysctl net.core.rmem_max
  • sysctl net.core.wmem_default
  • sysctl net.core.wmem_max
  • sysctl net.core.somaxconn
  • sysctl net.core.netdev_max_backlog
  • sysctl net.core.optmem_max
  • sysctl net.ipv4.udp_mem
  • sysctl net.ipv4.udp_rmem_min
  • sysctl net.ipv4.udp_wmem_min
  • sysctl net.ipv4.tcp_mem
  • sysctl net.ipv4.tcp_rmem
  • sysctl net.ipv4.tcp_wmem
  • sysctl net.ipv4.tcp_synack_retries
  • sysctl net.ipv4.tcp_keepalive_time
  • sysctl net.ipv4.tcp_max_tw_buckets
Як досягти швидкості...

Приклад bashrc

15/Жовтень/2021 bash

bash example
bash color example 543x243
bash_ps.png
bash server example
bash server color example 543x243
bash_ps1.png
bash lxc example
bash lxc color example 543x243
bash_ps2.png

Найпростіший приклад .bashrc з історією та своїми налаштуваннями кольору.
Допомагає інтуїтивно відрізняти продакшн сервер від роутера та тестове оточення від оточення розробки.

Приклад bashrc

Консольні утиліти для роботи з mmdb

11/Липень/2020 mmdbgeoip2mmdblookup

Насамперед варто перевірити дату складання,
використовуємо утиліту mmdb-dump-metadata від MaxMind
https://github.com/maxmind/MaxMind-DB-Reader-perl/tree/master/bin

Свіжість == Актуальність

mmdb-dump-metadata --file /usr/src/geoip2/GeoLite2-City.mmdb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  GeoLite2 City database
  type:                  GeoLite2-City
  languages:             de
                         en
                         es
                         fr
                         ja
                         pt-BR
                         ru
                         zh-CN
  binary format version: 2.0
  build epoch:           1,589,304,163 (2020-05-12 17:22::43 UTC)
  IP version:            6
  node count:            3,790,930
  record size:           28 bits
Консольні утиліти для...

Компіляція динамічних модулів nginx поза цільовою системою застосування

14/Травень/2020 nginxgeoip2

Дуже не люблю тримати на сервері щось зібране самостійно.
Тому компіляція модуля здійснюється на ноутбуці, з тим же debian 10, а на сервер копіюються лише два динамічні модуля.

Деякі з необхідних пакетів
apt install libmaxminddb-dev libgeoip-dev libperl-dev

Пакет із репозиторію зібраний з наступними параметрами, які знадобляться при компіляції модуля nginx -V

Компіляція динамічних модулів...

KVM поверх LVM

20/Грудень/2019 kvmlvmpartedvirsh

Без зайвих пояснень

1
2
3
4
5
6
7
8
9
10
parted -a optimal /dev/sda
unit MiB
print free

#    Number  Start     End        Size       Type     File system     Flags
#            0,03MiB   1,00MiB    0,97MiB             Free Space
#     1      1,00MiB   1025MiB    1024MiB    primary  ext4            boot
#     2      1025MiB   5121MiB    4096MiB    primary  linux-swap(v1)
#     3      5121MiB   70657MiB   65536MiB   primary  ext4
#            70657MiB  476940MiB  406283MiB           Free Space
KVM поверх LVM...
Сторінка 1 з 2