托管 ASP.NET MVCv1 应用程序的最佳性能设置是什么?
我目前正在运行 2 个微实例,一个用于服务数据库,另一个用于服务 MVC 应用程序本身。
应用服务器是 Windows Server 2k8 32 位、IIS 7.5。数据库服务器是 Windows 2008 Datacenter 32 位、Sql Express。
每次在线的用户不超过几个(不到 10 个),通过查看 AWS 监控,数据库 CPU 偶尔会达到 100% 使用率,但应用服务器 CPU 几乎有一半的时间处于 100% 运行状态。正如您所想象的,这会损害用户的性能。
从成本角度来看,哪种服务器/实例设置更好?
感谢您的帮助。
答案1
微型实例对于数据库安装来说简直是垃圾。微型实例大约有 600 MB 的 RAM,这几乎不足以运行 Windows 2008,更不用说在其下实际运行数据库了。您需要一个至少有几 GB RAM 的实例,以便服务器中有足够的内存供 SQL 服务器实际获得一些内存。
如果在进行更改后 SQL Server 上的 CPU 仍然达到 100%,您将需要查找需要添加的索引或编写不当的查询以查找问题。
答案2
我建议将网站托管在应用港。您的应用程序和数据库将在速度更快的硬件上运行,但由于它是多租户设置,成本可能会大幅降低。您也不必自己配置、安装和更新服务器,部署新版本的代码可能也不会那么麻烦。
(免责声明,我是 AppHarbor 的联合创始人)
答案3
这些微型实例确实很便宜,但它们不适用于计算量大的工作负载,例如您的应用服务器。与微型实例不同,“小型”实例具有专用 CPU,因此 100% 运行意味着您更有可能使用小型实例获得更多的 CPU 周期。
下一步将是高 CPU 的中型。比“小型”更贵,但 CPU 马力明显更强。