Я запускаю веб-сайт небольшого экземпляра EC2. Память экземпляра исчерпана, в основном из-за процесса SQL-сервера. Я думаю о том, чтобы перейти на средний экземпляр или остаться с небольшим экземпляром, но перенести БД на RDS (с новым экземпляром SQL-сервера).
По цене оба варианта более-менее одинаковы. С точки зрения масштабируемости, использование RDS кажется лучшим выбором, поскольку это позволит мне добавить больше серверов на балансировщике нагрузки и подавать их все с одного сервера RDS DB.
С другой стороны, связь между машинами БД и IIS может стать проблемой, а сеанс, кеш, аутентификация станут более сложными (общий ключ машины и т.п.).
Какую информацию и данные мне следует учитывать при принятии этого решения?
SQL Server изначально использует всю доступную память. Лучше спросить, для чего используется эта память? Вы можете настроить максимальный объем памяти с помощью процедуры sp_configure:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO sp_configure 'max server memory', 1024; --Set to 1GB
GO RECONFIGURE;
GO
Затем вам нужно будет перезапустить процесс SQL Server.
Вы видите значительное количество операций ввода-вывода, ожидающих запросов? Используется ли ваша память для кэширования планов запросов для специальных запросов по сравнению с сохраненными процессами? У Гленна Берри есть несколько отличных базовых запросов по настройке, доступных по адресу: http://sqlserverperformance.wordpress.com/2008/01/21/five-dmv-queries-that-will-make-you-a-superhero/
Что касается масштабирования на AWS, больший объем памяти означает более высокий коэффициент попадания в буферный кеш, но использование RDS просто абстрагируется от обслуживания журнала. Вы по-прежнему увидите использование памяти, и вам нужно будет выбрать размер экземпляра.