2015-02-19 3 views
1

Я управляю базой данных среднего размера. Недавно мы провели массовое обновление системы и переключились на среду виртуальной машины. После развертывания у нас возникают проблемы с производительностью. По-видимому, SQL Server на обновленной системе работает медленнее старой конфигурации.Плохая производительность SQL Server на виртуальной машине после обновления системы

Вот конфигурации:

  • Старый сервер: SQL Server 2008, 10gb Ram, Intel Xeon E5420 x2 (Физическая машина) работает на Windows Server 2008

  • Новый сервер: SQL Server 2014 , 64gb Ram, Intel E5 2660 x4 (виртуальная машина) работает на Windows Server 2012

Очень простой IO сравнение производительности следует как:

новый сервер:

new server

старый сервер:

old server

Даже самые основные операции:

select * from table 

из наиболее часто используемых таблиц работает больше количество времени для получения результата. Также хранимые процедуры выполняются медленнее.

Пример:

  • новый сервер: 1:39 минут, 3285365 строк
  • старый сервер: 1:00 минут, 3339738 ряды

Я понятия не имею, что может вызвать эту проблему , Любая помощь будет оценена.

Edit: Оба сервера имеет такую ​​же конфигурацию, SQL TempDB и datadb отделяется

+0

Может быть тысячи вещей, но только вы можете выяснить узкое место здесь. В любом случае, этот вопрос на самом деле не принадлежит Stackoverflow, вероятно, получите лучшие ответы на superuser.com. – DavidG

+0

Как говорили другие, это может быть миллион вещей: конфигурации дисков одинаковы (tempdb на отдельном диске и т. Д.) Являются похожими настройками SQL Server, обновлены статистические данные и дефрагментированы индексы, существует ли фрагментация на уровне файла os в mdb файлы. Если старая система все еще запущена и работает, вы можете сравнить планы запросов для одной и той же хранимой процедуры, чтобы увидеть, есть ли разница. Итак, запустите профайлер и монитор активности в реальном времени, и найдите узкие места и другие вещи, которые могут ухудшить производительность. – Jeremy

+0

На самом деле я сам не администратор сервера, а специалист по программному обеспечению. почему я управляю db - совсем другая история, но мне нужно выяснить узкое место, которое я знаю прямо сейчас: Настройки sql весьма похожи (хотя я сделал изменения из-за наличия большего количества бара), все индексы перестроены. Только то, что tempdb и datadb находятся на одном диске. Я отделяю этих ребят и обновляю свой пост. – incxbxs

ответ

2

Это, вероятно, не то, что вы хотите услышать, но виртуальные машины всегда медленнее, чем физические серверы, из-за накладных расходов, связанных с осуществлением VM. Кроме того, 2660 имеет МНОГОКЛОННЫЙ Кэш L2, чем старый процессор.

Я не уверен, что сказать вам, кроме того, чтобы убедиться, что виртуальная машина для SQL Server имеет столько же ОЗУ и ядер, сколько вы можете позаботиться, и что SQL Server настроен на их фактическое использование.

Кроме того, дисковый ввод-вывод является большим делом. Являются ли приводы и контроллеры для обеих систем одинаковыми?

VMWare имеет технический документ на эту тему, поэтому, по крайней мере, вы не одиноки. 8-)

http://www.vmware.com/files/pdf/solutions/SQL_Server_on_VMware-Best_Practices_Guide.pdf

+0

Я принимаю падение производительности из-за виртуализации, учитывая лучшую производительность чтения/записи io и гораздо больше бара, очень простая операция вроде (select *) должна выполняться за меньшее время. (также старая система с несколькими активными базами данных, новая - нет) – incxbxs

Смежные вопросы