我们在专用 VPS 上有一个小型(目前)Asp.Net MVC 5 网站。当我转到服务器并启动任务管理器时,我看到“SQL Server Windows NT - 64 位”正在使用大约 80% 的 CPU 和 170MB RAM,而 IIS 使用 6% CPU 和 400MB RAM。服务器规格为:
- CPU 1.90Ghz 双核
- 内存2GB
- Windows 服务器 2012
- SQL Server Express 2012
- 磁盘空间:25GB,2.35 可用。
数据库不是很大。其备份小于10MB。
我已尽力优化网站。我为很多控制器添加了缓存,并为很多控制器实现了甜甜圈缓存。但今天,即使只有 5 个用户在线,我们的搜索也无法进行。我重新启动了服务器上的 Windows,它开始工作,但服务器启动后 CPU 使用率很高。有趣的是,当我打开 SQL Server Management Studio 并尝试获取 CPU 消耗最高的查询的报告时,它说当前没有消耗任何 CPU 的查询!但同时我可以看到SQL Server消耗了大量的CPU。如何检查是什么占用了所有 CPU?下面是来自服务器的图片:
我在设计和实施该网站时非常小心。所有数据库访问都是通过最新版本的实体框架进行的。我只是想知道服务器的规格是否较低。任何帮助将非常感激。
Update:
这是结果sp_who2
存储过程。
如果设置使用的内存大于盒子上的可用内存,则可能会发生这种情况。默认内存设置为 2147483647MB。在我们的例子中,AWS 盒子只有 30.5 GB,因此我们将设置更改为 26GB,CPU 使用率下降到 40%。您通常希望为操作系统及其操作留下 20% 的内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)