Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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