加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 什么时候可以在同一台机器上托管IIS和SQL Server

发布时间:2020-12-12 16:34:05 所属栏目:MsSql教程 来源:网络整理
导读:我已经看到在同一台机器上安装SQL Server和IIS是不明智的,但我没有看到任何证据.有没有人尝试过,如果是,结果如何?在什么时候需要分开它们?是否需要调整?我特别关心IIS7和SQL Server 2008. 如果有人可以提供数字,显示何时更有意义的去两台机器,这将是最有帮
我已经看到在同一台机器上安装SQL Server和IIS是不明智的,但我没有看到任何证据.有没有人尝试过,如果是,结果如何?在什么时候需要分开它们?是否需要调整?我特别关心IIS7和SQL Server 2008.

如果有人可以提供数字,显示何时更有意义的去两台机器,这将是最有帮助的.

解决方法

使用任何其他产品(包括SQL Server的另一个实例)运行SQL Server是不明智的.这个建议的原因是SQL Server如何使用操作系统资源的本质. SQL Server在用户模式下运行内存管理和处理器调度基础架构,名为 SQLOS.SQL Server旨在以最高性能运行,并假设这是操作系统上唯一的服务器.因此,SQL操作系统保留机器上的所有RAM,用于SQL进程,并为每个CPU内核创建一个调度程序,并为所有调度程序分配任务以运行,利用它可以获得的所有CPU.由于SQL保留所有内存,因此需要内存的其他进程将导致SQL查看 memory pressure,并且对内存压力的响应将从缓冲池中排除页面,并从计划缓存中编译计划.而且由于SQL是唯一实际利用 memory notification API的服务器(有传言说下一个Exchange也是这样),所以SQL是唯一实际缩小到给其他进程(例如漏洞的ASP池)空间的进程.此行为也在BOL: Dynamic Memory Management中解释.

CPU调度发生类似的情况,其他进程从SQL调度程序中窃取CPU时间.在高端系统和Opteron机器上,事情变得更糟,因为SQL充分利用了NUMA的位置,但没有其他进程通常不会意识到NUMA,并且尽可能多的操作系统可以尝试保留分配的位置,他们最终分配所有通过物理RAM,并降低系统的整体吞吐量,因为CPU在等待跨数字边界页访问时空闲.还有其他一些事情要考虑,就像TLB和L2由于其他进程占用CPU周期而增加.

总而言之,您可以使用SQL Server运行其他服务器,但不推荐.如果必须的话,请确保您将两台服务器隔离成最佳能力.对于SQL和IIS / ASP,使用CPU亲和力掩码来隔离两个独立的内核,配置SQL以保留较少的RAM,以便为IIS / ASP留下可用内存,配置您的应用程序池以积极回收以防止应用程序池增长.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读