Как да увеличим пройзводителноста на Linux router – linux advanced routing
Как да увеличим пройзводителноста на Linux router – linux advanced routing
Има един момент в Линукс рутера когато на пръв поглед мощна конфигурация започва да се държи зле, неестестенно вдигане на latensy в ping, лаг или дори загуба на пакети. Ясно е че, всичко това може да се породи от две неща. Много правила в iptables и tc или много пакети в секунда. И двата проблема се решават с едно и също решение. Тунинговане на параметрите в Линукс кернела. Звучи сложно но не е защото цялата процедура в опсиване на 50-тина реда, аз го правя в /etc/rc.local
linux advanced routing – Модули към ядрото:
Като начало едно от най важните неша е нашият Линукс рутер да подържа следните протоколи.
modprobe nf_conntrack
modprobe nf_conntrack_ftp
modprobe nf_conntrack_tftp
modprobe nf_nat
modprobe nf_nat_ftp
modprobe nf_nat_tftp
modprobe nf_nat_proto_gre
modprobe nf_nat_sip
modprobe nf_nat_h323
modprobe nf_nat_pptp
modprobe 8021q
linux advanced routing – Управления на прекъсванията:
Тук имаме 3 мрежови интерфейса. преглед се прави с командата „cat /proc/interrupts“
echo f > /proc/irq/92/smp_affinity
echo f > /proc/irq/93/smp_affinity
echo f > /proc/irq/94/smp_affinity
echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo f > /sys/class/net/eth1/queues/rx-0/rps_cpus
echo f > /sys/class/net/eth2/queues/rx-0/rps_cpus
linux advanced routing – „Тунинг“ на ядрото:
Това е най тънката част и най трудно смилаемата. С тази конфигурация стигам почти Gigabit като трафик на 300 000 pps quad 9550 на Intel.
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/icmp_errors_use_inbound_ifaddr
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/default/arp_filter
echo 1 > /proc/sys/net/ipv4/conf/all/promote_secondaries
echo 0 > /proc/sys/net/ipv4/conf/default/accept_source_route
echo 1 > /proc/sys/kernel/sysrq
echo 0 > /proc/sys/kernel/core_uses_pid
echo 2097152 > /proc/sys/net/core/rmem_max
echo 163840 > /proc/sys/net/core/wmem_max
echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range
echo 32768 > /sys/module/nf_conntrack/parameters/hashsize
echo 262144 > /proc/sys/net/nf_conntrack_max
echo 2048 > /proc/sys/net/netfilter/nf_conntrack_expect_max
echo 1 > /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal
echo 5 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_sent
echo 5 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_sent2
echo 5 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_recv
echo 9000 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_last_ack
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout
echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout_stream
echo 10 > /proc/sys/net/ipv4/netfilter/ip_conntrack_icmp_timeout
echo 600 > /proc/sys/net/ipv4/netfilter/ip_conntrack_generic_timeout
Как да увеличим пройзводителноста на Linux router – linux advanced routing
