【问题标题】:Running SQL Server on the Web Server在 Web 服务器上运行 SQL Server
【发布时间】:2010-09-11 22:16:56
【问题描述】:

在您的网络服务器上运行 SQL Server 是好、坏还是无关紧要?

我使用的是 Server 2008 和 SQL Server 2005,但我认为这对这个问题并不重要。

【问题讨论】:

    标签: sql-server optimization webserver


    【解决方案1】:

    对于小型网站,这并没有什么不同。 但是,随着负载的增长,它的扩展性真的很差,而且比您想象的要快:

    • 数据库服务器是在它们“拥有”服务器的前提下构建的。他们以内存换取速度,并且很容易将所有可用的 RAM 用于内部缓存。
    • 一旦资源开始变得稀缺,分析就变得非常困难—— 很明显 IIS 和 SQL 都在受苦,不太清楚瓶颈在哪里。 IIS 需要 CPU,SQL Server 需要 RAM 或 CPU 等
    • 无论您在代码中放置了多少层,它们都在同一个 CPU 上运行,因此单层应用程序在这种情况下会运行得更好——开销更少——但它不会扩展。
    • 安全性真的很差,通常你将 SQL 隔离在防火墙后面!

    如果你能负担得起,花几块钱买第二台服务器可能会更好,也许使用 PostgreSQL。由于许可成本,一台 IIS 服务器和一台 PostgreSQL 的成本与 IIS + SQL Server 的成本差不多……

    【讨论】:

    • 只有一条评论 - SQL 2005 可以配置为限制消耗的 RAM 量(有关步骤,请参阅我的答案)。它避开了第一颗子弹的大部分内容。否则我同意。
    【解决方案2】:

    较大的商店可能不会认为这是最佳做法...但是,如果您不处理每秒数百个请求,则可以将它们放在一个盒子上。

    事实上,对于小型应用程序,您会在后端看到更好的性能,因为数据不必通过网络传输。一切都与规模有关。

    请记住,数据库服务器会消耗内存。以下是硬敲学校的一个重要教训:如果您决定在与您的 Web 服务器相同的机器上运行 SQL Server 2005(这就是您在问题中提到的设置),请确保您进入 Sql Server Management Studio 并执行此操作

    1. 右键单击服务器实例并单击属性
    2. 从左侧列表中选择“内存”
    3. 将“最大服务器内存”更改为您的服务器可以承受的值。

    如果您不这样做,SQL Server 最终将占用您服务器的所有 RAM 并无限期地挂起。这将导致您的服务器或多或少地溅射和死亡。如果您没有意识到这一点,那么排除故障可能非常令人沮丧

    我已经这样做了好几次了。如果您拥有大型公司的基础架构并且无法扩展,您不会这样做,但对于很多事情来说都可以。

    【讨论】:

      【解决方案3】:

      这真的取决于你的网络服务器和你的 sql 服务器正在做多少工作。

      如果没有更多信息,我怀疑你会得到任何有用的答案。

      【讨论】:

        【解决方案4】:

        如果您的网络服务器可以公开访问,那么从安全角度来看,这是一个非常糟糕的主意。

        虽然从路由、防火墙、端口、身份验证等角度来看,它使很多事情变得更加困难,但分离是好的。当您的数据库服务器在 Web 服务器上运行时,如果您的 Web 服务器被入侵,那么您的 sql 服务器也会被入侵。

        当你把它们放在不同的盒子上时,你已经提高了一点。

        要保护您的网络服务器和数据库服务器,还有很多工作要做,但为什么要让它变得比需要的更容易呢?

        【讨论】:

          【解决方案5】:

          我会说最好在同一台服务器上运行它们,直到出现问题为止。这样一来,您就可以为自己节省一些金钱和时间。一旦网站取得成功并需要进行一些架构更改,它应该已经为自己付出了代价。

          记得备份:)

          【讨论】:

            【解决方案6】:

            这取决于服务器的预期负载。对于小型站点,完全没有问题(如果配置正确)。对于大型站点,您可能需要考虑将负载分布在不同的服务器上:Web 服务器、文件服务器、数据库服务器等。

            【讨论】:

              【解决方案7】:

              我一遍又一遍地看到这个问题。正确的答案是将 SQL Server 放在一台机器上,将 IIS(Web 服务器)放在另一台机器上。您的钱将用于 SQL Server 机器,因为必须购买正确的驱动器系统和 RAM 以支持高效的服务器,但 Web 服务器可以是一个大大缩小且成本较低的机器,只需一个镜像驱动器集。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2018-06-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-10-12
                • 2013-05-08
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多