2010-10-26 52 views
3

我正在运行Windows 2008服务器(具有1GB RAM的VPS),安装了SQL Server Express和IIS 7。在它上面,我将托管一个NopCommerce 1.7网站,其中包含大约26 000种产品的数据库。w3wp.exe对每个请求都有很高的CPU使用率

现在我是该网站的唯一用户(它正在开发中),而且我的表现越来越差。更具体地说,每次发出请求时,工作进程都会在几秒钟内达到90-100%的CPU使用率。是我还是这对一个用户NopCommerce网站有很大的帮助?任何想法为什么发生这种情况,我可以做些什么来纠正或进一步调查? PS:工作进程使用100MB-400MB内存(专用工作集)和SQL Server与此数据库之间的大小约为160MB。除了那些显而易见的获得更多RAM之外,你还有什么建议吗?我打算再获得一个GB,但我担心这不会解决CPU使用问题。

+5

我并不是想说明显而易见的内存,但请获取更多内存。至少还有3GB。可怜的服务器。 – Marko 2010-10-26 11:05:15

+0

现在服务器正在使用1.6 GB的内存(提交)。这意味着磁盘上至少有600MB。我正在考虑获得1 GB,因为它应该覆盖当前的内存要求。为什么我会获得额外的3GB的任何理由?预算不是非常大 – 2010-10-26 11:48:08

+0

对不起,我是新来的sharepoint,我通常附加到这个过程来调试我的门户,谢谢我有机会阅读它,并知道它是IIS工作进程。我投票删除了我的帖子,祝你好运。 – 2010-10-26 12:00:15

回答

4

你已经说过你会得到更多的RAM,但不要惊讶缺乏RAM会影响CPU。如果你的RAM由于空间不足而无法高效地保存大型对象(并且我认为使用40%的可用RAM有效),那么CPU必须更加努力地将事物分页和写出虚拟内存。 90%对此有点矫枉过正,但是通过服务器规格,你可以做到这一点。

最可能的问题是你的代码在某处存在漏洞。我的猜测是,你有无限循环或直接内存泄漏(资源在请求中打开,也许没有关闭?)。您最好的选择是获得IIS Debug Diagnostics tool,安装它并设置报告以直接了解服务器上发生了什么。