6

我们在专用 VPS 上有一个小型(目前)Asp.Net MVC 5 网站。当我转到服务器并启动任务管理器时,我看到“SQL Server Windows NT - 64 位”正在使用大约 80% 的 CPU 和 170MB 的 RAM,而 IIS 正在使用 6% 的 CPU 和 400MB 的 RAM。服务器规格是:

  • CPU 1.90Ghz 双核
  • 内存 2GB
  • 视窗服务器 2012
  • SQL Server 速成版 2012
  • 磁盘空间:25GB,2.35 可用。

数据库不是很大。它的备份小于10MB。

我已尽我所能优化网站。我为很多控制器添加了缓存,并为很多控制器实现了甜甜圈缓存。但是今天,即使只有 5 个用户在线,我们的搜索也不起作用。我在服务器上重新启动了 Windows,它开始工作,但是在服务器启动的那一刻我得到了高 CPU 使用率。有趣的是,当我打开 SQL Server Management Studio 并尝试获取 CPU 消耗最高的查询的报告时,它显示当前没有任何查询消耗任何 CPU !!!但同时我可以看到 SQL Server 正在消耗大量 CPU。如何检查占用所有 CPU 的内容?下面是来自服务器的图片:

高 CPU 使用率

我在设计和实施网站时非常小心。所有的数据库访问都是通过最新版本的实体框架。我只是想知道服务器的规格是否很低。任何帮助将不胜感激。

更新:

这是sp_who2存储过程的结果。

sp_who2

4

2 回答 2

2

如果设置为使用的内存多于盒子上的可用内存,则可能会发生这种情况。默认内存设置为 2147483647MB。在我们的案例中,AWS 机器只有 30.5 GB,所以我们将设置更改为 26GB,CPU 使用率下降到 40%。您通常希望为操作系统及其操作留出 20% 的内存。

于 2016-11-18T17:53:18.433 回答
0

我同意运行 SQL Profiler 来发现大查询持续时间和大写操作。尝试运行 perfmon 并发现任何潜在的连接泄漏(回收的连接)。

于 2014-06-11T20:55:04.660 回答