Нагрузочное тестирование базы данных, подключенной к сетевому устройству хранения
Мы смотрим на стресс-тестирование системы NAS для базы данных, в основном мы хотели узнать, сколько злоупотреблений она может выдержать и насколько это влияет на производительность базы данных. вот что мы планировали
- У меня есть тестовый инструмент, который я создаю и который запускает настраиваемое количество потоков, запускающих SQL-запрос (также настраиваемый, и думает о том, чтобы он мог запускать несколько запросов).
- использование утилиты SQLIOSim для имитации активности SQL Server
- Копирование очень больших объемов данных на устройство и обратно (одновременно)
Может ли кто-нибудь придумать что-нибудь еще, что мы могли бы сделать (это повторяется) для размещения нагрузки в системе.
4 ответа
Вы также захотите смоделировать состояние сети между вашей базой данных и NAS. Чем больше трафика попадает в сеть, тем ниже его реальное использование, и это серьезно повлияет на вашу производительность.
В качестве примера. Если у вас есть 50 машин в сети 1 Гбит / с, и сеть приближается к 100% -ной загрузке, коллизии пакетов и повторные попытки на уровне канала передачи данных означают, что ваша эффективная общая передача является частью потенциала сети, который был бы реализован, если бы у вас было только два коммуникатора. в сети. Что еще хуже, с увеличением числа попыток увеличивается и эффективная нагрузка. Вы получаете уродливую петлю обратной связи перед лицом пикового спроса.
Существует множество симуляторов и генераторов сетевого трафика, хотя, боюсь, я никогда не использовал ни одного из них.
Вы можете взглянуть на Pole Position, универсальный пакет для тестирования производительности базы данных. http://www.polepos.org/
В зависимости от целей, которые вы хотите достичь с помощью нагрузочного тестирования, вы также можете захотеть использовать SQLIO, а не только SQLIOSim. SQLIOSim очень хорош для стресс-тестирования и имитации нагрузки на SQL Server и будет переходить с зеленого на красный, если обнаружит какие-либо ошибки ввода-вывода. Его вывод немного загадочный, хотя KKline дает некоторое представление.
SQLIO полезен, если вы хотите выполнять одну операцию непрерывно, например, большие случайные чтения, большие последовательные записи и все что между ними. Это также даст вам несколько полезных выходных статистических данных, которые вы можете построить график и использовать для сравнения.