Тестування масштабованості процедури, що зберігається


14

У мене є електронна програма, яка буде закликана доставляти в інтерфейс кількість нових повідомлень для певного користувача на кожному завантаженні сторінки. У мене є кілька варіантів речей, які я тестую на рівні БД, але всі вони абстрагуються збереженим викликом proc.

Я намагаюся засунути БД, щоб побачити, якою буде точка перелому (# запитів в секунду).

У двох словах, у мене є така таблиця, як цей userId, newMsgCount з кластерним індексом на userId. SQL повинен мати можливість серверти сотні чи тисячі цих відповідей в секунду. Я думаю, що відставання - це моя програма .NET.

Як я можу зробити це хорошим тестом для досягнення результатів тестів на основі продуктивності SQL?

Чи є інструмент для цього, який я можу дати йому збережене ім'я Pro і парам для нього, щоб він моє БД?

Я хочу побачити, чи може БД повернути хв. з 250 відповідей в секунду.


1
Чудове запитання. Я би розширив це, щоб бути трохи більш загальним і запитати: Як ви завантажуєте тест своєї бази?
Нік Шамма

Відповіді:


11

SQLQueryStress - це чудовий інструмент для тестування одночасності в невеликих масштабах, але це не справді завдання навантажувального тестування. Напрочуд маловідомий набір інструментів доступний безкоштовно від Microsoft, який може впоратися з більшістю сценаріїв стрес-тестування SQL Server, утилітами RML .

Дуже короткий контур інструментів:

  • ReadTrace перетворює сліди Profiler з .trc-файлів у .rml (Replay Markup Language).
  • OStress використовується для відтворення файлів .rml та .sql на сервері.
  • ORCA (OStress Replay Control Agent) координує відтворення в розподілених екземплярах OStress.
  • Репортер надає звіти про аналіз ефективності.

У команді SQLCat є відмінна стаття про швидкий старт, яка включає зразок бази даних та навантаження, Precision Performance для Microsoft SQL Server за допомогою RML Utilities 9.0

У вас є можливість або профілювання для відтворення, або, можливо, більш підходящого у вашому сценарії, ручним накатом набору сценаріїв .sql, які ви потім відтворюєте через OStress та ORCA.

Чудові інструменти як для тестування навантаження, так і для вивчення проблем продуктивності.


6

Одним із інструментів, яким ви можете скористатися, є SQLQueryStress . Для швидкого запуску передбачте: збережену процедуру ітерації та кількість потоків. Потім починайте стрес-тестування. Будуть показані такі показники, як секунди процесора, логічні зчитування тощо ....


4

Здається, ви розробник .NET. Одним із способів було б написати невелику програму, яка використовує багатопотоковість і має лише встановлену кількість одночасних звернень до бази даних та збереженої процедури. Проведіть слід, поки це відбувається.

Напишіть код програми, щоб збільшити кількість одночасних потоків на певний інтервал, якщо ви хочете автоматично збільшити навантаження на SQL Server.

Саме так я б і пішов про це.


Чому б вам не написати цю програму, використовуючи мій проект з відкритим кодом Benchmark.NET і не використовуючи паралельний орієнтир?
Андрій Ронеа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.