wired Posted September 30, 2011 Posted September 30, 2011 (edited) Имеется в наличии сервер 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 Edited September 30, 2011 by wired Вставить ник Quote
kapa Posted September 30, 2011 Posted September 30, 2011 Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Вставить ник Quote
s.lobanov Posted September 30, 2011 Posted September 30, 2011 Сделайте график по кол-ву записей в xlat, может что-то прояснится. Правила iptables тоже интересно посмотреть. Вставить ник Quote
wired Posted October 1, 2011 Author Posted October 1, 2011 Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? Вставить ник Quote
wired Posted October 1, 2011 Author Posted October 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 Вставить ник Quote
kapa Posted October 1, 2011 Posted October 1, 2011 Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? А тюнить на пределе один сервак - не костыль? А аппаратное решение резервировать не думаете? Между прочим, 5 дешёвых компов легко резервируются одним, НАТят до 5 Гигов, никогда не сгорают одновременно (разве что с узлом вместе) и стоят в разы дешевле одной железки. Вставить ник Quote
nuclearcat Posted October 1, 2011 Posted October 1, 2011 DNAT вышеприведенным образом - не вариант. Скорее всего вся таблица проходит линейно, и затык именно в iptables. Вставить ник Quote
nuclearcat Posted October 1, 2011 Posted October 1, 2011 Для теста попробуйте сделать один SNAT, и проверить производительность. Еще, покажите: net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max Вставить ник Quote
wired Posted October 1, 2011 Author Posted October 1, 2011 (edited) Вместо аппаратных поделите нагрузку пополам между 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 Edited October 1, 2011 by wired Вставить ник Quote
kapa Posted October 1, 2011 Posted October 1, 2011 Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами. Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5? А тюнить на пределе один сервак - не костыль? А аппаратное решение резервировать не думаете? Вот же я и хочу узнать из практики как оно бывает и есть ли смысл думать об аппаратных решениях. Думать, в т.ч. и об аппаратных решениях смысл есть всегда. Между прочим, 5 дешёвых компов легко резервируются одним, НАТят до 5 Гигов, никогда не сгорают одновременно (разве что с узлом вместе) и стоят в разы дешевле одной железки. Имеете в виду кластер из 5 компов? Практики в подобном вопросе не было. Как подобное реализовать? Способов много. rip, ospf, bgp Вставить ник Quote
zurz Posted October 1, 2011 Posted October 1, 2011 затык на всех комповых платформах не в gbps, а в kpps. на форуме есть много тем, поюзайте поиск. правильно предлагают между бордюрами и кучей дешёвых НАТилок сделать динамическую маршрутизацию, два простеньких Core i7 уделают один 2x головый ксеон на этой задаче (как по цене, так и по производительности). Вставить ник Quote
wired Posted October 1, 2011 Author Posted October 1, 2011 Думать, в т.ч. и об аппаратных решениях смысл есть всегда. Имеете в виду кластер из 5 компов? Практики в подобном вопросе не было. Как подобное реализовать? Способов много. rip, ospf, bgp Как подобную конфигурацию - НАТ, ДНАТ, СНАТ, статическая маршрутизация организовать аппаратно? Циска решает подобные вопросы? Какая конфигурация? Вставить ник Quote
wired Posted October 1, 2011 Author Posted October 1, 2011 (edited) затык на всех комповых платформах не в 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 Edited October 1, 2011 by wired Вставить ник Quote
kayot Posted October 1, 2011 Posted October 1, 2011 (edited) Полез копаться в статистике сетевых. нашел rx_nobuffer. За приемный буфер отвечает net.ipv4.tcp.rmem? Ring buffers сетевок нужно увеличивать до 4096. Естественно их увеличение приводит к увеличению загрузки сервера - исчезают дропы пакетов, нагрузка на сервер по pps увеличивается. Да и высокая загрузка от softirq при больших объемах NATa нормальна, это не прерывания сетевок а собственно обработка пакетов в netfilter/iptables. Покажите proc/interupts и top в момент тормозов. Edited October 1, 2011 by kayot Вставить ник Quote
zurz Posted October 1, 2011 Posted October 1, 2011 Два простеньких i7? У меня ДВА 4-х ядерных ксеона на таком же сокете 1366 на одной мамке интел ну и что? Два (и больше) процессора на одной материнке стали устанавливать никак не для "умощнения" I/O, а для наращивания максимального объема памяти. Например чтобы хранить в ней данные БД, или кеш веб-сервера, ну или прочих подобных задач. Просто наращивать память таким образом удобнее с точки зрения физики/геометрии компьютерной начинки. собирать в табличку данные, раскиданные по форуму мне лень, ищите сами. помню, были сведения о 1000 kpps на новом i7/3,4Ghz, и о 550-600 kpps на 2х головых ксеонах 2.2 Ghz тюнили стандартно - по аппнотам от интеловских сетевух Вставить ник Quote
wired Posted October 1, 2011 Author Posted October 1, 2011 (edited) Полез копаться в статистике сетевых. нашел 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мс Edited October 1, 2011 by wired Вставить ник Quote
wired Posted October 1, 2011 Author Posted October 1, 2011 собирать в табличку данные, раскиданные по форуму мне лень, ищите сами. помню, были сведения о 1000 kpps на новом i7/3,4Ghz, и о 550-600 kpps на 2х головых ксеонах 2.2 Ghz тюнили стандартно - по аппнотам от интеловских сетевух не трудно, конечно. Перед постом я все перечитал. Советы разные, иногда диаметрально противоположные. Один рекомендует увеличить InterruptThrottleRate до 100000, другой-что надо наоборот уменьшать до 3000. Один приводит параметры тюнинга ядра, другие говорят что большинство приведенных параметров не влияют на роутинг трафика. Я особо экспериментировать не могу - рестарт служб/сервера - абоненты страдают. Вставить ник Quote
kayot Posted October 1, 2011 Posted October 1, 2011 2 wired: жестокая у вас конфигурация.. Сделайте на каждой сетевке 2 очереди вместо 8 и привяжите каждый интерфейс к ядру. Запустите top и нажмите '1' - вывод без разбивки по ядрам не имеет смысла. При RX-TX=80 естественно загрузка будет минимальна, половина приходящих пакетов просто теряется. НУЖНО поставить 4096 и дальше уже смотреть что именно кушает ресурсы... Вставить ник Quote
s.lobanov Posted October 1, 2011 Posted October 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 Вставить ник Quote
Dark_Angel Posted October 2, 2011 Posted October 2, 2011 Позволю себе вставить свои 5 копеек: Могу сказать, что Вы явно что-то упускаете. 200Kpps для такой машины - это чих. Самый крутой и правильный способ узнать что делают софтирки - это сделать профайлинг. Может у вас там шейперы, может iptables в таблице filter содержит 1К записей, может еще что. Тюнинг на уровне параметров ядра тут мало чем поможет - нужно выяснять что делает ядро с пакетом. Трансляция адресов, о которой тут говорят происходит per flow и для 200Kpps её вообще не видно. Впишите хоть 1000 правил. Тут советовали увеличить ринг - это глупости. Чем меньше ринг, тем быстрее работает сетевое устройство. Увеличивать его нужно только, когда начинают теряться пакеты, которым нет места в буфере. Поэтому идеально самый маленький, на котором нет потерь, с запасом. Но в вашем случае я бы ставил дефолт для диагностики. Что еще. 100К Interrupt Throttle Rate - это не ваш случай. Те кто советует ставить маленькое статическое значение - правы, но вам лучше пока ставить дефолты. Я вообще рекомендую все настроенные вами параметры сбросить в дефолты, поставить профайлер и посмотреть. К сожалению, не вижу какой у вас дистрибутив, но во всех нормальных серверных дистрибутивах настройки по умолчанию решат вашу задачу на вашем железе без проблем и без напильника. Там потом надо будет подкрутить немного настройки ядра связанные с очисткой conntrack но на данном этапе я бы даже это не трогал, если ядро не ругается в лог, что кончились таблицы. Я помню очень долго боролся на одной машине с софтирками и что только не крутил и что только не проверял. Профайлинг за 2 минуты показал, что всё жрется фильтрами шейпера, которые из-за ошибки в скриптах генерились сотнями в виде дублей. А на первый взгляд шейперы были здоровы. Так что бросайте крутить ядро и iptables, берите профайлер, смотрите и нам показывайте. Вставить ник Quote
wired Posted October 2, 2011 Author Posted October 2, 2011 (edited) 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 Edited October 2, 2011 by wired Вставить ник Quote
kayot Posted October 2, 2011 Posted October 2, 2011 top покажите нормальный, интересно же.. Может там все на одно ядро падает. Вставить ник Quote
nuclearcat Posted October 2, 2011 Posted October 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 Вставить ник Quote
wtyd Posted October 3, 2011 Posted October 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, т.е. выгрузить модули, только тогда смысл будет. Вставить ник Quote
Dark_Angel Posted October 3, 2011 Posted October 3, 2011 2wtyd: В профайлинге видно, что процессор ест не нат, так что либо убрали и помогло, либо не убрали, но он и не мешал. Что трекинг, что НАТ на 200Kpps вообще не напряг для данной машины. 2wired: По крайней мере картина расхода теперь у вас есть. К сожалению, я не знаю что это за функция такая и за что отвечает - не сталкивался. Послушайте что говорит nuclearcat, ну + гугл. Я думаю решение найдется. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.