SQL Server 2008 Web 的内存

SQL Server 2008 Web 的内存

我打算将我的网站的共享主机升级为 VPS,主要是因为我的数据库太大了,超过 200mb。我托管的 CrystalTech 上的基本 VPS 计划有 512mb 内存,磁盘空间应该不是问题。如果我在这里安装 SQL Server 2008 Web Edition(我有许可证),考虑到可用的内存量,你认为这会大大降低服务器的速度吗?有人经历过类似的设置吗?

答案1

512 MB 的 RAM 已经不多了。如果您要在服务器上运行 SQL Server,我建议将其升级到至少 2 GB。SQL Server 的一般规则是 RAM 越多越好(只要 SQL Server 可以使用那么多 RAM)。

SQL Server 会很快占用机器上所有可用的内存,只给 Web 服务器和操作系统留下一点或几乎一点空间。为了提高性能,SQL Server 会将尽可能多的信息缓存在内存中,这样它就必须尽可能少地访问磁盘(无论您使用哪种数据库设计)。由于可用内存如此之少(如果可用于缓冲区缓存,您可能最终只有 100 MB 的 RAM),您将无法在 RAM 中存储太多信息,并且您将一直访问磁盘来查找数据。

答案2

答案是 ...这取决于。

SQL Server 性能与磁盘速度和内存直接相关。如果您使用 SQL Server 作为键->值数据库,且没有复杂的连接,那么 512mb 目前可能就足够了(这是微软的最低建议但是)。你不可能猜测你的数据库会被使用到多大程度,你的应用程序做什么,有多少用户等等。当你尝试扩展时,内存几乎肯定会成为一个薄弱环节。

确保你有足够的交换空间,并监控内存使用情况。良好的监控将为你提供良好的指标,让你知道需要如何扩展系统,以及瓶颈究竟在哪里。

答案3

最好的办法是尝试所有默认设置并观察结果。

显然我们不建议这样做,您应该意识到可能遇到的问题和风险,但这是可能的。将 SQL Server 挤进这么多 RAM 并不是一件有趣的事情,而且会影响性​​能。

您可以调整以下设置来减少 SQL 服务器的内存占用:

  1. 限制最大服务器内存 阻止 SQL Server 使用服务器上的所有内存作为缓冲区缓存。我会从 200 MB 开始,然后从那里开始。

  2. 减少最大工作线程数。假设您正在运行 x32,则默认值为 256。这将影响 SQL Server 可用于服务请求的线程数。

相关内容