Может ли DTrace помочь найти причину сброса tcp-соединения на Solaris 10 x86?

Я запускаю тесты производительности для веб-приложения, размещенного на кластере Glassfish.

Каждый экземпляр кластера размещается в отдельной зоне Solaris 10, а трафик http балансируется нагрузкой между экземплярами с помощью балансировщика нагрузки BigIp F5. Проблема, с которой я сталкиваюсь, заключается в том, что запросы SOAP периодически прерываются при перезагрузке TCP-соединения.

Теперь мне нужно выяснить, почему закрыты соединения, и если есть что-то, что я могу сделать, чтобы предотвратить это. Я использовал tcpdump для мониторинга трафика между генератором нагрузки и балансировщиком нагрузки, и я вижу, что соединения tcp установлены и что запрос SOAP отправляется, а затем loadbalancer отправляет ACK, и через 4-5 секунд я получаю Флаги RST и ACK в кадре tcp от балансировщика нагрузки.

Однако я не могу отслеживать трафик между балансировщиком нагрузки и экземплярами кластера, поэтому не вижу, что происходит в кластере. Это потому, что tcpdump не может прослушивать виртуальные сетевые интерфейсы в зонах, по крайней мере, я не нашел, как это сделать.

Поэтому я надеюсь, что есть способ использовать DTrace для мониторинга того, что происходит в экземплярах кластера, когда соединения сбрасываются, я предполагаю, что какой-то ресурс исчерпан, например очередь соединений tcp (? Не уверен насчет терминологии?)

Есть ли у вас рабочий пример сценария dtrace, который показывает, почему сбрасываются соединения?

Я посмотрел https://blogs.oracle.com/hkchu/entry/diagnose_networking_problems_on_solaris но сценарий Dtrace, представленный на этой странице, не компилируется на моем сервере Solaris.

0 ответов

Другие вопросы по тегам