Я написал приложение несколько месяцев назад и размещал его за пределами нашего офиса на рабочей станции с процессором Intel Core 2 Quad Q8200 @ 2,33 ГГц, 8 ГБ ОЗУ, Windows Server 2008 Enterprise и SQL Server 2008 Enterprise. И веб-сервер, и сервер базы данных работали на одном компьютере.
У нас был огромный приток трафика, мы переместили ClubUptime.com и получили 2 из их лучших виртуальных машин Windows. Сервер базы данных работает под управлением Windows 2008 R2 Standard и SQL Server 2008 R2 Web с оперативной памятью 8 ГБ и Intel Xeon e5620 @ 2,40 ГГц.
С момента переключения база данных, которая раньше занимала около 400 МБ ОЗУ, теперь занимает около 4-7 ГБ, и в ней не было никаких изменений (кроме пары столбцов здесь и там). Наш трафик увеличился в четыре раза, и наша БД занимает 6 ГБ на диске, почему SQL-сервер занимает 7 ГБ, если БД всего 6. И зачем ему хранить ВСЮ базу данных в памяти?
Другое дело, почему, увеличившись в 4 раза, объем памяти базы данных вырос в 12 раз?
Последний вопрос: почему ЦП сейчас выставлен на 100%, а не раньше? Дизайн простой, ОЧЕНЬ мало объединений, НИКАКИХ подзапросов. Я просто в недоумении, если это не версия SQL-сервера или тот факт, что я перешел с реального оборудования на виртуальную машину.
SQL Server будет использовать столько памяти, сколько сможет, поэтому я не потеряю слишком много сна из-за объема памяти, если не возникнут другие проблемы. Если он может, он будет хранить все это, ОЗУ всегда быстрее, чем диск, и если он не используется ни для чего другого, почему бы и нет.
Запуск SQL на виртуальной машине может быть проблематичным. Он работает нормально, но есть проблемы с производительностью при виртуализации, и, как многие люди здесь прокомментировали, это влияет на SQL в большей степени, чем на большинство других приложений. Многое также зависит от вашего экземпляра виртуальной машины - если гипервизор является хостом VMware vSphere, он будет работать лучше с эквивалентными реальными ресурсами, чем Xen, если он поддерживается Hyper-V и уровень конкуренции низкий (как в очень, очень немногих виртуальных машинах). на хосте) тогда может быть неплохо. Единственными системами, которые мне когда-либо приходилось де-виртуализировать, были SQL-серверы.
Вы не указываете, сколько виртуальных процессоров они предоставляют вам для вашей виртуальной машины, я очень сомневаюсь, что вы получаете все 8 ядер, которые Xeon 5620 может предоставить виртуальной машине. Даже если у вас это может быть неоптимально. В целом виртуальная машина с 4 виртуальными ЦП на этой платформе должна соответствовать вашей предыдущей физической платформе при условии, что Xeon 5620 примерно на 30% лучше тактовой частоты, чем Core 2 Quad, с которого вы пришли, но действительно ли это зависит от базового гипервизора, настройка хост-системы и уровень конкуренции со стороны других виртуальных машин, размещенных на том же гипервизоре.
Обычно вы не можете доверять счетчикам производительности в виртуальной машине или, по крайней мере, не можете доверять им, чтобы они рассказывали вам все. Вам действительно нужно получить представление о производительности с точки зрения гипервизора, чтобы определить, действительно ли ваша виртуальная машина использует 100% мощности реального ЦП в системе.