Большое число активных клиентов - перегрузка
да ну... вот тебе не по памяти: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
3 100Мб сетевухи текущая загрузка сети
95Мбит
95Мбит
8Мбит
с шейпером, файерволом ипкадом
-
- Site Admin
- Сообщения: 5749
- Зарегистрирован: Пт янв 28, 2005 3:11 pm
- Контактная информация:
Уже больше чем полгода работаетchtito2 писал(а):eddy_mut, вы еще подождите две-три недели, пусть юзеры накачаются, вот когда у вас traffi2sql (вернее MySQL от него) начнет тормозить по роста архива их посещений в БД, тогда вспомните о моем патче
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 не используется.
~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, NiTr0: у вас Linux! Я (и OP тоже) рассматривал FreeBSD.

ну, а у меня не тормозит... а хрен его знает почемуРаз у eddy_mut не тормозит, значит у него таблица периодически подчищается, или он использует DETAIL_ONLY, или вобще traffic2sql не используется.


Это разные оси и причины могут быть разные: от неявного использования поллинга, до незасчитывания прерываний в %hi по какой-то причине (маловероятней). А черт, пусть гугл скажет:ran писал(а):а что, аппаратные прерывания (на которые я обратил внимание по топу топикстартера) в бзде обрабатываются по-другому?ran, NiTr0: у вас Linux! Я (и OP тоже) рассматривал FreeBSD.![]()
http://www.xml.com/ldd/chapter/book/ch09.htmlPerformance 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.
Так что, вас даже судя по всему не спрашивают хотите вы поллинг или нет

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

запрет прерываний девайса;
while(есть сигнал готовности девайса)
{
чтение с девайса;
}
разрешение прерываний девайса;
в противном случае - совершенно неоправданные издержки на обработку лишних прерываний, а значит переключений контекста и т. п. - тобишь кривизна драйвера

Последний раз редактировалось ran Сб окт 04, 2008 1:45 pm, всего редактировалось 1 раз.