我正在运行一个小EC2实例的网站。 实例中的内存最多,主要是由于SQL服务器进程。 我正在考虑升级到一个中等的实例或留在一个小实例,但将数据库转移到RDS(与新的SQL服务器实例)。
在价格方面,两种select都差不多。 在可伸缩性方面,使用RDS似乎是更好的select,因为它允许我在加载器上添加更多的服务器,并将它们全部从同一个RDS数据库服务器上提供。
另一方面,DB和IIS机器之间的通信可能成为一个问题,会话,caching,身份validation将变得更加复杂(共享机器密钥等)。
在做出这个决定时,我应该考虑哪些信息和数据点?
SQL Server通过devise使用所有可用的内存。 一个更好的问题将是什么内存被用于? 您可以通过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进程。
你是否看到大量的IO等待查询? 你的内存是用来caching查询计划的临时请求vs存储过程? Glenn Berry提供了一些很棒的基本调优查询: http : //sqlserverperformance.wordpress.com/2008/01/21/five-dmv-queries-that-will-make-you-a-superhero/
至于AWS上的扩展,更多的内存意味着更高的缓冲区caching命中率,但是利用RDS只是简化了日志维护。 您仍然会看到内存使用情况,必须select一个实例大小。