Мы только что получили одобрение на покупку нового сервера базы данных. Мой менеджер обеспокоен тем, что после развертывания нового сервера некоторые пользователи могут не заметить повышения производительности. Мне было поручено придумать способ измерить улучшение. Но сначала некоторые подробности по обновлению:
Старый сервер имеет два одноядерных процессора Intel Xeon 3,40 ГГц и 4 ГБ оперативной памяти. Он работает под управлением 32-разрядной версии Windows 2000 Server Standard и SQL Server 2000.
Новый сервер будет иметь два четырехъядерных процессора Intel Xeon 2,4 ГГц и 18 ГБ оперативной памяти. Он будет работать под управлением Windows 2008 Hyper-V без операционной системы. Сначала мы будем виртуализировать Windows Server 2003 Premium (до тех пор, пока мы не сможем обновить наше программное обеспечение ERP до последней версии) и SQL Server 2000 (в бюджете пока недостаточно денег для обновления SQL Server).
Я никогда раньше не делал такого рода вещи, поэтому я решил создать SQL-запрос, который попадет в некоторые из действительно больших таблиц базы данных, так что запрос занимает минуту или две, и измерить, сколько времени потребуется для выполнения, установив две даты / временные переменные, одна перед большим запросом и одна после. Затем я бы сохранил эти два значения даты / времени в таблице и запланировал бы запуск задания на ночь, когда активность минимальна и эквивалентна каждому дню. Это должно учитывать колебания нагрузки в течение дня.
Сравнивая прошедшее время в нашей текущей ситуации и прошедшее время после обновления, это должно дать представление об экономии времени, так что мы можем сказать, что обновление привело к улучшению на x%. Мой план кажется надежным, или я свернуть не туда в Альбукерке? Есть ли что-то, что я должен измерить дополнительно?
Здесь набор видеороликов о том, как использовать perfmon и создать основу для sql server, который поможет вам отслеживать и сравнивать различные счетчики. Вы также можете протестировать свои диски на случайный и последовательный ввод-вывод, используя IOmeter. Также проверьте SQLIO для измерения производительности вашего нового хранилища io. Надеюсь, это поможет вам начать.
РЕДАКТИРОВАТЬ: я также нашел эту статью о Тестирование ввода-вывода хранилища