спорадическое поведение машин в стрессе - PullRequest
0 голосов
/ 22 февраля 2010

мы делаем несколько тестов на стресс Java (включая сетевой ввод-вывод).Изначально все в порядке, и система реагирует очень быстро (средняя задержка в тесте 2 мс).Но спустя несколько часов, когда я повторяю тот же тест, я вижу, что производительность падает (20 - 60 мс).Это те же самые файлы Jar, та же JVM, и та же локальная сеть, в которой стресс усиливается.Я не понимаю причину такого поведения.

LAN равен 1GBPS, и из-за требований к стрессу я уверен, что мы не используем все это.

Итак, мои QN:

  1. Может ли это быть из-за некоторых переключателей в ланах?
  2. Не замедляется ли машина через некоторое время (машины перезагружаются ... скажем, примерно на 6 месяцев назад, прежде чем стресс может начаться;, XEON 64bit Quad core)
  3. Каков общий способ устранения таких проблем?

Любая помощь, пожалуйста?

- ravi

Ответы [ 2 ]

0 голосов
/ 22 февраля 2010

Общий способ - «измерить все». Это, в частности, может означать:

  1. Убедитесь, что время на всех серверах одинаково (используйте ntp или что-то подобное);
  2. Измерьте, сколько времени потребовалось для генерации запроса (что, если в генераторе запросов есть ошибка?);
  3. Измерьте, когда запрос покинул клиентские машины, или, по крайней мере, сколько времени потребовалось, чтобы выполнить ввод / вывод. Иногда достаточно знать среднее время, необходимое для многих запросов.
  4. Измерьте, когда поступил запрос.
  5. Измерьте, сколько времени понадобилось для генерации ответа.
  6. Измерьте, сколько времени понадобилось, чтобы отправить ответ.

Вероятно, вы можете начать с 5-го элемента, поскольку это (вы верите) ваша критическая цепь. Но лучше всего регистрировать столько, сколько вы можете - поскольку согласно тому, что вы сказали сами, для получения разных результатов требуется дней .

Если вы не хотите изменять свой код, найдите случаи, когда вы можете прослушивать данные без вмешательства (например, определить фильтр сервлетов в вашем файле web.xml).

0 голосов
/ 22 февраля 2010

Несколько вопросов ...

Какая часть среды находится под вашим контролем, и вы принимаете какие-либо меры для обеспечения ее согласованности для каждого прогона? то есть вы разделяете сеть с другими системами, машина, которую вы используете, используется исключительно для стресс-тестирования?

Я бы посмотрел на это так, чтобы начать собирать подробности о том, что делают ваша машина и код. Это означает, что используйте perfmon (windows) sar (unix), чтобы узнать, что делают ОС и оборудование, и подключите профилировщик, чтобы убедиться, что ваш код делает то же самое, и помогите определить, где узкое место возникает с точки зрения кода .

Ничего страшного, но я надеюсь, что это поможет вам начать.

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