我正在运行Windows 2008服务器(具有1GB RAM的VPS),并安装了SQL Server Express和IIS 7。在它上面我主持一个NopCommerce 1.7网站,拥有大约26000种产品的数据库。
现在我是该网站的唯一用户(正在开发中),我的表现相当糟糕。为了更具体,每次我发出请求时,工作进程都会在90-100%的CPU使用率下持续几秒钟。对于一个用户NopCommerce网站来说,这是我还是这个?任何想法为什么会发生这种情况以及我可以做些什么来纠正它或进一步调查?
PS:工作进程使用100MB-400MB内存(私有工作集),SQL Server使用此数据库,大约160MB。你有什么建议,然后明显的建议,以获得更多的RAM?我打算再获得一个GB,但我担心这不会解决cpu使用问题。
答案 0 :(得分:4)
您已经声明过要获得更多内存,但不要惊讶于RAM的不足会对CPU造成多大影响。如果你的RAM由于空间不足而无法有效地容纳大型对象(并且我说使用40%的可用RAM资格),那么CPU必须更加努力地将内容分页进出虚拟内存。 90%对此有点矫枉过正,但是根据服务器规格,你给它并非不可能。
最可能的问题是你的代码中有一个漏洞。我的猜测是你有无限循环或直接内存泄漏(资源在未关闭的请求期间打开?)。你最好的选择是获得IIS Debug Diagnostics tool,安装它并设置报告以找出服务器上直接发生的事情。