Диагностирование патологического поведения части кластерного программного обеспечения

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

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

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

(На всякий случай кто-то просто знает решение моей конкретной проблемы, я говорю о R2 Сервера HPC MS 2008 года "Брокер WCF", работая на Windows Server 2008 R2 по Hyper-V),

1
задан jkff 10 August 2010 в 06:27
поделиться

3 ответа

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

1
ответ дан 2 September 2019 в 22:18
поделиться

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

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

0
ответ дан 2 September 2019 в 22:18
поделиться

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

1
ответ дан 2 September 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: