Стресс-тестирование распределенной системы на основе архитектуры SOA - PullRequest
1 голос
/ 05 июня 2010

В настоящее время у нас есть система с 20 сервисами SOA и единой главной базой данных mysql и 2 подчиненными узлами. В настоящее время у нас есть 10 ГБ данных в базе данных. У нас есть требование, согласно которому данные в таблице будут значительно увеличены. Мы хотим провести стресс-тестирование системы, прежде чем приступить к внедрению. Какой тип стресс-тестирования имеет смысл для такого рода распределенной среды?

Кроме того, при проведении стресс-тестирования я могу следить за задержкой и показателями, такими как задержка для обслуживания 90% запросов на услуги. Есть ли другие хорошие показатели для услуг? Какие метрики я должен искать для базы данных mysql?

Спасибо

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Идея в этом сценарии по-прежнему состоит в том, чтобы попытаться смоделировать запросы страниц и сообщения, поскольку они используются в производстве. Разница заключается в том, чтобы запустить нагрузочное тестирование только с копией 10 ГБ текущих производственных данных. Затем смоделируйте дополнительные данные и выполните тот же нагрузочный тест. Вы сможете сравнить ответы на страницах, которые используют сервисы, или напрямую проверить сервисные звонки.

Затем вы можете увидеть, как дополнительные данные будут влиять на ваши сервисные вызовы.

Наиболее важными показателями являются время ответа на вызовы, которые вы ожидаете (или измеряли), которые будут вызываться наиболее часто.

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

1 голос
/ 05 июня 2010

Вот несколько идей:

  1. Настройте тестовую базу данных и загрузите дополнительные данные в таблицу, где вы ожидаете увеличения; используйте кратное увеличение, которое вы ожидаете, например, если вы ожидаете увеличения таблицы на 2000 строк, добавьте 4000 строк в вашу тестовую таблицу.
  2. Включить медленное ведение журнала запросов в MySQL.
  3. Убедитесь, что уровни ведения журналов на ваших серверах SOA достаточно подробны, чтобы отлаживать ошибки из вашего стресс-теста.
  4. Используйте инструмент нагрузочного тестирования, такой как JMeter , чтобы быстро выполнить несколько запросов к каждой службе. Используйте кратное количество запросов в секунду, которые вы ожидаете; Я обычно увеличиваю количество ожидаемых запросов в 2, 4, 8 и т. Д. Раза *
  5. Повторите вышеуказанный тест для каждой индивидуальной услуги по очереди.
  6. Повторите вышеуказанный тест с «типичным» набором услуг - например, если вы ожидаете вдвое больше запросов на обслуживание 1, чем на обслуживание 2, отразите это в тесте.
  7. Если вы также хотите проверить надежность, попробуйте повторить тесты JMeter, когда один или оба подчиненных узла MySQL отключены.

JMeter должен предоставить вам всю необходимую информацию о задержке. Еще одна полезная форма данных в реальном мире, которую мне нравится использовать в JMeter - это время запроса 90%, то есть значение времени ответа, которое больше или равно 90% ответов теста.

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