--}}
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем

Помогите оптимизировать скорость сети в Linux

Сисадминское
6
53
С друзьями на NN.RU
В социальных сетях
Поделиться
Atom
14.04.2010
Скачиваю один и тот же файл:
1) непосредственно со шлюза командой wget - имею скорость 2.2 М/s
2) c компа в локалке (в этом же свитче) - имею скорость 60 К/s.

на шлюзе для компа в локалке дается форвардингом портов:
-A FORWARD -s 192.168.0.2 -o eth1 -j ACCEPT

куда копать? где образовывается затык?

Дополнение: с первой машины среднее время ответа по ping 0.3 мс, со второй - 0.5 мс.
Много неясностей, через что качаете (протокол) при чем тут шлюз и правило если комп в локалке?
Попробую потелепатить - может в самбе поковырять параметры TCP_NODELAY и им подобные?
Atom
14.04.2010
шлюз - раздает инет. На нем же стоит squid.
оба раза файл качался с инета c машин под линуксом командой wget.
инет на вторую машину попадает, минуя squid, форвардингом портов.

samba тут ни при чем, хотя скорость у нее тоже отвратная :)
KotOFF
14.04.2010
1. Разрешить всё в файрволле и посмотреть скорость на компе, сделать выводы.
2. tcpdump посмотреть как ходят пакеты и что блочится, из этого делать выводы
P.S. У меня правила для полного ната для моей машины на шлюзе выглядят так:
-A FORWARD -s 192.168.0.2 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.2 -o eth1 -j ACCEPT
, где eth1 - интерфейс завернутый в локалку.
Atom
14.04.2010
KotOFF писал(а)
2. tcpdump посмотреть как ходят пакеты и что блочится, из этого делать выводы

посмотрел. Но с выводами туговато:
17:32:12.713881 IP 192.168.0.2.55485 > www.xxx.ru.http: . ack 148331 win 15109 <nop,nop,timestamp 654995237 30350014,nop,nop,sack sack 1 {149767:155571} >
17:32:12.717754 IP www.xxx.ru.http > 192.168.0.2.55485: . 149791:151239(1448) ack 436 win 65100 <nop,nop,timestamp 30350157 654995237>
17:32:12.717882 IP www.xxx.ru.http > 192.168.0.2.55485: . 151239:152687(1448) ack 436 win 65100 <nop,nop,timestamp 30350157 654995237>
17:32:12.718008 IP www.xxx.ru.http > 192.168.0.2.55485: . 152687:154135(1448) ack 436 win 65100 <nop,nop,timestamp 30350157 654995237>
17:32:12.718153 IP www.xxx.ru.http > 192.168.0.2.55485: . 154135:155583(1448) ack 436 win 65100 <nop,nop,timestamp 30350157 654995237>
17:32:12.718284 IP www.xxx.ru.http > 192.168.0.2.55485: . 155583:157031(1448) ack 436 win 65100 <nop,nop,timestamp 30350157 654995237>
17:32:12.718412 IP 192.168.0.2.55485 > www.xxx.ru.http: . ack 148331 win 15109 <nop,nop,timestamp 654995238 30350014,nop,nop,sack sack 2 {152687:154135}{149767:155571} >
17:32:12.721750 IP www.xxx.ru.http > 192.168.0.2.55485: . 157031:158479(1448) ack 436 win 65100 <nop,nop,timestamp 30350157 654995238>

www.xxx.ru - откуда скачиваем.
KotOFF
14.04.2010
Можно конфиг IPtables в студию?
Atom
15.04.2010
Вот конфиг iptables
ip внешнего интерфейса заменен на строку IP_OF_OUT_INTERFACE
К сообщению прикреплен файл:
21531187-iptables.txt   (3 Kb)   Скачать файл
Mihalych
15.04.2010
Вижу 2 строки:
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j DROP
-A INPUT -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT
Я так понял, что там squid налажен? Тогда непонятно как wget тянет со вротой машины.
А если вместо этих 2-х строк применить:
IPTABLES -t nat -A PREROUTING -i $INT_IF ! -d $EXT_NET -p tcp --dport http -j DNAT --to $SQUID

INT_IF - внутренний интерфейс
EXT_NET - внешка в формате AAA.BBB.CCC.DDD/ZZ
SQUID - $INT_IF:3128

плюсом к этому то, что проксю на клиентах прописывать не надо.
Atom
15.04.2010
Mihalych писал(а)
Я так понял, что там squid налажен? Тогда непонятно как wget тянет со вротой машины.

-A FORWARD -s 192.168.0.2 -o eth1 -j ACCEPT

так сделано для машины с wget.
Mihalych
15.04.2010
IPTABLES -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.0.2 -j ACCEPT
не? :)
KotOFF
15.04.2010
-A FORWARD -s 192.168.0.2 -o eth1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Если я правильно понимаю эти правила в цепочке forward должны выполнять следующие функции:
Форвардить все пакеты проходящие на интерфейс eth1 от источника 192.168.0.2 в мир (-A FORWARD -s 192.168.0.2 -o eth1 -j ACCEPT) и пропускать их обратно из мира на 192.168.0.2 по правилу установки соединения (-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT)

Судя по мануалу ( www.opennet.ru/docs/RUS/iptables/#GENERICMATCHES )
в цепочке forward неправильно выставлен критерий для интерфейса, т.е. должно быть -A FORWARD -s 192.168.0.2 -i eth1 -j ACCEPT, т.к. eth1 является -i ( --in-interface).
P.S Просто для теста можно сделать так:
-A FORWARD -s 192.168.0.2 -j ACCEPT
-A FORWARD -d 192.168.0.2 -j ACCEPT
Если все гут, то внимательно читать ман ( www.opennet.ru/docs/RUS/iptables/)и гибко настраивать под себя.
ASK вижу SYN не вижу.
"обучать" свой фильтр не пробовали?
Atom
14.04.2010
Что за обучение?
да в лог отлупы складывать. иногда помогает.
niktr
14.04.2010
iptables вроде не умеет динамически фильтровать пакеты. ИМХО направление поиска про ack и syn указано верно, но обучение не причём - нечего обучать, статика.
правка: под динамической фильтрацией имеется ввиду stateful packet inspection
Collins
14.04.2010
Скорость в сети на прием и передачу через TCP/IP или UDP измеряется с помощью инструментов типа iperf. Можно так же использовать jperf, представляющий из себя java приложение с графическим интерфейсом, использующее для измерения скорости тот же самый iperf.
Ты обладаешь потрясающим качеством отвечать не на заданный вопрос, а строить какие-то абстрактные рассуждения. Разве топик-стартер спрашивал, как ему измерить производительность?
Atom писал(а)
куда копать? где образовывается затык?

Затык, очевидно, на шлюзе. Почему - надо смотреть. Iptables вносит существенную задержку. Трафик через шлюз большой идет? Железо мощное?
Atom
14.04.2010
Железо отстой, траффик минимальный. Загрузка интерфейсов до 10%.
pl17
14.04.2010
значит ставить генту
говно-железо - это из ее области
А проца?
Atom
15.04.2010
проц вообще не грузится - там минимум идет.
Такое ощущение, что при обработке цепочек iptables вносятся задержки.
Буду копать в эту сторону
Atom
15.04.2010
а squid может влиять на скорость клиентов, которые сидят за nat? Может он как-то вмешиваться в этот процесс?
Может :)
Atom
16.04.2010
Каким образом?

Просто меня терзают смутные сомнения такого плана: squid он регулирует полосу пропускания для групп и пользователей. При скачивании через nat помимо squid а поведение очень похожее - скорость скачет, но в среднем остается примерно одинаковой.

Не мог он куда-то внедрить свои механизмы регулировки полосы пропускания так, что и через NAT скорость тоже регулируется?
nnstepan
18.04.2010
У сквида есть такое понятие как делэй пулы если я не ошибаюсь, поэтому он может резать скорость веб и других запросов проходящих через него.
А через нат скорость регулируется с помощью iptables + iproute2 (ip) + tc
Atom
18.04.2010
Пробовал экспериментировать с этими пулами-на нат не влияют. Пробовал даже сквид тормозить-проблема не в нем.
creamel
20.04.2010
коротко - нет. Если delay pool не прописывали то сквид на скорость не влияет.
Atom
20.04.2010
Пулы задержки отключал-не влияет. Но и сам сквид очень медленно раздает нет.
creamel
21.04.2010
а ты вот так сквид запустить
squid -D -X -d 5
это режим отладки и все инфа будет а экран выводиться
Atom
15.04.2010
Такое складывается ощущение, что работает какой-то механизм ограничения сетевой нагрузки или балансировки...
Скорее всего, тачка просто не справляется по производительности.
Atom
18.04.2010
При прогоне данных загрузка проца менее 1 процента. Почему не справляется-то?
Кстати, правильными фильтрами удалось поднять скорость в 10 раз. Но все равно на шлюзе скорость снижается в 10 раз. Раньше уменьшалась в 100.
Atom писал(а)
При прогоне данных загрузка проца менее 1 процента. Почему не справляется-то?

Ну из-за фильтров в том числе может быть. Чем больше правил в цепочке, тем дольше пакет обрабатывается. Интерфейс сетевой может тормозить, драйвер кривой и т.д.
Atom
19.04.2010
Есть предположение на уровне догадок, что цепочки тормозятся какими-то медленными дисковыми операциями (например логами). Но вроде ничего там не логируется...
movie
18.04.2010
А если на шлюзе поднять ftp сервер и с него качать - скорость нормальная?
У squid a есть логи - можно сразу понять проксируется или нет - tail -f access.log
Atom
20.04.2010
посмотрел внимательно на загрузку проца. Больше всех его грузит mysql. Возможно из-за этого все тормоза?

Кстати, в утилите top в описании процесса TIME какой смысл имеет? У mysql это время стоит в 1:24, у squid 0:17 - у остальных около 0...
movie
20.04.2010
- непрерывное время использование процессом cpu

TIME WCPU CPU COMMAND
78.0H 94.43% 94.43% squid
Atom
20.04.2010
вот, что у меня:
movie писал(а)
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
5901 squid 15 0 17604 10M 3520 S 0,3 4,3 0:34 squid
2827 mysql 26 10 64900 24M 6368 S N 0,1 9,6 1:36 mysqld
10629 root 17 0 2092 1172 1840 R 0,1 0,4 0:00 top
1 root 16 0 1328 472 1180 S 0,0 0,1 0:01 init

почему загрузка процессора от squid и mysqld такая маленькая?
можно ли в моем случае утверждать, что машина справляется со своими обязанностями?

CPU states: 0,3% user, 0,3% system, 0,0% nice, 0,0% iowait, 99,2% idle
creamel
21.04.2010
более чем
Atom
21.04.2010
вот это и настораживает...
Такое ощущение, что где-то какие-то тормоза засели в систему и не дают процу работать на полную мощность....
creamel
21.04.2010
не :) не придумывайте. Не в процессоре дело точно. Запусти сквид с подробным выводом
Atom
21.04.2010
с опцией -d что ли?
creamel
21.04.2010
Да, просто явные ошибки он сразу выведет, а еще понблюдать что происходит когда начинешь какой нить файл выкачивать.
creamel
20.04.2010
а сделай вывод ip -s link ?
Atom
21.04.2010
вот:
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
20353910 141100 0 0 0 0
TX: bytes packets errors dropped carrier collsns
20353910 141100 0 0 0 0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:60:08:9a:c3:07 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
53314410 369805 90 0 0 0
TX: bytes packets errors dropped carrier collsns
289231545 310254 0 0 0 0
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:60:08:9d:47:2a brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
245536066 458062 945 0 0 0
TX: bytes packets errors dropped carrier collsns
42610615 236256 0 0 0 0
creamel
21.04.2010
Ну пока явно ошибки на портах сетевухи...
Atom
21.04.2010
creamel писал(а)
Ну пока явно ошибки на портах сетевухи...

но это не мешает шлюзу самому качать инфу с отличной скоростью. Дело не в ошибках.
creamel
21.04.2010
Да их вообще не портах быть не должно. У тебя от шлюза до локальных машин скорость нормлаьно ? т.е. не через nat или proxy а просто данные с шлюза в локалку нормально передаются ?
Atom
21.04.2010
да с нее кроме нета ничего не раздается...
*задумался*
может действительно дело в кабеле или сетевухе.

Глянул на соседний комп, который к этому же свитчу подключен, действительно - у него ошибок 0.....

Пойду что ли патчкорд поменяю....
Плюсуюсь к товарищу по поводу ошибок.
Небольшой факт: увеличение числа "битых" фреймов с 0% до 1% ведет к падению полезной проп. спосбоности ВДВОЕ.
Atom
21.04.2010
Проблема решена!!!

Дело было в глючных сетевых. Заменил. Ошибки по нулям. Скорость через нат-3.6М/с, через сквид около 2 М/с (было 80 К/с).
Спасибо creamel за подсказку!!!
Warwar
22.04.2010
Atom писал(а)
на шлюзе для компа в локалке дается форвардингом портов:
-A FORWARD -s 192.168.0.2 -o eth1 -j ACCEPT

в корне неверное утверждение. это НЕ форвард портов :о)
по теме - не хватает данных.
пардон, уже решили... но все равно смешно :о)
Новая тема
Вы не можете создавать новые темы.
Т.к. вы неавторизованы на сайте. Пожалуйста назовите себя или зарегистрируйтесь.
Список тем
Последние темы форумов
Форум Тема (Автор) Последний ответ Ответов
Материнские платы на запчасти и не только

Материнские платы на запчасти и не только Материнские платы и другие комплектующие Отправка в регионы после оплаты. Транспортной...
Цена: 3 000 руб.

Сетевой фильтр APC Surge Arrest

Сетевой фильтр APC Surge Arrest для радиолюбителя.и не только Отправка в регионы после оплаты. ЦЕНА 3000 руб. В рабочем состоянии....
Цена: 3 000 руб.

Принтер лазерный HEWLETT PACKARD HP-6L

Принтер лазерный HEWLETT PACKARD HP-6L Отправка в регионы после оплаты. 3штуки БУ. Внешний вид из магазина простояли на складе...
Цена: 4 500 руб.

Оперативная память Corsair XMS3 CMX8GX3M2A1600C9

Оперативная память Corsair XMS3 CMX8GX3M2A1600C9 Отправка в регионы после оплаты. Продаются сразу обе. Цена за обе 2000 руб....
Цена: 1 000 руб.