Большое число активных клиентов - перегрузка

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

По памяти 7-15 mbit/s грузили машинку с Athlon-64 3000+ на 30-50%. После перехода на polling(4) % прерываний стал близок к нулю.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

chtito2 писал(а):По памяти 7-15 mbit/s грузили машинку с Athlon-64 3000+ на 30-50%. После перехода на polling(4) % прерываний стал близок к нулю.
да ну... вот тебе не по памяти:

Код: Выделить всё

Tasks: 195 total,   2 running, 193 sleeping,   0 stopped,   0 zombie
Cpu(s): 14.2%us,  8.5%sy,  0.0%ni, 68.5%id,  0.0%wa,  2.2%hi,  6.6%si,  0.0%st
с сервака/рутера на Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz

3 100Мб сетевухи текущая загрузка сети

95Мбит
95Мбит
8Мбит

с шейпером, файерволом ипкадом

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

top у вас линуксовый. Неохота сравнивать яблоки с апельсинами :)

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

да вот тебе все интеррапты
2.2%hi, 6.6%si
а это идл 68.5%id - скучает то бишь система :D

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

chtito2 писал(а):eddy_mut, вы еще подождите две-три недели, пусть юзеры накачаются, вот когда у вас traffi2sql (вернее MySQL от него) начнет тормозить по роста архива их посещений в БД, тогда вспомните о моем патче :)
Уже больше чем полгода работает

NiTr0
Сообщения: 767
Зарегистрирован: Пт фев 08, 2008 4:46 pm

Сообщение NiTr0 »

Роутер на базе p3-600, на нем висит довольно много клиентов (микрорайон), линукс на ядре 2.4.34 (дистр LEAF), top:
CPU: 0.0% usr 36.3% sys 0.0% nice 63.6% idle 0.0% io 0.0% irq 0.0% softirq
В основном грузят машину фильтры iptables.

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

ran, NiTr0: у вас Linux! Я (и OP тоже) рассматривал FreeBSD.

~AsmodeuS~: traffic2sql использует (через traffic_user_get()) запрос SELECT traffic_class, sum(traffic_in) / $CONF->{MB_SIZE}, sum(traffic_out) / $CONF->{MB_SIZE} from ipn_log
WHERE uid='$uid'
and ...
который и тормозит чем больше данных в ipn_log, и никакие индексы такому способу, читающему весь диск, не помогут. Раз у eddy_mut не тормозит, значит у него таблица периодически подчищается, или он использует DETAIL_ONLY, или вобще traffic2sql не используется.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

NiTr0 писал(а):В основном грузят машину фильтры iptables.
во-во... и шейпер ещё... это одна из причин почему я не юзаю "чистый" ипн - вместо сотен динамических правил вида

-A FORWARD -s a.b.c.d ... -j ACCEPT

стоит ОДНО СТАТИЧЕСКОЕ

-A FORWARD -i ppp+ ... -j ACCEPT :wink:

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

ran, NiTr0: у вас Linux! Я (и OP тоже) рассматривал FreeBSD.
а что, аппаратные прерывания (на которые я обратил внимание по топу топикстартера) в бзде обрабатываются по-другому? :D
Раз у eddy_mut не тормозит, значит у него таблица периодически подчищается, или он использует DETAIL_ONLY, или вобще traffic2sql не используется.
ну, а у меня не тормозит... а хрен его знает почему ;) хотя вся эта мудота (ипкад - флоу-каптуре-траф2скл-мускл) дёргается каждую минуту, а база мускла ваще на разделе с фс ext3 смонтированном в режиме journal (это када журналируются не только метаданные фс но и сами данные наскоко помню это единственная фс с такой возможностью). Зато если при ядерном взрыве уцелеет винт :D можно быть уверенным - myisamchk запускать не понадобится - всё будет ок. Когда тестил - по всякому издевался например рубил питалово на полном скаку в момент оптимизации базы - хоть бы хны...

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

ran писал(а):
ran, NiTr0: у вас Linux! Я (и OP тоже) рассматривал FreeBSD.
а что, аппаратные прерывания (на которые я обратил внимание по топу топикстартера) в бзде обрабатываются по-другому? :D
Это разные оси и причины могут быть разные: от неявного использования поллинга, до незасчитывания прерываний в %hi по какой-то причине (маловероятней). А черт, пусть гугл скажет:
Performance would be unbearable if the receiving interface had to handle two interrupts for every byte received. The driver therefore disables the interrupt during the reception of the packet; instead, a poll-and-delay loop is used to bring in the data.
http://www.xml.com/ldd/chapter/book/ch09.html

Так что, вас даже судя по всему не спрашивают хотите вы поллинг или нет :D Драйвер сам обо всем позаботится.
ran писал(а):ну, а у меня не тормозит... а хрен его знает почему
Действительно, удивительно.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Драйвер сам обо всем позаботится.
ООООООО! яж и грил
ran писал(а):либо с кривыми дровами чего-то
:lol: потому как сколько обработчиков прерываний я за свою грешную жисть не переписал везде (за очень редким исключением) делал где-то так:

запрет прерываний девайса;
while(есть сигнал готовности девайса)
{
чтение с девайса;
}
разрешение прерываний девайса;

в противном случае - совершенно неоправданные издержки на обработку лишних прерываний, а значит переключений контекста и т. п. - тобишь кривизна драйвера :D
Последний раз редактировалось ran Сб окт 04, 2008 1:45 pm, всего редактировалось 1 раз.

chtito2
Сообщения: 479
Зарегистрирован: Чт апр 17, 2008 5:26 pm

Сообщение chtito2 »

:D

p.s.: имеющий уши да услышит ;)

NiTr0
Сообщения: 767
Зарегистрирован: Пт фев 08, 2008 4:46 pm

Сообщение NiTr0 »

ran писал(а):во-во... и шейпер ещё...
У нас роутеры и насы разнесены... Пока что... Но доступ к локалке у должников блокируется на роутерах.

Ответить