У меня Windows 2008 R2 VPS с 1 ГБ оперативной памяти. Я использую VPS для запуска SQL Server 2008 Express и IIS 7.5. Я заметил, что SQL Server, как правило, использует столько памяти, сколько может, в ущерб другим приложениям (и это имеет смысл, если сервер предназначен для работы с SQL Server). Стоит ли устанавливать лимит? Если да, то какой будет разумный уровень?
Да, SQL Server - по замыслу и по умолчанию - использует столько памяти, сколько может получить. И это действительно хорошо - если у вас есть сервер базы данных, вы хотите, чтобы он работал как можно быстрее.
Конечно, если вам нужно запускать другие приложения в той же среде, это становится немного непросто ... это всегда компромисс: чем больше вы ограничиваете объем памяти SQL Server, тем сложнее становится сервер базы данных. его работа. У меня нет точных фактов и цифр, которые я мог бы представить, но 1 ГБ ОЗУ на самом деле не кажется таким уж большим для SQL Server. Еще большее ограничение определенно ухудшит производительность - планы запросов не смогут долго храниться в кеше, страницы данных придется отбрасывать чаще и, таким образом, повторно загружать с диска.
Опять же: не существует точных цифр или волшебной формулы для определения того, сколько памяти действительно нужно SQL Server, чтобы хорошо выполнять свою работу. По сути, вам нужно измерить свою производительность - как для SQL Server, так и для всех других задействованных приложений - а затем принимать решения на основе полученных показателей производительности. Постепенно уменьшайте объем памяти для SQL Server и посмотрите, в какой момент это действительно начинает сильно мешать - это может быть нормально с 700M и начать отстой на 450M или что-то еще - на самом деле нет детерминированного способа узнать, что. Настраивать, наблюдать, измерять, а затем снова настраивать - это все, что вы можете сделать!
Больше барана было бы в моем списке покупок! Помните, что SQL server Express будет использовать только 1 ГБ оперативной памяти для своего буферного пула (общий объем может быть больше, но только 1 ГБ для пула). Вы, конечно, можете ограничить максимальный объем используемой памяти прямо из студии управления, щелкнув правой кнопкой мыши на сервере, выбрав свойства, затем перейдя на страницу памяти, параметр называется «Максимальный объем памяти сервера (МБ)».
В идеале я бы сказал, что нужно больше ОЗУ и отдать SQL Server все, кроме 1 ГБ.
Если не считать этого, я бы начал с того, что отдал половину SQL Server и посмотрел, что причиняет больше вреда: БД или другие приложения.
По моему опыту, он сразу будет использовать 250 МБ, а после этого все для кеширования, но некоторая степень кэширования необходима для адекватной производительности.