asp.net – 提高性能的最佳方法(并以某种方式包括故障转移)
我们有一个运行的应用程序,其中IIS和SQL在同一台机器上.它是一个
Windows2003标准服务器,在VM上运行4GB RAM.
现在,用户数量不断增加.还有一些巨大的统计数据,可以由用户运行,但对其他用户的性能影响很大.所以我们需要以某种方式提高性能. 我想在每台机器上使用windows2008 64位和至少6 GB内存的2台不同机器上分离IIS和SQL,但它也应该有一个故障转移解决方案. 您能否推荐一些有关如何解决性能和故障转移问题的方案? 谢谢 PS: 仅供参考:我们现在在IIS中使用inproc状态管理,但我认为更改为sqlstatemanagement会更好. 编辑 我已经将问题扩展到了故障转移的程度.因为我们的客户不想在服务器和SQL许可证上花太多钱.将复制到第二个SQL服务器并将其用作故障转移是否“可以”?你知道一些更好的“廉价”解决方案吗? 该应用程序仅供内部使用,但现在越来越多的部门参与此项目. 解决方法
现在你假设VM上有32位操作系统.由于标准版不允许
AWE这两台服务器(IIS和SQL),SQL Server将加载最大约1.8 GB的内存,并为IIS和操作系统留下足够的RAM.但是一旦你转移到64位操作系统,事情会发生变化,因为SQL Server将为其缓冲池占用所有RAM(如果有6GB可用,则为~5GB),然后在
notified时开始将其返回给操作系统.可以通过配置SQL来调整此行为服务器
memory options.通过将IIS和SQL拆分到单独的VM上,可以将SQL VM上的所有内存留给缓冲池,这很好.理想情况下,您应该有足够的RAM,以便SQL可以将整个数据库加载到内存(包括tempdb)中,只触摸磁盘以进行日志写入以及何时必须检查数据库.换句话说,更多的RAM意味着更快的SQL.它是迄今为止SQL对性能所需的最重要的硬件资源,并将带来最大的收益.
现在回到关于“故障转移”的广泛问题.在SQL Server中,high availability的解决方案分为两类:自动和手动.对于自动故障转移,您实际上只有几个解决方案: > Clustering.传统上由于支持群集的硬件成本高,实施起来相当昂贵,但对于虚拟机,这是一个不同的故事. Standard Edition SQL支持两个节点集群.集群有点难以部署,但操作非常简单,无需支持应用程序更改.通过群集,故障转移单元是一个完整的SQL Server实例(即每个数据库,包括master / tempdb / model和msdb,所有登录,所有SQL Agent作业等).群集不是性能解决方案,因为备用服务器只是闲置以防主要服务器崩溃.您可以通过部署所谓的“主动 – 主动”群集来利用备用VM.这意味着您部署了两个集群,一个在VM1上处于活动状态,在VM2上处于备用状态,另一个在VM2上处于活动状态,在VM1上处于备用状态.在故障转移的情况下,其中一个VM必须承担两个实例的负载,这就是为什么主动 – 主动部署有时不受欢迎的原因.鉴于你计划部署在没有(昂贵)金属的虚拟机上,我建议反对它,因为’ammortize’没有巨大的成本. 如果您正在考虑手动故障转移解决方案,那么还有更多选择: > Log Shipping.日志传送基本上是带外镜像.日志不是通过专用TCP连接实时传输日志记录,而是通过文件复制操作传输.通过镜像选择日志传送的原因很少:可以查询备用数据库进行报告,备用数据库可以位于具有零星连接的位置,备用数据库可以由非常低功率的机器安装. 您提到您担心许可证成本:除了复制之外,您实际上不需要使用任何这些技术的任何passive服务器的许可证.备用服务器仅在它们变为活动状态并且运行数据库超过30天时才需要许可证. 考虑到您计划在VM上部署,我的选择将是群集.如果你要在金属上部署,我建议使用镜像,因为集群硬件的成本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
- 在asp.net中找不到richtext框控件
- asp.net – 从MSDN获取我需要的信息的最快方法是什么?
- asp.net-mvc – asp.net mvc禁用ajax缓存
- asp.net-mvc – 在asp.net mvc请求中捕获windows用户名
- asp.net – 浏览器关闭后的身份验证/会话cookie删除
- asp.net – 升级到.net 4.0后无法加载文件或程序集“AjaxCo
- asp.net-mvc – ASP.NET MVC 4 – @Section中Javascript函数
- 在ASP.NET MVC中为复杂数据验证放置数据管理规则的位置?
- asp.net – 使用WebHandler的HTTPHandler和IsReusable
- asp.net-mvc – 如何识别ASP.NET MVC网站?
- ASP.NET 5 / MVC 6数据库优先 – 在应用程序配置
- ASP.NET – 使用WCF Web服务绑定w / AD组的IIS7部
- asp.net-mvc-3 – ASP.NET MVC 3 RTM项目中的这个
- asp.net-mvc – 将MvcSiteMapProvider与属性和属
- asp.net-mvc – 使用哪个:“AcceptGet,AcceptPo
- asp.net-mvc – 可以使用ASP.Net MVC Razor视图来
- asp.net-mvc – 按名称查找MVC模板视图
- asp.net – Telerik RadDatePicker在2030年之后没
- asp.net-mvc – 哪种类型的缓存适合在Umbraco项目