Перейти к содержимому
Калькуляторы

Linux транзитный роутер настройка максимальной производительности

Имеется в наличии сервер 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

Изменено пользователем wired

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделайте график по кол-ву записей в xlat, может что-то прояснится. Правила iptables тоже интересно посмотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами.

Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделайте график по кол-ву записей в 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами.

Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5?

А тюнить на пределе один сервак - не костыль?

А аппаратное решение резервировать не думаете?

Между прочим, 5 дешёвых компов легко резервируются одним, НАТят до 5 Гигов, никогда не сгорают одновременно (разве что с узлом вместе) и стоят в разы дешевле одной железки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

DNAT вышеприведенным образом - не вариант.

Скорее всего вся таблица проходит линейно, и затык именно в iptables.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для теста попробуйте сделать один SNAT, и проверить производительность.

Еще, покажите:

net.netfilter.nf_conntrack_buckets

net.netfilter.nf_conntrack_count

net.netfilter.nf_conntrack_max

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо аппаратных поделите нагрузку пополам между 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

Изменено пользователем wired

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо аппаратных поделите нагрузку пополам между 2-мя дешёвыми компами.

Не хочется мастырить костыли. 2-х компов хватит максимум на полгода, а дальше 3? 4? 5?

А тюнить на пределе один сервак - не костыль?

А аппаратное решение резервировать не думаете?

Вот же я и хочу узнать из практики как оно бывает и есть ли смысл думать об аппаратных решениях.

Думать, в т.ч. и об аппаратных решениях смысл есть всегда.

 

Между прочим, 5 дешёвых компов легко резервируются одним, НАТят до 5 Гигов, никогда не сгорают одновременно (разве что с узлом вместе) и стоят в разы дешевле одной железки.

Имеете в виду кластер из 5 компов? Практики в подобном вопросе не было. Как подобное реализовать?

Способов много. rip, ospf, bgp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

затык на всех комповых платформах не в gbps, а в kpps. на форуме есть много тем, поюзайте поиск.

правильно предлагают между бордюрами и кучей дешёвых НАТилок сделать динамическую маршрутизацию, два простеньких Core i7 уделают один 2x головый ксеон на этой задаче (как по цене, так и по производительности).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Думать, в т.ч. и об аппаратных решениях смысл есть всегда.

Имеете в виду кластер из 5 компов? Практики в подобном вопросе не было. Как подобное реализовать?

Способов много. rip, ospf, bgp

Как подобную конфигурацию - НАТ, ДНАТ, СНАТ, статическая маршрутизация организовать аппаратно? Циска решает подобные вопросы? Какая конфигурация?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

затык на всех комповых платформах не в 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

Изменено пользователем wired

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Полез копаться в статистике сетевых. нашел rx_nobuffer. За приемный буфер отвечает net.ipv4.tcp.rmem?

Ring buffers сетевок нужно увеличивать до 4096. Естественно их увеличение приводит к увеличению загрузки сервера - исчезают дропы пакетов, нагрузка на сервер по pps увеличивается.

Да и высокая загрузка от softirq при больших объемах NATa нормальна, это не прерывания сетевок а собственно обработка пакетов в netfilter/iptables.

Покажите proc/interupts и top в момент тормозов.

Изменено пользователем kayot

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Два простеньких i7? У меня ДВА 4-х ядерных ксеона на таком же сокете 1366 на одной мамке интел

ну и что?

 

Два (и больше) процессора на одной материнке стали устанавливать никак не для "умощнения" I/O, а для наращивания максимального объема памяти. Например чтобы хранить в ней данные БД, или кеш веб-сервера, ну или прочих подобных задач. Просто наращивать память таким образом удобнее с точки зрения физики/геометрии компьютерной начинки.

 

собирать в табличку данные, раскиданные по форуму мне лень, ищите сами.

помню, были сведения о 1000 kpps на новом i7/3,4Ghz, и о 550-600 kpps на 2х головых ксеонах 2.2 Ghz

тюнили стандартно - по аппнотам от интеловских сетевух

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Полез копаться в статистике сетевых. нашел 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мс

Изменено пользователем wired

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

собирать в табличку данные, раскиданные по форуму мне лень, ищите сами.

помню, были сведения о 1000 kpps на новом i7/3,4Ghz, и о 550-600 kpps на 2х головых ксеонах 2.2 Ghz

тюнили стандартно - по аппнотам от интеловских сетевух

не трудно, конечно. Перед постом я все перечитал. Советы разные, иногда диаметрально противоположные.

Один рекомендует увеличить InterruptThrottleRate до 100000, другой-что надо наоборот уменьшать до 3000. Один приводит параметры тюнинга ядра, другие говорят что большинство приведенных параметров не влияют на роутинг трафика. Я особо экспериментировать не могу - рестарт служб/сервера - абоненты страдают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 wired: жестокая у вас конфигурация..

Сделайте на каждой сетевке 2 очереди вместо 8 и привяжите каждый интерфейс к ядру.

Запустите top и нажмите '1' - вывод без разбивки по ядрам не имеет смысла.

При RX-TX=80 естественно загрузка будет минимальна, половина приходящих пакетов просто теряется. НУЖНО поставить 4096 и дальше уже смотреть что именно кушает ресурсы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Позволю себе вставить свои 5 копеек:

 

Могу сказать, что Вы явно что-то упускаете. 200Kpps для такой машины - это чих. Самый крутой и правильный способ узнать что делают софтирки - это сделать профайлинг. Может у вас там шейперы, может iptables в таблице filter содержит 1К записей, может еще что. Тюнинг на уровне параметров ядра тут мало чем поможет - нужно выяснять что делает ядро с пакетом. Трансляция адресов, о которой тут говорят происходит per flow и для 200Kpps её вообще не видно. Впишите хоть 1000 правил.

 

Тут советовали увеличить ринг - это глупости. Чем меньше ринг, тем быстрее работает сетевое устройство. Увеличивать его нужно только, когда начинают теряться пакеты, которым нет места в буфере. Поэтому идеально самый маленький, на котором нет потерь, с запасом. Но в вашем случае я бы ставил дефолт для диагностики.

 

Что еще. 100К Interrupt Throttle Rate - это не ваш случай. Те кто советует ставить маленькое статическое значение - правы, но вам лучше пока ставить дефолты.

 

Я вообще рекомендую все настроенные вами параметры сбросить в дефолты, поставить профайлер и посмотреть. К сожалению, не вижу какой у вас дистрибутив, но во всех нормальных серверных дистрибутивах настройки по умолчанию решат вашу задачу на вашем железе без проблем и без напильника. Там потом надо будет подкрутить немного настройки ядра связанные с очисткой conntrack но на данном этапе я бы даже это не трогал, если ядро не ругается в лог, что кончились таблицы.

 

Я помню очень долго боролся на одной машине с софтирками и что только не крутил и что только не проверял. Профайлинг за 2 минуты показал, что всё жрется фильтрами шейпера, которые из-за ошибки в скриптах генерились сотнями в виде дублей. А на первый взгляд шейперы были здоровы.

 

Так что бросайте крутить ядро и iptables, берите профайлер, смотрите и нам показывайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем wired

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

top покажите нормальный, интересно же.. Может там все на одно ядро падает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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, т.е. выгрузить модули, только тогда смысл будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2wtyd: В профайлинге видно, что процессор ест не нат, так что либо убрали и помогло, либо не убрали, но он и не мешал. Что трекинг, что НАТ на 200Kpps вообще не напряг для данной машины.

 

2wired: По крайней мере картина расхода теперь у вас есть. К сожалению, я не знаю что это за функция такая и за что отвечает - не сталкивался. Послушайте что говорит nuclearcat, ну + гугл. Я думаю решение найдется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.