wired Опубликовано 30 сентября, 2011 (изменено) · Жалоба Имеется в наличии сервер HP G6, 2проца Xeon 5504 4ядерных (8 ядер по 2ГГЦ), 2 сетевых карты Интел 82575EB гигабитные двухпортовые по 8 потоков. Сетевые настроены в бондинг - 2 порта одной карты вход, 2 порта другой карты выход. На сервере единственная нагрузка - это НАТ трафика на одном интерфейсе и маршрутизация на другом. Транзитного трафика имеем в сумме чуть больше 1Gbps, почти 200Kpps. Абонентов- несколько тысяч. Проблема вылазит вечером, когда все лезут в интернет, нагрузка на максимуме и начинают резко вылазить softirq. Доходит до 50% нагрузки на ядро, по несколько ядер вылазит сразу. Соответственно, транзит трафика падает, появляются задержки, снижение скорости. Тюнинг линуска делался по нескольким разным статьям, в том числе по этому форуму. Конкретных статей по настройке не нашел, поэтому тюниг был "с миру по нитке". Может, что-то лишнее, что-то неправильно. Хочется услышать мнение экспертов. Как НАТить максимум трафика. Или может, мое железо на большее неспособно. Может надо смотреть в сторону аппаратных решений? На данном этапе планка стоит в 3Gbps с дальнейшем увеличением. Linux 2.6.35.6-45.fc14.x86_64 #1 SMP Mon Oct 18 23:57:44 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux driver: igb version: 3.2.9 До этого стояли 2.4.12. Результат тот-же. firmware-version: 1.13-1 Прерывания сетевых разбросаны по ядрам. RX bond0 = TX bond1 /sbin/ifconfig ethX txqueuelen 5000 /sbin/ethtool -G ethX rx 80 tx 80 Пробовал увеличивать RX-TX ring (на е1000 помогало) - приводит только к увеличению ksoftirq. Пробовал отключать flowcontrol: ethtool -A ethX rx off tx off - появляются дропы. SYSCTL.conf net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 #ARP net.ipv4.neigh.default.gc_stale_time = 240 net.ipv4.neigh.default.gc_thresh1 = 1280 net.ipv4.neigh.default.gc_thresh2 = 2048 net.ipv4.neigh.default.gc_thresh3 = 4096 net.ipv4.neigh.default.base_reachable_time = 20 net.ipv4.neigh.default.locktime = 30 net.ipv4.neigh.default.mcast_solicit = 2 net.ipv4.neigh.default.retrans_time = 50 #Соединения net.netfilter.nf_conntrack_tcp_timeout_established = 1000 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 30 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 80 net.netfilter.nf_conntrack_max = 524288 net.netfilter.nf_conntrack_udp_timeout = 10 net.netfilter.nf_conntrack_udp_timeout_stream = 50 net.nf_conntrack_max = 524288 #Увеличение буфера time-wait сокетов net.ipv4.tcp_max_tw_buckets = 1440000 #STACK net.ipv4.tcp_keepalive_time = 1000 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 4 net.ipv4.tcp_orphan_retries = 2 net.ipv4.tcp_fin_timeout = 30 # net.core.netdev_max_backlog = 204800 net.ipv4.tcp_max_syn_backlog = 5000 net.core.somaxconn = 262144 net.ipv4.tcp_synack_retries = 2 #Увеличение TCP буффера net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.rmem_default = 8388608 net.core.wmem_default = 4194394 net.core.optmem_max = 2524287 net.ipv4.tcp_rmem = 8192 8388608 16777216 net.ipv4.tcp_wmem = 8192 4194394 16777216 # net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_sack = 0 net.ipv4.tcp_dsack = 0 net.ipv4.tcp_fack = 0 net.ipv4.tcp_timestamps = 0 modprobe.conf alias ethX igb options igb InterruptThrottleRate=3,3,3,3,3,3 RSS=4,4,4,4,4,4 QueuePairs=0,0,0,0,0,0 alias net-pf-10 off alias ipv6 off alias bond0 bonding options bond0 mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=1 alias bond1 bonding options bond1 mode=4 miimon=100 lacp_rate=1 xmit_hash_policy=1 Изменено 30 сентября, 2011 пользователем wired Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kapa Опубликовано 30 сентября, 2011 · Жалоба Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 30 сентября, 2011 · Жалоба Сделайте график по кол-ву записей в xlat, может что-то прояснится. Правила iptables тоже интересно посмотреть. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 1 октября, 2011 · Жалоба Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 1 октября, 2011 · Жалоба Сделайте график по кол-ву записей в xlat, может что-то прояснится. Правила iptables тоже интересно посмотреть. Простите, а что такое записи в xlat? Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 88.88.88.4 0.0.0.0 255.255.255.252 U 0 0 0 bond0 10.10.4.0 10.1.1.14 255.255.255.0 UG 0 0 0 bond1 10.10.20.0 10.1.1.12 255.255.255.0 UG 0 0 0 bond1 10.10.21.0 10.1.1.11 255.255.255.0 UG 0 0 0 bond1 10.10.5.0 10.1.1.12 255.255.255.0 UG 0 0 0 bond1 10.10.2.0 10.1.1.11 255.255.255.0 UG 0 0 0 bond1 10.10.3.0 10.1.1.13 255.255.255.0 UG 0 0 0 bond1 10.10.30.0 10.1.1.13 255.255.255.0 UG 0 0 0 bond1 10.10.14.0 10.1.1.11 255.255.255.0 UG 0 0 0 bond1 10.10.15.0 10.1.1.13 255.255.255.0 UG 0 0 0 bond1 10.10.31.0 10.1.1.11 255.255.255.0 UG 0 0 0 bond1 10.10.28.0 10.1.1.14 255.255.255.0 UG 0 0 0 bond1 10.10.29.0 10.1.1.13 255.255.255.0 UG 0 0 0 bond1 10.1.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.10.41.0 10.1.1.13 255.255.255.0 UG 0 0 0 bond1 10.10.40.0 10.1.1.12 255.255.255.0 UG 0 0 0 bond1 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 bond1 10.10.6.0 10.1.1.12 255.255.254.0 UG 0 0 0 bond1 10.10.12.0 10.1.1.11 255.255.254.0 UG 0 0 0 bond1 10.10.42.0 10.1.1.13 255.255.254.0 UG 0 0 0 bond1 10.10.22.0 10.1.1.11 255.255.254.0 UG 0 0 0 bond1 10.10.18.0 10.1.1.12 255.255.254.0 UG 0 0 0 bond1 10.10.16.0 10.1.1.14 255.255.254.0 UG 0 0 0 bond1 10.10.26.0 10.1.1.14 255.255.254.0 UG 0 0 0 bond1 10.10.24.0 10.1.1.11 255.255.254.0 UG 0 0 0 bond1 10.10.8.0 10.1.1.12 255.255.252.0 UG 0 0 0 bond1 10.10.44.0 10.1.1.14 255.255.252.0 UG 0 0 0 bond1 10.10.52.0 10.1.1.13 255.255.252.0 UG 0 0 0 bond1 10.10.48.0 10.1.1.11 255.255.252.0 UG 0 0 0 bond1 10.10.60.0 10.1.1.12 255.255.252.0 UG 0 0 0 bond1 10.10.56.0 10.1.1.14 255.255.252.0 UG 0 0 0 bond1 10.10.32.0 10.1.1.11 255.255.248.0 UG 0 0 0 bond1 10.10.64.0 10.1.1.12 255.255.224.0 UG 0 0 0 bond1 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1009 0 0 bond0 169.254.0.0 0.0.0.0 255.255.0.0 U 1010 0 0 bond1 0.0.0.0 88.88.88.5 0.0.0.0 UG 0 0 0 bond0 Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 10.1.1.1 tcp dpt:22222 to:10.1.0.25 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:24242 to:10.1.0.2 DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:48484 to:10.1.0.2 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:24243 to:10.1.0.2 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:24245 to:10.10.4.82 DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:48485 to:10.10.4.82 DNAT tcp -- 99.88.99.166 0.0.0.0/0 tcp dpt:22222 to:10.1.0.25 DNAT all -- 0.0.0.0/0 99.99.99.1 to:10.1.0.20 DNAT all -- 0.0.0.0/0 99.99.99.6 to:10.10.17.30 DNAT all -- 0.0.0.0/0 99.99.99.7 to:10.10.15.75 DNAT all -- 0.0.0.0/0 99.99.99.8 to:10.10.2.15 DNAT all -- 0.0.0.0/0 99.99.99.9 to:10.10.20.108 DNAT all -- 0.0.0.0/0 99.99.99.12 to:10.10.4.11 DNAT all -- 0.0.0.0/0 99.99.99.13 to:10.10.5.26 DNAT all -- 0.0.0.0/0 99.99.99.15 to:10.10.5.155 DNAT all -- 0.0.0.0/0 99.99.99.17 to:10.10.3.50 DNAT all -- 0.0.0.0/0 99.99.99.18 to:10.10.5.51 DNAT all -- 0.0.0.0/0 99.99.99.20 to:10.10.2.24 DNAT all -- 0.0.0.0/0 99.99.99.21 to:10.10.5.53 DNAT all -- 0.0.0.0/0 99.99.99.24 to:10.10.2.64 DNAT all -- 0.0.0.0/0 99.99.99.27 to:10.10.2.202 DNAT all -- 0.0.0.0/0 99.99.99.29 to:10.10.23.56 DNAT all -- 0.0.0.0/0 99.99.99.30 to:10.10.13.41 DNAT all -- 0.0.0.0/0 99.99.99.31 to:10.10.12.30 DNAT all -- 0.0.0.0/0 99.99.99.32 to:10.10.14.35 DNAT all -- 0.0.0.0/0 99.99.99.33 to:10.10.14.85 DNAT all -- 0.0.0.0/0 99.99.99.34 to:10.10.3.247 DNAT all -- 0.0.0.0/0 99.99.99.35 to:10.10.15.39 DNAT all -- 0.0.0.0/0 99.99.99.37 to:10.10.13.161 DNAT all -- 0.0.0.0/0 99.99.99.38 to:10.10.6.56 DNAT all -- 0.0.0.0/0 99.99.99.41 to:10.10.7.50 DNAT all -- 0.0.0.0/0 99.99.99.42 to:10.10.20.64 DNAT all -- 0.0.0.0/0 99.99.99.43 to:10.10.22.122 DNAT all -- 0.0.0.0/0 99.99.99.44 to:10.10.21.26 DNAT all -- 0.0.0.0/0 99.99.99.46 to:10.10.3.64 DNAT all -- 0.0.0.0/0 99.99.99.48 to:10.10.14.75 DNAT all -- 0.0.0.0/0 99.99.99.49 to:10.10.6.29 DNAT all -- 0.0.0.0/0 99.99.99.52 to:10.10.16.95 DNAT all -- 0.0.0.0/0 99.99.99.53 to:10.10.14.215 DNAT all -- 0.0.0.0/0 99.99.99.55 to:10.10.14.76 DNAT all -- 0.0.0.0/0 99.99.99.56 to:10.10.14.92 DNAT all -- 0.0.0.0/0 99.99.99.57 to:10.10.12.34 DNAT all -- 0.0.0.0/0 99.99.99.61 to:10.10.5.176 DNAT all -- 0.0.0.0/0 99.99.99.66 to:10.10.12.16 DNAT all -- 0.0.0.0/0 99.99.99.70 to:10.10.28.136 DNAT all -- 0.0.0.0/0 99.99.99.71 to:10.10.28.52 DNAT all -- 0.0.0.0/0 99.99.99.73 to:10.10.32.37 DNAT all -- 0.0.0.0/0 99.99.99.76 to:10.10.18.23 DNAT all -- 0.0.0.0/0 99.99.99.77 to:10.10.9.36 DNAT all -- 0.0.0.0/0 99.99.99.79 to:10.10.42.96 DNAT all -- 0.0.0.0/0 99.99.99.80 to:10.10.28.61 DNAT all -- 0.0.0.0/0 99.99.99.83 to:10.10.14.146 DNAT all -- 0.0.0.0/0 99.99.99.85 to:10.10.23.43 DNAT all -- 0.0.0.0/0 99.99.99.88 to:10.10.12.41 DNAT all -- 0.0.0.0/0 99.99.99.91 to:10.10.6.63 DNAT all -- 0.0.0.0/0 99.99.99.92 to:10.10.29.116 DNAT all -- 0.0.0.0/0 99.99.99.93 to:10.10.17.51 DNAT all -- 0.0.0.0/0 99.99.99.94 to:10.10.7.109 DNAT all -- 0.0.0.0/0 99.99.99.95 to:10.10.6.111 DNAT all -- 0.0.0.0/0 99.99.99.96 to:10.10.12.159 DNAT all -- 0.0.0.0/0 99.99.99.97 to:10.10.22.186 DNAT all -- 0.0.0.0/0 99.99.99.98 to:10.10.26.28 DNAT all -- 0.0.0.0/0 99.99.99.99 to:10.10.6.102 DNAT all -- 0.0.0.0/0 99.99.99.100 to:10.10.14.42 DNAT all -- 0.0.0.0/0 99.99.99.101 to:10.10.2.219 DNAT all -- 0.0.0.0/0 99.99.99.107 to:10.10.3.53 DNAT all -- 0.0.0.0/0 99.99.99.109 to:10.10.13.145 DNAT all -- 0.0.0.0/0 99.99.99.112 to:10.10.30.68 DNAT all -- 0.0.0.0/0 99.99.99.114 to:10.10.2.75 DNAT all -- 0.0.0.0/0 99.99.99.118 to:10.10.5.108 DNAT all -- 0.0.0.0/0 99.99.99.120 to:10.10.28.59 DNAT all -- 0.0.0.0/0 99.99.99.124 to:10.10.22.51 DNAT all -- 0.0.0.0/0 99.99.99.126 to:10.10.20.105 DNAT all -- 0.0.0.0/0 99.99.99.130 to:10.10.21.105 DNAT all -- 0.0.0.0/0 99.99.99.132 to:10.10.23.82 DNAT all -- 0.0.0.0/0 99.99.99.140 to:10.10.21.34 DNAT all -- 0.0.0.0/0 99.99.99.141 to:10.10.14.97 DNAT all -- 0.0.0.0/0 99.99.99.142 to:10.10.32.43 DNAT all -- 0.0.0.0/0 99.99.99.144 to:10.10.20.163 DNAT all -- 0.0.0.0/0 99.99.99.145 to:10.10.30.91 DNAT all -- 0.0.0.0/0 99.99.99.147 to:10.10.27.83 DNAT all -- 0.0.0.0/0 99.99.99.148 to:10.10.7.131 DNAT all -- 0.0.0.0/0 99.99.99.149 to:10.10.5.25 DNAT all -- 0.0.0.0/0 99.99.99.151 to:10.10.3.122 DNAT all -- 0.0.0.0/0 99.99.99.152 to:10.10.33.35 DNAT all -- 0.0.0.0/0 99.99.99.153 to:10.10.5.193 DNAT all -- 0.0.0.0/0 99.99.99.156 to:10.10.3.107 DNAT all -- 0.0.0.0/0 99.99.99.158 to:10.10.24.99 DNAT all -- 0.0.0.0/0 99.99.99.159 to:10.10.12.130 DNAT all -- 0.0.0.0/0 99.99.99.160 to:10.10.42.58 DNAT all -- 0.0.0.0/0 99.99.99.162 to:10.10.30.175 DNAT all -- 0.0.0.0/0 99.99.99.163 to:10.10.23.31 DNAT all -- 0.0.0.0/0 99.99.99.164 to:10.10.5.96 DNAT all -- 0.0.0.0/0 99.99.99.165 to:10.10.33.49 DNAT all -- 0.0.0.0/0 99.99.99.166 to:10.10.27.91 DNAT all -- 0.0.0.0/0 99.99.99.167 to:10.10.22.76 DNAT all -- 0.0.0.0/0 99.99.99.171 to:10.10.33.138 DNAT all -- 0.0.0.0/0 99.99.99.173 to:10.10.2.56 DNAT all -- 0.0.0.0/0 99.99.99.175 to:10.10.16.140 DNAT all -- 0.0.0.0/0 99.99.99.176 to:10.10.33.118 DNAT all -- 0.0.0.0/0 99.99.99.177 to:10.10.33.188 DNAT all -- 0.0.0.0/0 99.99.99.179 to:10.10.16.168 DNAT all -- 0.0.0.0/0 99.99.99.180 to:10.10.30.157 DNAT all -- 0.0.0.0/0 99.99.99.181 to:10.10.48.24 DNAT all -- 0.0.0.0/0 99.99.99.182 to:10.10.29.103 DNAT all -- 0.0.0.0/0 99.99.99.183 to:10.10.5.105 DNAT all -- 0.0.0.0/0 99.99.99.184 to:10.10.44.73 DNAT all -- 0.0.0.0/0 99.99.99.185 to:10.10.43.75 DNAT all -- 0.0.0.0/0 99.99.99.186 to:10.10.47.89 DNAT all -- 0.0.0.0/0 99.99.99.187 to:10.10.35.73 DNAT all -- 0.0.0.0/0 99.99.99.189 to:10.10.12.157 DNAT all -- 0.0.0.0/0 99.99.99.190 to:10.10.6.64 DNAT all -- 0.0.0.0/0 99.99.99.191 to:10.10.24.182 DNAT all -- 0.0.0.0/0 99.99.99.192 to:10.10.29.167 DNAT all -- 0.0.0.0/0 99.99.99.193 to:10.10.4.160 DNAT all -- 0.0.0.0/0 99.99.99.194 to:10.10.23.154 DNAT all -- 0.0.0.0/0 99.99.99.195 to:10.10.32.149 DNAT all -- 0.0.0.0/0 99.99.99.196 to:10.10.14.41 DNAT all -- 0.0.0.0/0 99.99.99.234 to:10.10.3.125 Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT all -- 10.1.0.20 0.0.0.0/0 to:99.99.99.1 SNAT all -- 10.10.17.30 0.0.0.0/0 to:99.99.99.6 SNAT all -- 10.10.15.75 0.0.0.0/0 to:99.99.99.7 SNAT all -- 10.10.2.15 0.0.0.0/0 to:99.99.99.8 SNAT all -- 10.10.20.108 0.0.0.0/0 to:99.99.99.9 SNAT all -- 10.10.4.11 0.0.0.0/0 to:99.99.99.12 SNAT all -- 10.10.5.26 0.0.0.0/0 to:99.99.99.13 SNAT all -- 10.10.5.155 0.0.0.0/0 to:99.99.99.15 SNAT all -- 10.10.3.50 0.0.0.0/0 to:99.99.99.17 SNAT all -- 10.10.5.51 0.0.0.0/0 to:99.99.99.18 SNAT all -- 10.10.2.24 0.0.0.0/0 to:99.99.99.20 SNAT all -- 10.10.5.53 0.0.0.0/0 to:99.99.99.21 SNAT all -- 10.10.2.64 0.0.0.0/0 to:99.99.99.24 SNAT all -- 10.10.2.202 0.0.0.0/0 to:99.99.99.27 SNAT all -- 10.10.23.56 0.0.0.0/0 to:99.99.99.29 SNAT all -- 10.10.13.41 0.0.0.0/0 to:99.99.99.30 SNAT all -- 10.10.12.30 0.0.0.0/0 to:99.99.99.31 SNAT all -- 10.10.14.35 0.0.0.0/0 to:99.99.99.32 SNAT all -- 10.10.14.85 0.0.0.0/0 to:99.99.99.33 SNAT all -- 10.10.3.247 0.0.0.0/0 to:99.99.99.34 SNAT all -- 10.10.15.39 0.0.0.0/0 to:99.99.99.35 SNAT all -- 10.10.13.161 0.0.0.0/0 to:99.99.99.37 SNAT all -- 10.10.6.56 0.0.0.0/0 to:99.99.99.38 SNAT all -- 10.10.7.50 0.0.0.0/0 to:99.99.99.41 SNAT all -- 10.10.20.64 0.0.0.0/0 to:99.99.99.42 SNAT all -- 10.10.22.122 0.0.0.0/0 to:99.99.99.43 SNAT all -- 10.10.21.26 0.0.0.0/0 to:99.99.99.44 SNAT all -- 10.10.3.64 0.0.0.0/0 to:99.99.99.46 SNAT all -- 10.10.14.75 0.0.0.0/0 to:99.99.99.48 SNAT all -- 10.10.6.29 0.0.0.0/0 to:99.99.99.49 SNAT all -- 10.10.16.95 0.0.0.0/0 to:99.99.99.52 SNAT all -- 10.10.14.215 0.0.0.0/0 to:99.99.99.53 SNAT all -- 10.10.14.76 0.0.0.0/0 to:99.99.99.55 SNAT all -- 10.10.14.92 0.0.0.0/0 to:99.99.99.56 SNAT all -- 10.10.12.34 0.0.0.0/0 to:99.99.99.57 SNAT all -- 10.10.5.176 0.0.0.0/0 to:99.99.99.61 SNAT all -- 10.10.12.16 0.0.0.0/0 to:99.99.99.66 SNAT all -- 10.10.28.136 0.0.0.0/0 to:99.99.99.70 SNAT all -- 10.10.28.52 0.0.0.0/0 to:99.99.99.71 SNAT all -- 10.10.32.37 0.0.0.0/0 to:99.99.99.73 SNAT all -- 10.10.18.23 0.0.0.0/0 to:99.99.99.76 SNAT all -- 10.10.9.36 0.0.0.0/0 to:99.99.99.77 SNAT all -- 10.10.42.96 0.0.0.0/0 to:99.99.99.79 SNAT all -- 10.10.28.61 0.0.0.0/0 to:99.99.99.80 SNAT all -- 10.10.14.146 0.0.0.0/0 to:99.99.99.83 SNAT all -- 10.10.23.43 0.0.0.0/0 to:99.99.99.85 SNAT all -- 10.10.12.41 0.0.0.0/0 to:99.99.99.88 SNAT all -- 10.10.6.63 0.0.0.0/0 to:99.99.99.91 SNAT all -- 10.10.29.116 0.0.0.0/0 to:99.99.99.92 SNAT all -- 10.10.17.51 0.0.0.0/0 to:99.99.99.93 SNAT all -- 10.10.7.109 0.0.0.0/0 to:99.99.99.94 SNAT all -- 10.10.6.111 0.0.0.0/0 to:99.99.99.95 SNAT all -- 10.10.12.159 0.0.0.0/0 to:99.99.99.96 SNAT all -- 10.10.22.186 0.0.0.0/0 to:99.99.99.97 SNAT all -- 10.10.26.28 0.0.0.0/0 to:99.99.99.98 SNAT all -- 10.10.6.102 0.0.0.0/0 to:99.99.99.99 SNAT all -- 10.10.14.42 0.0.0.0/0 to:99.99.99.100 SNAT all -- 10.10.2.219 0.0.0.0/0 to:99.99.99.101 SNAT all -- 10.10.3.53 0.0.0.0/0 to:99.99.99.107 SNAT all -- 10.10.13.145 0.0.0.0/0 to:99.99.99.109 SNAT all -- 10.10.30.68 0.0.0.0/0 to:99.99.99.112 SNAT all -- 10.10.2.75 0.0.0.0/0 to:99.99.99.114 SNAT all -- 10.10.5.108 0.0.0.0/0 to:99.99.99.118 SNAT all -- 10.10.28.59 0.0.0.0/0 to:99.99.99.120 SNAT all -- 10.10.22.51 0.0.0.0/0 to:99.99.99.124 SNAT all -- 10.10.20.105 0.0.0.0/0 to:99.99.99.126 SNAT all -- 10.10.21.105 0.0.0.0/0 to:99.99.99.130 SNAT all -- 10.10.23.82 0.0.0.0/0 to:99.99.99.132 SNAT all -- 10.10.21.34 0.0.0.0/0 to:99.99.99.140 SNAT all -- 10.10.14.97 0.0.0.0/0 to:99.99.99.141 SNAT all -- 10.10.32.43 0.0.0.0/0 to:99.99.99.142 SNAT all -- 10.10.20.163 0.0.0.0/0 to:99.99.99.144 SNAT all -- 10.10.30.91 0.0.0.0/0 to:99.99.99.145 SNAT all -- 10.10.27.83 0.0.0.0/0 to:99.99.99.147 SNAT all -- 10.10.7.131 0.0.0.0/0 to:99.99.99.148 SNAT all -- 10.10.5.25 0.0.0.0/0 to:99.99.99.149 SNAT all -- 10.10.3.122 0.0.0.0/0 to:99.99.99.151 SNAT all -- 10.10.33.35 0.0.0.0/0 to:99.99.99.152 SNAT all -- 10.10.5.193 0.0.0.0/0 to:99.99.99.153 SNAT all -- 10.10.3.107 0.0.0.0/0 to:99.99.99.156 SNAT all -- 10.10.24.99 0.0.0.0/0 to:99.99.99.158 SNAT all -- 10.10.12.130 0.0.0.0/0 to:99.99.99.159 SNAT all -- 10.10.42.58 0.0.0.0/0 to:99.99.99.160 SNAT all -- 10.10.30.175 0.0.0.0/0 to:99.99.99.162 SNAT all -- 10.10.23.31 0.0.0.0/0 to:99.99.99.163 SNAT all -- 10.10.5.96 0.0.0.0/0 to:99.99.99.164 SNAT all -- 10.10.33.49 0.0.0.0/0 to:99.99.99.165 SNAT all -- 10.10.27.91 0.0.0.0/0 to:99.99.99.166 SNAT all -- 10.10.22.76 0.0.0.0/0 to:99.99.99.167 SNAT all -- 10.10.33.138 0.0.0.0/0 to:99.99.99.171 SNAT all -- 10.10.2.56 0.0.0.0/0 to:99.99.99.173 SNAT all -- 10.10.16.140 0.0.0.0/0 to:99.99.99.175 SNAT all -- 10.10.33.118 0.0.0.0/0 to:99.99.99.176 SNAT all -- 10.10.33.188 0.0.0.0/0 to:99.99.99.177 SNAT all -- 10.10.16.168 0.0.0.0/0 to:99.99.99.179 SNAT all -- 10.10.30.157 0.0.0.0/0 to:99.99.99.180 SNAT all -- 10.10.48.24 0.0.0.0/0 to:99.99.99.181 SNAT all -- 10.10.29.103 0.0.0.0/0 to:99.99.99.182 SNAT all -- 10.10.5.105 0.0.0.0/0 to:99.99.99.183 SNAT all -- 10.10.44.73 0.0.0.0/0 to:99.99.99.184 SNAT all -- 10.10.43.75 0.0.0.0/0 to:99.99.99.185 SNAT all -- 10.10.47.89 0.0.0.0/0 to:99.99.99.186 SNAT all -- 10.10.35.73 0.0.0.0/0 to:99.99.99.187 SNAT all -- 10.10.12.157 0.0.0.0/0 to:99.99.99.189 SNAT all -- 10.10.6.64 0.0.0.0/0 to:99.99.99.190 SNAT all -- 10.10.24.182 0.0.0.0/0 to:99.99.99.191 SNAT all -- 10.10.29.167 0.0.0.0/0 to:99.99.99.192 SNAT all -- 10.10.4.160 0.0.0.0/0 to:99.99.99.193 SNAT all -- 10.10.23.154 0.0.0.0/0 to:99.99.99.194 SNAT all -- 10.10.32.149 0.0.0.0/0 to:99.99.99.195 SNAT all -- 10.10.14.41 0.0.0.0/0 to:99.99.99.196 SNAT all -- 10.10.3.125 0.0.0.0/0 to:99.99.99.234 SNAT all -- 0.0.0.0/0 0.0.0.0/0 to:88.88.88.6 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kapa Опубликовано 1 октября, 2011 · Жалоба Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? А тюнить на пределе один сервак - не костыль? А аппаратное решение резервировать не думаете? Между прочим, 5 дешёвых компов легко резервируются одним, НАТят до 5 Гигов, никогда не сгорают одновременно (разве что с узлом вместе) и стоят в разы дешевле одной железки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 1 октября, 2011 · Жалоба DNAT вышеприведенным образом - не вариант. Скорее всего вся таблица проходит линейно, и затык именно в iptables. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 1 октября, 2011 · Жалоба Для теста попробуйте сделать один SNAT, и проверить производительность. Еще, покажите: net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 1 октября, 2011 (изменено) · Жалоба Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? А тюнить на пределе один сервак - не костыль? А аппаратное решение резервировать не думаете? Вот же я и хочу узнать из практики как оно бывает и есть ли смысл думать об аппаратных решениях. Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? Между прочим, 5 дешёвых компов легко резервируются одним, НАТят до 5 Гигов, никогда не сгорают одновременно (разве что с узлом вместе) и стоят в разы дешевле одной железки. Имеете в виду кластер из 5 компов? Практики в подобном вопросе не было. Как подобное реализовать? Для теста попробуйте сделать один SNAT, и проверить производительность. Еще, покажите: net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max Коннтреки тюнинговал. Во время нагрузки оставлял один СНАТ - результат такойже. net.netfilter.nf_conntrack_buckets = 262144 net.netfilter.nf_conntrack_count = 63315 net.netfilter.nf_conntrack_max = 524288 net.nf_conntrack_max = 524288 Изменено 1 октября, 2011 пользователем wired Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kapa Опубликовано 1 октября, 2011 · Жалоба Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? А тюнить на пределе один сервак - не костыль? А аппаратное решение резервировать не думаете? Вот же я и хочу узнать из практики как оно бывает и есть ли смысл думать об аппаратных решениях. Думать, в т.ч. и об аппаратных решениях смысл есть всегда. Между прочим, 5 дешёвых компов легко резервируются одним, НАТят до 5 Гигов, никогда не сгорают одновременно (разве что с узлом вместе) и стоят в разы дешевле одной железки. Имеете в виду кластер из 5 компов? Практики в подобном вопросе не было. Как подобное реализовать? Способов много. rip, ospf, bgp Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zurz Опубликовано 1 октября, 2011 · Жалоба затык на всех комповых платформах не в gbps, а в kpps. на форуме есть много тем, поюзайте поиск. правильно предлагают между бордюрами и кучей дешёвых НАТилок сделать динамическую маршрутизацию, два простеньких Core i7 уделают один 2x головый ксеон на этой задаче (как по цене, так и по производительности). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 1 октября, 2011 · Жалоба Думать, в т.ч. и об аппаратных решениях смысл есть всегда. Имеете в виду кластер из 5 компов? Практики в подобном вопросе не было. Как подобное реализовать? Способов много. rip, ospf, bgp Как подобную конфигурацию - НАТ, ДНАТ, СНАТ, статическая маршрутизация организовать аппаратно? Циска решает подобные вопросы? Какая конфигурация? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 1 октября, 2011 (изменено) · Жалоба затык на всех комповых платформах не в gbps, а в kpps. на форуме есть много тем, поюзайте поиск. правильно предлагают между бордюрами и кучей дешёвых НАТилок сделать динамическую маршрутизацию, два простеньких Core i7 уделают один 2x головый ксеон на этой задаче (как по цене, так и по производительности). про затыки в ППСах, это понятно. Какой предел НАТа для 8ми котловых ксеонов? Какие настройки sysctl? Два простеньких i7? У меня ДВА 4-х ядерных ксеона на таком же сокете 1366 на одной мамке интел Полез копаться в статистике сетевых. нашел rx_nobuffer. За приемный буфер отвечает net.ipv4.tcp.rmem? # ethtool -S eth0|grep -e no_buff -e miss rx_no_buffer_count: 5055497 rx_missed_errors: 670758 # ethtool -S eth1|grep -e no_buff -e miss rx_no_buffer_count: 5019479 rx_missed_errors: 635935 # ethtool -S eth2|grep -e no_buff -e miss rx_no_buffer_count: 2526563 rx_missed_errors: 3 # ethtool -S eth3|grep -e no_buff -e miss rx_no_buffer_count: 2292547 rx_missed_errors: 0 Изменено 1 октября, 2011 пользователем wired Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 1 октября, 2011 (изменено) · Жалоба Полез копаться в статистике сетевых. нашел rx_nobuffer. За приемный буфер отвечает net.ipv4.tcp.rmem? Ring buffers сетевок нужно увеличивать до 4096. Естественно их увеличение приводит к увеличению загрузки сервера - исчезают дропы пакетов, нагрузка на сервер по pps увеличивается. Да и высокая загрузка от softirq при больших объемах NATa нормальна, это не прерывания сетевок а собственно обработка пакетов в netfilter/iptables. Покажите proc/interupts и top в момент тормозов. Изменено 1 октября, 2011 пользователем kayot Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zurz Опубликовано 1 октября, 2011 · Жалоба Два простеньких i7? У меня ДВА 4-х ядерных ксеона на таком же сокете 1366 на одной мамке интел ну и что? Два (и больше) процессора на одной материнке стали устанавливать никак не для "умощнения" I/O, а для наращивания максимального объема памяти. Например чтобы хранить в ней данные БД, или кеш веб-сервера, ну или прочих подобных задач. Просто наращивать память таким образом удобнее с точки зрения физики/геометрии компьютерной начинки. собирать в табличку данные, раскиданные по форуму мне лень, ищите сами. помню, были сведения о 1000 kpps на новом i7/3,4Ghz, и о 550-600 kpps на 2х головых ксеонах 2.2 Ghz тюнили стандартно - по аппнотам от интеловских сетевух Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 1 октября, 2011 (изменено) · Жалоба Полез копаться в статистике сетевых. нашел rx_nobuffer. За приемный буфер отвечает net.ipv4.tcp.rmem? Ring buffers сетевок нужно увеличивать до 4096. Естественно их увеличение приводит к увеличению загрузки сервера - исчезают дропы пакетов, нагрузка на сервер по pps увеличивается. Да и высокая загрузка от softirq при больших объемах NATa нормальна, это не прерывания сетевок а собственно обработка пакетов в netfilter/iptables. Покажите proc/interupts и top в момент тормозов. В том то и нестыковка - не помогает увеличение ринг буферов. Только усугубляет. А помогает, наоборот, уменьшение до минимума. По крайней мере, софтирки вылазят меньше. Уже при RX-TX 1024 ksoftirq до 100% доходит. А при RX-TX=80 20-30% ядра. top покажу завтра, сегодня нагрузка спала. Дропов у меня нет, по крайней мере в ifconfig нет. Дропы появляются при выключении flow-control. ЕТХ2+3=БОНД-0 вход,ЕТХ4+5=БОНД-1 выход 89: 12 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth2 90: 17 0 0 0 0 0 0 96867608 IR-PCI-MSI-edge eth2-rx-0 91: 17 0 0 0 0 0 95610052 0 IR-PCI-MSI-edge eth2-rx-1 92: 17 0 0 0 0 98937428 0 0 IR-PCI-MSI-edge eth2-rx-2 93: 17 0 0 0 87675485 0 0 0 IR-PCI-MSI-edge eth2-rx-3 94: 33 0 0 204808691 0 0 0 0 IR-PCI-MSI-edge eth2-tx-0 95: 21 0 201303747 0 0 0 0 0 IR-PCI-MSI-edge eth2-tx-1 96: 28 215078016 0 0 0 0 0 0 IR-PCI-MSI-edge eth2-tx-2 97: 210527533 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth2-tx-3 98: 12 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth3 99: 16 0 0 0 0 0 0 97463441 IR-PCI-MSI-edge eth3-rx-0 100: 16 0 0 0 0 0 96150086 0 IR-PCI-MSI-edge eth3-rx-1 101: 16 0 0 0 0 99282189 0 0 IR-PCI-MSI-edge eth3-rx-2 102: 16 0 0 0 88339625 0 0 0 IR-PCI-MSI-edge eth3-rx-3 103: 30 0 0 205207908 0 0 0 0 IR-PCI-MSI-edge eth3-tx-0 104: 19 0 201721945 0 0 0 0 0 IR-PCI-MSI-edge eth3-tx-1 105: 22 215600759 0 0 0 0 0 0 IR-PCI-MSI-edge eth3-tx-2 106: 209194790 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth3-tx-3 107: 4 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth4 108: 17 0 0 122431953 0 0 0 0 IR-PCI-MSI-edge eth4-rx-0 109: 15 0 121163214 0 0 0 0 0 IR-PCI-MSI-edge eth4-rx-1 110: 15 127920160 0 0 0 0 0 0 IR-PCI-MSI-edge eth4-rx-2 111: 123928681 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth4-rx-3 112: 17 0 0 0 0 0 0 171432214 IR-PCI-MSI-edge eth4-tx-0 113: 18 0 0 0 0 0 173601056 0 IR-PCI-MSI-edge eth4-tx-1 114: 27 0 0 0 0 180043010 0 0 IR-PCI-MSI-edge eth4-tx-2 115: 15 0 0 0 160017979 0 0 0 IR-PCI-MSI-edge eth4-tx-3 116: 4 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth5 117: 18 0 0 122789938 0 0 0 0 IR-PCI-MSI-edge eth5-rx-0 118: 16 0 121098071 0 0 0 0 0 IR-PCI-MSI-edge eth5-rx-1 119: 16 128669685 0 0 0 0 0 0 IR-PCI-MSI-edge eth5-rx-2 120: 124826214 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth5-rx-3 121: 16 0 0 0 0 0 0 169098453 IR-PCI-MSI-edge eth5-tx-0 122: 20 0 0 0 0 0 171314994 0 IR-PCI-MSI-edge eth5-tx-1 123: 22 0 0 0 0 177527405 0 0 IR-PCI-MSI-edge eth5-tx-2 124: 16 0 0 0 157895409 0 0 0 IR-PCI-MSI-edge eth5-tx-3 125: 25 0 64410831 0 0 0 0 0 IR-PCI-MSI-edge eth1 Нагрузка: 912Мб/с, 140Кппс. При RX-TX=80: top - 21:58:46 up 12:41, 2 users, load average: 0.00, 0.05, 0.30 Tasks: 216 total, 1 running, 215 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 92.0%id, 0.0%wa, 0.0%hi, 7.9%si, 0.0%st Mem: 12388792k total, 1468064k used, 10920728k free, 85756k buffers Swap: 14483452k total, 0k used, 14483452k free, 418628k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14802 root 20 0 15296 1388 964 R 1.0 0.0 5:53.29 top 13 root 20 0 0 0 0 S 0.3 0.0 18:34.80 ksoftirqd/3 22 root 20 0 0 0 0 S 0.3 0.0 43:12.79 ksoftirqd/6 1 root 20 0 19468 1532 1244 S 0.0 0.0 0:04.55 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 11:30.08 ksoftirqd/0 4 root RT 0 0 0 0 S 0.0 0.0 0:00.65 migration/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.98 migration/1 Пинг на яндекс = 34мс При RX-TX=2048: top - 22:01:11 up 12:44, 2 users, load average: 3.37, 0.85, 0.53 Tasks: 216 total, 6 running, 210 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 15.6%id, 0.2%wa, 0.0%hi, 84.1%si, 0.0%st Mem: 12388792k total, 1393636k used, 10995156k free, 85888k buffers Swap: 14483452k total, 0k used, 14483452k free, 418664k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10 root 20 0 0 0 0 R 100.6 0.0 21:13.67 ksoftirqd/2 25 root 20 0 0 0 0 R 94.2 0.0 44:23.99 ksoftirqd/7 19 root 20 0 0 0 0 R 93.6 0.0 28:48.62 ksoftirqd/5 22 root 20 0 0 0 0 R 88.9 0.0 43:44.42 ksoftirqd/6 16 root 20 0 0 0 0 R 80.5 0.0 63:54.05 ksoftirqd/4 3 root 20 0 0 0 0 S 15.7 0.0 11:36.39 ksoftirqd/0 31 root 20 0 0 0 0 S 12.9 0.0 0:47.07 events/4 14802 root 20 0 15296 1388 964 R 7.3 0.0 5:54.61 top 13 root 20 0 0 0 0 S 6.7 0.0 18:44.45 ksoftirqd/3 7 root 20 0 0 0 0 S 6.4 0.0 10:11.82 ksoftirqd/1 33 root 20 0 0 0 0 S 5.0 0.0 0:20.88 events/6 27 root 20 0 0 0 0 S 1.1 0.0 4:44.74 events/0 Пинг на яндекс = 400-500мс Изменено 1 октября, 2011 пользователем wired Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 1 октября, 2011 · Жалоба собирать в табличку данные, раскиданные по форуму мне лень, ищите сами. помню, были сведения о 1000 kpps на новом i7/3,4Ghz, и о 550-600 kpps на 2х головых ксеонах 2.2 Ghz тюнили стандартно - по аппнотам от интеловских сетевух не трудно, конечно. Перед постом я все перечитал. Советы разные, иногда диаметрально противоположные. Один рекомендует увеличить InterruptThrottleRate до 100000, другой-что надо наоборот уменьшать до 3000. Один приводит параметры тюнинга ядра, другие говорят что большинство приведенных параметров не влияют на роутинг трафика. Я особо экспериментировать не могу - рестарт служб/сервера - абоненты страдают. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 1 октября, 2011 · Жалоба 2 wired: жестокая у вас конфигурация.. Сделайте на каждой сетевке 2 очереди вместо 8 и привяжите каждый интерфейс к ядру. Запустите top и нажмите '1' - вывод без разбивки по ядрам не имеет смысла. При RX-TX=80 естественно загрузка будет минимальна, половина приходящих пакетов просто теряется. НУЖНО поставить 4096 и дальше уже смотреть что именно кушает ресурсы... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 1 октября, 2011 · Жалоба wired Давайте по порядку. 1. xlat - это таблица трансляций. чтобы её смотреть можно печатать /proc/net/nf_conntrack, но там ещё и локальные соединения, которые трекаются нетфильтром. для просмотра чисто таблицы трансляций в human readable формате можно использовать утилитку netstat-nat (http://tweegy.nl/projects/netstat-nat/ ) 2. то, что у вас ухудшается ситуация, когда вы увеличивается ring buffer на сетевой карте это означает лишь то, что у вас не хватает мощностей cpu. при уменьшении, у вас возникает больше дропов или флоу-контролов(что по сути, почти одно и то же). флоу-контрол это значит что у ваших пользователей снижается скорость. итого, уменьшение ring буфера это самообман - серверу-то лучше, а абонентам вашим хуже при этом 3. у вас неправильный дизайн. фактически, вам нужен stateless nat для тех, кто заказал статический ip, а вы делаете stateful nat(iptables snat и dnat это stateful действия). плохо это тем, что производительность вашего nat-сервера напрямую зависит от того сколько у каждого такого абонента tcp/udp/icmp-сессий(=трансляций), хотя у вас трансляции 1:1 и таблица xlat вам вообще не нужна. Начиная с ядра 2.6.24 stateless nat делается через tc. экспериментируйте с ним. 4. наращивание кол-ва NAT-серверов это не костыль, а масштабируемость! далеко не всегда и не везде можно нарастить производительность как линейную функцию от потраченных денег. P.S. Что это правила, если не секрет?: DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:24242 to:10.1.0.2 DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:48484 to:10.1.0.2 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:24243 to:10.1.0.2 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:24245 to:10.10.4.82 DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:48485 to:10.10.4.82 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 2 октября, 2011 · Жалоба Позволю себе вставить свои 5 копеек: Могу сказать, что Вы явно что-то упускаете. 200Kpps для такой машины - это чих. Самый крутой и правильный способ узнать что делают софтирки - это сделать профайлинг. Может у вас там шейперы, может iptables в таблице filter содержит 1К записей, может еще что. Тюнинг на уровне параметров ядра тут мало чем поможет - нужно выяснять что делает ядро с пакетом. Трансляция адресов, о которой тут говорят происходит per flow и для 200Kpps её вообще не видно. Впишите хоть 1000 правил. Тут советовали увеличить ринг - это глупости. Чем меньше ринг, тем быстрее работает сетевое устройство. Увеличивать его нужно только, когда начинают теряться пакеты, которым нет места в буфере. Поэтому идеально самый маленький, на котором нет потерь, с запасом. Но в вашем случае я бы ставил дефолт для диагностики. Что еще. 100К Interrupt Throttle Rate - это не ваш случай. Те кто советует ставить маленькое статическое значение - правы, но вам лучше пока ставить дефолты. Я вообще рекомендую все настроенные вами параметры сбросить в дефолты, поставить профайлер и посмотреть. К сожалению, не вижу какой у вас дистрибутив, но во всех нормальных серверных дистрибутивах настройки по умолчанию решат вашу задачу на вашем железе без проблем и без напильника. Там потом надо будет подкрутить немного настройки ядра связанные с очисткой conntrack но на данном этапе я бы даже это не трогал, если ядро не ругается в лог, что кончились таблицы. Я помню очень долго боролся на одной машине с софтирками и что только не крутил и что только не проверял. Профайлинг за 2 минуты показал, что всё жрется фильтрами шейпера, которые из-за ошибки в скриптах генерились сотнями в виде дублей. А на первый взгляд шейперы были здоровы. Так что бросайте крутить ядро и iptables, берите профайлер, смотрите и нам показывайте. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wired Опубликовано 2 октября, 2011 (изменено) · Жалоба s.lobanov DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:48485 to:10.10.4.82 это проброс портов в локалку для торрентов. при iptables -L -n -v показывает еще "-i bond0". Dark_Angel Щейперов на машине нет. Все убрано давно. Сегодня убрал даже НАТ! Результат тот же. Ирки в топе как и раньше. Вот что показывает профайлер: # opreport CPU_CLK_UNHALT...| samples| %| ------------------ 4721225 88.5877 vmlinux 491657 9.2253 ts_kmp 67897 1.2740 igb 17448 0.3274 nf_nat 14243 0.2673 bonding 9472 0.1777 iptable_nat 2790 0.0524 xt_string 2587 0.0485 oprofile 787 0.0148 tg3 277 0.0052 mysqld # opreport -l samples % image name app name symbol name 2911238 35.1997 vmlinux vmlinux add_unmap 722339 8.7338 ts_kmp ts_kmp /ts_kmp 501130 6.0591 vmlinux vmlinux alloc_iova 480402 5.8085 vmlinux vmlinux rb_prev 455227 5.5041 vmlinux vmlinux find_iova 404687 4.8931 vmlinux vmlinux clflush_cache_range 323601 3.9126 vmlinux vmlinux read_hpet 117383 1.4193 vmlinux vmlinux __free_iova 116054 1.4032 vmlinux vmlinux __domain_mapping 108956 1.3174 igb igb /igb 102033 1.2337 vmlinux vmlinux domain_get_iommu 84486 1.0215 vmlinux vmlinux do_raw_spin_lock 80566 0.9741 vmlinux vmlinux rb_erase 68672 0.8303 vmlinux vmlinux iommu_flush_dev_iotlb 65140 0.7876 vmlinux vmlinux ipt_do_table 64901 0.7847 vmlinux vmlinux find_first_bit 59910 0.7244 vmlinux vmlinux rb_insert_color 42467 0.5135 vmlinux vmlinux flush_unmaps 40216 0.4863 vmlinux vmlinux ip_route_input_common 37102 0.4486 vmlinux vmlinux kmem_cache_alloc 33232 0.4018 vmlinux vmlinux intel_unmap_page 30514 0.3689 vmlinux vmlinux tcp_packet 30112 0.3641 vmlinux vmlinux __slab_free 29803 0.3603 vmlinux vmlinux bit_spin_lock.clone.40 29137 0.3523 vmlinux vmlinux raw_local_irq_restore 28974 0.3503 vmlinux vmlinux pfn_to_dma_pte 27112 0.3278 nf_nat nf_nat /nf_nat 26131 0.3159 vmlinux vmlinux __intel_map_single.clone.27 25926 0.3135 vmlinux vmlinux __napi_gro_receive 25233 0.3051 vmlinux vmlinux nf_iterate 25141 0.3040 vmlinux vmlinux __nf_conntrack_find 24482 0.2960 vmlinux vmlinux iommu_no_mapping 23071 0.2790 vmlinux vmlinux virt_to_head_page 21924 0.2651 bonding bonding /bonding 21561 0.2607 vmlinux vmlinux nf_ct_tuple_equal Изменено 2 октября, 2011 пользователем wired Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 2 октября, 2011 · Жалоба top покажите нормальный, интересно же.. Может там все на одно ядро падает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 2 октября, 2011 · Жалоба add_unmap вверху любопытен. Just in case, просто проскакивало намедни в netdev Support for DMA Remapping Devices - в N У вас CONFIG_DMAR в .config ядра включен или выключен? References [1] http://lists.openwall.net/netdev/2011/04/08/28 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wtyd Опубликовано 3 октября, 2011 · Жалоба s.lobanov DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:48485 to:10.10.4.82 это проброс портов в локалку для торрентов. при iptables -L -n -v показывает еще "-i bond0". Dark_Angel Щейперов на машине нет. Все убрано давно. Сегодня убрал даже НАТ! Результат тот же. Ирки в топе как и раньше. ... Как вы убрали NAT ? Это я на всякий случай интересуюсь. Надо вместе с натом убирать и CONNTRACK, т.е. выгрузить модули, только тогда смысл будет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dark_Angel Опубликовано 3 октября, 2011 · Жалоба 2wtyd: В профайлинге видно, что процессор ест не нат, так что либо убрали и помогло, либо не убрали, но он и не мешал. Что трекинг, что НАТ на 200Kpps вообще не напряг для данной машины. 2wired: По крайней мере картина расхода теперь у вас есть. К сожалению, я не знаю что это за функция такая и за что отвечает - не сталкивался. Послушайте что говорит nuclearcat, ну + гугл. Я думаю решение найдется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...