1
2
现在,我想你在虚拟机上有32位操作系统。因为标准版不允许 AWE 这两个服务器(IIS和SQL)SQL服务器将最大负载大约1.8GB,并为IIS和OS留下大量的RAM。但是,一旦移动到64位操作系统,事情就会发生变化,因为SQL Server会将所有RAM作为缓冲池(如果有6GB,则为5GB),然后在 notified . 可以通过配置SQL Server来调整此行为 memory options . 通过将IIS和SQL拆分到单独的虚拟机上,您可以将SQL虚拟机上的所有内存保留为其缓冲池,这很好。理想情况下,您应该有足够的RAM,以便SQL可以将整个数据库加载到内存(包括tempdb)中,并且只在需要检查数据库时触摸磁盘进行日志写入。换句话说,更多的RAM意味着更快的SQL。这是迄今为止SQL对性能所需的最重要的硬件资源,并将带来最大的回报。 现在回到关于“故障转移”的广泛问题。在SQL Server中, high availability 分为两类: 自动的 和 手册 . 为了 自动的 故障转移您实际上只有几个解决方案:
如果您正在考虑手动故障转移解决方案,那么还有其他两种选择:
您提到您关心许可证成本:实际上您不需要为任何 passive 使用这些技术的服务器 除了 复制。只有当备用服务器处于活动状态并运行数据库超过30天时,它们才需要许可证。 考虑到您计划在虚拟机上部署,我的选择是集群。如果您将部署在金属上,我建议使用mirroing,而不是集群硬件的成本。 |
2
1
如果SQL Server是计算机上运行的“唯一”东西,那么它总是工作得最好的。这样做会让你快速、轻松、受益匪浅。它似乎喜欢掌控一切,并且在可能的时候总是更快乐:) |
3
1
对于ASP.NET性能调优,您必须参考这两篇有关codeproject的文章。
1。
http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx
我个人在我的ASP.NET应用程序中实现了这些技术,并获得了超过30%的性能改进。 此外,您可以参考 this 文章为您的应用程序99.99%的正常运行时间。 |
4
1
听起来你真的在问是否应该把数据库放在一台单独的机器上。这可能不会提高性能(实际上会随着延迟的增加而降低),但会提高可伸缩性(我猜这正是您真正需要的)。 性能<gt;可扩展性。 然而,更多的问题开始出现——如果没有足够的RAM,那么数据库在同一个盒子上的性能可能会降低——SQL Server喜欢使用RAM。 这就是为什么对于像TFS这样使用SQL Server的用户,对于数量较少的用户,Microsoft建议将其全部安装在一台计算机上,但是对于数量较多的用户,Microsoft建议将DB安装在不同的服务器上。 你可以 read about the deployment options for TFS here . 切换SQL Server状态管理不会提高性能—它可能会降低性能,但您将获得其他好处(如可靠性)。 听起来您需要先了解性能瓶颈是什么。根据我的经验,这通常在数据库中。 您是否研究过标准的ASP.NET优化技术(如缓存)?微软提供 guidance on application tuning 这也可能对你有用。 当您在Web应用程序场景中使用SQL Server时,如果您使用的是SQL Server 2005及更高版本,则可能希望阅读 Snapshot isolation . 有时不使用它会导致Web应用程序出现性能问题。 |
5
0
层的分离可能有帮助。通常,数据库的机器调优是非常具体的,所以这是一个合理的第一步工作。 然而,如果你有两种用户活动,其中一种是非常沉重的,那么你总是会冒着让几个沉重的用户伤害其他人的风险。 你可以考虑两件事:
|
6
0
自然地,将IIS和SQL Server分离是第一步。SQL Server确实希望自己拥有一台完整的计算机。 第二件重要的事情是在应用程序运行时对其进行分析。不要在没有实际使用数据的情况下尝试优化应用程序的性能,因为您可能只是花时间优化很少被调用的东西。我过去成功使用的一种技术是在请求中创建system.diagnostics.stopwatch,然后在global.asax中开始,然后将其存储在上下文变量中。
在请求端,您获得秒表agin
然后将处理请求所需的时间写入日志表。同时记录URL(包括查询字符串参数和不包括查询字符串参数)以及各种有助于分析性能的东西。 然后,您可以分析应用程序并找出哪些操作花费的时间最长,哪些操作被称为最长的,等等,这些操作将允许您查看是否有一个页面被大量请求,并且通常需要很长的时间才能完成,这应该是优化的目标,使用您为此所拥有的任何工具,包括.NET和SQL分析程序。 我通常也会记录其他东西,IP地址和登录用户的用户ID。当出现错误时,这也给了我一个非常宝贵的去bug工具。 与将其写入日志文件不同,将其放入表中的原因是可以使用SQL语法筛选、分组、计算平均时间等。 |
Enes · IIS未在Visual Studio 2017中运行项目 6 年前 |
Ehsan Akbar · 当请求被激发时,WCF请求时间会增加 6 年前 |
Bassie · 我的凭据存储在哪里? 6 年前 |
mikeo · Kestrel+IIS反向代理请求中止未触发 6 年前 |
Adam · Django+iis请求。身体问题 6 年前 |