Есть городская сетка. выход в инет через linux pptpd(ни шифрования, ни сжатия).
Стоит сервер HP 4 ядра 3,2 Xeon 533. Сетевушки Intel PRO 1000 PCIX64 NAPI
На нем крутится только pptpd сессии и шейпинг входячки(tc qdisc). Нат, локальный роутинг, биллинг, все висит на других серваках и маршрутизаторах.
Когда на нем одновременно поднято 1000-1100 коннектов, инет летает(~120-140MBit/s 10Килопакетов/с). Как только переваливает за ~1300-1400, резко качество услуги падает. Скорость либо никакая, либо наоборот шейпер пропускает много, пинги растут до бесконечности. В топе si 95-99% на том ядре, на котором сетевуха прерываниями висит(10-1000 int в сек).
Попробовали заменить новым серваком HP 8 ядер по 2.0Ггц Xeon. 1333 шина. intel pro 1000. Но он еще хуже оказался. при 800 коннектах ему уже плохо становится. Одно ядро перегружено, остальные почти бездельничают(SMP вкл.). Пробовал вообще убрать правила iptables(30 правил) - результат 0.
Зделал вывод: при увеличении таблицы маршрутизации (а там получается по 1000-1400 маршрутов - каждый коннект это маршрут) на обработку пакета уходит уже очень много времени, а прерывание сетевушки висит на одном ядре, и обработка вся на нем происходит и никакой NAPI не поможет, реже прерывание вызываем, а операции с пакетом те же. Вот и упирается кол-во стабильных коннектов в ~1200 при 3,2. а на более низкочастотном ядре еще меньше.
Поделитесь, кто сколько выжимал, на чем, и может у меня просто грабли где-то?
ЗЫ сейчас поставили параллельно оба сервака - все отл., может по такому пути шагать правильней?