【发布时间】:2017-03-31 16:58:45
【问题描述】:
我们有一个带有数据库镜像的 SQL Server 2012:
- 2 Windows Server 2012 R2 (SQL Server) +
- 1 Windows 7 见证 +
- 2 Windows Server 2012 R2 (IIS) 与 NLB 一起使用
服务器处理器:
- 英特尔至强 CPU E5-2609 v2
- 内存:16GB
在测试中,镜像服务器 (B) CPU 增加到 50% 左右(通常应该低于 10%),主服务器 (A) CPU 增加到 50% 左右。
系统速度大大降低。
我们软重启镜像服务器(B)后,CPU 增加到 70%,主体服务器(A)保持不变。但是当我们软重启主体服务器(A)时,(B)CPU 增加到 100%,(A)CPU 增加到 60%。大多数连接显示时间已过期。
我们断开与服务器的所有连接(拔下网线),只保留 4 台服务器和见证。
两台服务器的CPU保持不变。
我们在(A)&(B)上重启SQL服务后,问题没有改善。
我们检查了没有具体的阻塞查询,sp_who连接正常。
直到我硬重启服务器,系统恢复正常。
感谢任何想法,谢谢!
【问题讨论】:
-
如果您的 RAM 用完,您的系统会开始分页到磁盘并且 CPU 会出现峰值。哪个实际过程导致了 100%?是sqlservr.exe进程吗?
-
SQL Server 的最大内存设置为无限制,sqlservr.exe(A) RAM 大约 1.5 GB,sqlservr.exe(B) RAM 大约 800 MB
-
sqlservr.exe 是否会耗尽 CPU?您应该尝试将 SQL Server RAM 限制在物理 RAM 以下几 GB(从 12GB 开始),否则它会从操作系统中窃取 RAM 并引发混乱
-
是的,它吃掉了我们所有的资源(99%CPU)
-
所以你说 sqlservr 进程贡献了 99% 的 CPU 使用率。试试记忆的东西,看看它是否有帮助。
标签: sql-server sql-server-2012 database-mirroring sql-server-performance