Что лучше: стресс-тест всей системы по сравнению с профилированием и стресс-тестированием отдельных частей? [закрыто]

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

Я вспоминаю время, когда мы проводили стресс-тесты как физических серверов, так и частных облаков, и я помню, что было почти невозможно получить полную копию производственной среды и всех ее движущихся частей. Кроме того, даже с такими инструментами стресс-тестирования, как sysbench, Jmeter и ab, вы никогда не сможете точно смоделировать трафик, как производство.

Обычно мы отслеживаем и профилируем производство в максимально возможной степени, выявляем проблему, а затем пытаемся исправить эту конкретную проблему, моделируя ее в среде стресс-тестирования.

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

Учитывая, что проект по воссозданию производственной среды и стресс-теста требует значительных затрат времени и ресурсов, это лучший способ найти узкие места в системе и измерить пропускную способность, или «старый» способ лучше?

1
задан 12 August 2017 в 00:19
1 ответ

Всегда лучше нагружать всю систему и использовать производственную среду (или даже производственную среду).

Прежде всего, ознакомьтесь с Может ли пропорционально уменьшенная среда тестирования обнаружить проблемы с производительностью? Вопрос и ответы на него.

Базовая инфраструктура приложения состоит из множества различных компонентов, таких как кеши, веб-серверы, серверы приложений и диски (ввод-вывод). Пропускная способность и сети CDN также играют роль в его функции, и поэтому их необходимо учитывать при масштабировании. Каждый компонент ведет себя в приложении по-разному в зависимости от того, как он был настроен и масштабирован. Однако многоуровневая структура затрудняет расчет того, как каждый из них должен быть протестирован и масштабирован.

Поэтому, если возможно, всегда проводите тестирование системы в реальных условиях. Если это невозможно, вы все равно можете запускать нагрузочные тесты для уменьшенной среды , однако не ожидайте, что вы сможете точно экстраполировать результаты, например, эта машина имеет 10 ГБ ОЗУ и может Чтобы выжить в 1000 запросов в секунду, у этой машины будет 20 ГБ ОЗУ, поэтому будет 2000 запросов в секунду - так работать не будет.

1
ответ дан 3 December 2019 в 23:27

Теги

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