introduzione
Problemi con la connettività quando visitatori di altri paesi accedono al tuo sito Web? Ti chiedi perché la velocità di download dal tuo server esterno è lenta? È possibile impostare algoritmi di ottimizzazione TCP per aiutare a risolvere il problema.
Esistono diversi algoritmi di ottimizzazione TCP noti. Non tutti questi algoritmi sono gratuiti, ad esempio Zeta-TCP. Tuttavia, in questo articolo, introdurrò un algoritmo di ottimizzazione TCP gratuito con alte prestazioni noto come Hybla.
Preparazione
Per configurare Hybla, è necessario disporre di:
- Un server VPS o dedicato con Linux (versione LTS preferita).
- Se VPS, controlla che la virtualizzazione sia KVM. Altrimenti non avrà abbastanza privilegi per chiamare le funzioni del kernel appropriate.
- Esegui
/sbin/modprobe tcp_hybla
per abilitare Hybla e utilizza lsmod | grep hybla
per verificare se l'ottimizzazione può funzionare normalmente.
Configurazione
Se la versione del kernel è più recente, ad esempio CentOS 6.x 2.6.32, è possibile utilizzare il comando elencato di seguito per visualizzare gli algoritmi di congestione disponibili. Verrà mostrato Hybla, una volta caricato.
sysctl net.ipv4.tcp_available_congestion_control
È possibile configurare temporaneamente un VPS Vultr per il test prima di utilizzare Hybla in un ambiente di produzione.
Aggiungi le righe elencate di seguito a /etc/sysctl.conf
.
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.core.netdev_max_backlog = 250000
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_congestion_control=hybla
È possibile abilitare la modifica immediatamente utilizzando il comando sysctl -p
. Hybla è ora abilitato.
Inizia all'avvio
Il tutorial sopra elencato richiede di eseguire i comandi /sbin/modprobe hybla
e sysctl -p
manualmente dopo ogni riavvio. Per abilitare automaticamente questo algoritmo, è possibile utilizzare questi passaggi come modello. Sono stati scritti per CentOS.
Aggiungi un hybla.modules
file alla /etc/sysconfig/modules
directory e inserisci il contenuto qui sotto:
#!/bin/sh
/sbin/modprobe tcp_hybla
Quindi concedere i privilegi di esecuzione del file:
chmod +x hybla.modules