LINUX.ORG.RU
ФорумAdmin

сделать так чтобы линукс не дропал пакеты к определённому хосту


0

0

Хай всем!

Такая проблема - есть сервак - очень загружен. Периодически он передаёт статистику наружу, которая для меня важна. Так вот при усилении нагрузки (сетевой, много коннектов), проц съеден на 15%, сеть процентов на 10, ядро начинает дропать исходящие соединения (софтина просто по таймауту пишет что не может соединиться с хостом снаружи). Эта хрень наблюдается на некоторых серваках с RedHat-ом, на некоторых не наблюдается, закономерность тяжело определить. На этом стоит RedHat Enterprise linux 4. Можно ли както сделать, хотя бы, чтоб не дропалсь соединения к одной наружной машине, т.е. как то её приоритизировать ?

спасибо заранее


tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: prio bands 2 \
priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
tc qdisc add dev eth0 parent 1:1 handle 10: pfifo limit 20
tc qdisc add dev eth0 parent 1:2 handle 20: pfifo limit 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 \
u32 match ip dst 172.18.0.0/16 classid 1:1
tc filter add dev eth0 parent 1:0 protocol ip prio 2 \
u32 match u8 0x40 0xf0 classid 1:2

или выставлять tos (легче всего при помощи iptables) и
tc qdisc add dev eth0 root pfifo_fast

Z0termaNN
()
Ответ на: комментарий от Z0termaNN

сенкс! для одного получилось (первый способ, вами предложенный). а вот можно ли для двух ? с сделал так

tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1: prio bands 2 \ priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 tc qdisc add dev eth0 parent 1:1 handle 10: pfifo limit 20 tc qdisc add dev eth0 parent 1:2 handle 20: pfifo limit 10 tc filter add dev eth0 parent 1:0 protocol ip prio 1 \ u32 match ip dst server1 classid 1:1 tc filter add dev eth0 parent 1:0 protocol ip prio 1 \ u32 match ip dst server2 classid 1:1 tc filter add dev eth0 parent 1:0 protocol ip prio 2 \ u32 match u8 0x40 0xf0 classid 1:2

для server2 - супер - ноль потеряных соединений. а вот на сервер1 - продолжается та же песня :(

vladie
() автор топика
Ответ на: комментарий от Z0termaNN

сенкс! для одного получилось (первый способ, вами предложенный). а вот можно ли для двух ? с сделал так

tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: prio bands 2 \
priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
tc qdisc add dev eth0 parent 1:1 handle 10: pfifo limit 20
tc qdisc add dev eth0 parent 1:2 handle 20: pfifo limit 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 \
u32 match ip dst server1 classid 1:1
tc filter add dev eth0 parent 1:0 protocol ip prio 1 \
u32 match ip dst server2 classid 1:1
tc filter add dev eth0 parent 1:0 protocol ip prio 2 \
u32 match u8 0x40 0xf0 classid 1:2

для server2 - супер - ноль потеряных соединений. а вот на сервер1 - продолжается та же песня :(

vladie
() автор топика
Ответ на: комментарий от vladie

вот чего о линке говорит ifconfig:

eth0 Link encap:Ethernet HWaddr x:x:x:x:x:x
inet addr:x.x.x.x Bcast:x.x.x.255 Mask:255.255.255.0
inet6 addr: x::x:x:x:x/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:353125327 errors:370604 dropped:370604 overruns:370604 frame:0
TX packets:498668137 errors:8352 dropped:0 overruns:0 carrier:8352
collisions:13743968 txqueuelen:1000
RX bytes:1381029611 (1.2 GiB) TX bytes:2828538261 (2.6 GiB)
Base address:0xb800 Memory:fc9c0000-fc9e0000

можно ли каким то макаром избавится от этих overruns ? спасибо заранее!!!

vladie
() автор топика
Ответ на: комментарий от vladie

блин, похоже что дело оказалось в том, что сетевуха стояла в 10мбитном режиме, ещё и халф-дуплекс.

vladie
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.