Я тут вчера, вооружившись большим компьютером и ядром 2.6.31, мерял производительность network namespaces с помощью netperf.
В тестировании ведь одно из главных требований -- повторяемость результатов. Если результаты зависят от времени суток, фазы луны, настроения тестера -- то это не результаты, а мусор. Ну да я бывалый тестер, посему сразу же выключил всякие там кроны, анакроны и прочее, способное привести к нежелательным вариациям в результатах тестирования.
Меряю я, значит, меряю, а получается всё время какая-то ерунда! То побыстрее, то помедленнее, то ступеньками -- каждый следующий прогон на 5 mbps хуже предыдущего. Интуитивно поставил между прогонами паузу на 2 минуты, вроде стало почти хорошо, но всё равно какие-то есть флуктуации.
И сегодня только выяснил, в чём дело. Оказывается, процессоры перегревались и включался throttling (это когда перегревшийся процессор специально пропускает такты, чтобы, значит, совсем не сгореть). Именно поэтому пауза и помогала -- собственно, процессор чуток остывал (иногда не успевал). А у нас ещё в этом месте солнце светит через окна в полный рост, поэтому жарко, несмотря на обилие кондиционеров. Ну вот я и мерял, по сути, температуру в комнате...
Пошёл к админам, взял самый большой и шумный вентилятор, который смогли найти, поставил в большой компьютер, меряю заново, теперь уже результаты стабильные.
Собственно, к чему пишу?
1. И на старуху бывает проруха, как говорил друг моего детства Коля Остен-Бакен...
2. Следите за троттлингом (dmesg | tail), а то потеряете день, как я.
3. Большинству результатов измерений, которые вы видите в разных публикациях и т.п., доверять категорически нельзя, ибо большинство измеряющих не настолько въедливы и скрупулёзны, чтобы выяснить, что мешает, как мешает, почему мешает и как померять правильно.
перфоманс тестинг ин прогресс
|