Диагностика патологического поведения части программного обеспечения кластера - PullRequest
1 голос
/ 10 августа 2010

Я использую своего рода балансировщик нагрузки в небольшом кластере, который способен достигать> 2000 об / мин для запросов с нулевой продолжительностью (те, которые немедленно удовлетворяются рабочими узлами).Но как только запросы перестают иметь нулевую продолжительность и начинают принимать даже 1 мс, производительность сразу падает в 10 раз.Данные, передаваемые в обоих направлениях, идентичны и имеют размер около 2 КБ.Это, безусловно, не связано с насыщением кластера или пропускной способностью сети, поскольку запросы 200rps 1 мс - это очень маленькая нагрузка, а сеть - 10 Гбит.Кроме того, загрузка ЦП составляет всего около 2-5% как для балансировщика нагрузки, так и для рабочих узлов.

Интересно, может ли это быть связано с каким-то патологическим поведением планировщика ОС или сетевого стека ОС(для очень коротких взаимодействий существует особый случай).

Как я могу диагностировать причину?Какие перфоунтеры смотреть?Какие инструменты или методологии использовать?

(На всякий случай, если кто-то просто знает ответ на мою конкретную проблему, я говорю о «WCF-брокере» MS HPC Server 2008 R2, работающем на Windows Server 2008 R2 поверхHyper-V)

Ответы [ 3 ]

1 голос
/ 16 августа 2010

Одна вещь, которую вы можете сделать, это использовать трассировку ETW, чтобы попытаться понять, что делают узлы во время выполнения вашей работы WCF. На сервере HPC я иногда запускаю xperf для сбора трассировок на всех или определенных узлах. Существует ряд инструментов, которые вы можете использовать для анализа трассировок ETW, включая сам xperf. Я не проделал серьезной работы, используя HPC SOA (WCF), но я написал простое приложение raytracer WCF, а затем использовал xperf для профилирования его на нескольких узлах.

1 голос
/ 16 августа 2010

Оказалось, что это была совершенно не связанная с сетью проблема, связанная с особенностями механизма планирования HPC Server.Я решил проблему, настроив параметр конфигурации «serviceRequestPrefetchCount» на 0 в разделе loadBalancing файла конфигурации службы WCF.

0 голосов
/ 11 августа 2010

Я предполагаю, что есть какие-то общие ресурсы с какой-то системой блокировки на месте? Блокировка узкого места? Трудно догадаться, не видя систему.

У вас есть способ профилировать работников? На что они тратят большую часть своего времени, особенно в быстрых и медленных сценариях?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...