Yar*_*lav 8 performance sql-server-2008-r2 configuration performance-testing performance-tuning
我们在生产中有几个数据库服务器,其中 4 个具有非常相似的硬件配置。Dell PowerEdge R620,唯一的区别是2个最新的(3个月前购买和配置的)有RAID控制器v710,256GB RAM和CPU是2个物理Xeon E5-2680 2.80GHz。旧的(大约 1 年前购买和配置)具有 RAID 控制器 v700、128GB RAM 并在 witl 2 物理 Xeon E5-2690 2.90GHz 上运行。BIOS 已更新,所有驱动程序均已更新至最新版本等。所有运行 SQL Server 2008R2 Enterprise (SP1) 的系统均已更新至最新 CU 和 Windows 2012R2 Standard。两者都在 200 GB SSD x5 RAID10 上运行。每个数据库只运行一个数据库,使用调用 SSIS 包的作业进行同步。我们的系统管理员运行了大量性能和压力测试,以确保我们没有任何硬件或网络配置错误或故障。正如预期的那样,最新的表现出更好的性能结果。到现在为止还挺好。
我们可以在 Kibana 的屏幕截图中看到我们遇到的问题。黄色和橙色是 2 台较新的服务器(桌子上有 6,7 台),低于所有其他服务器。很明显,这两个新服务器的响应时间较慢。不仅如此,这 2 台服务器的负载也比 2 台较旧的服务器少(浅蓝色和深蓝色线 - 桌子上的 4,5)。
有几个监视脚本收集有关性能计数器的信息。用DMV和第三方监控工具尽可能挖掘,我手头有很多信息。但是应该有(ofc)一些我在这里遗漏的东西,因为我找不到这个较慢的响应时间的答案。
2 台最新的服务器使用的 RAM 较少,但我想这是意料之中的,与其他较旧的服务器相比,因为它们的负载较低。
| Server Name| Mem_MB | Mem_GB | Server_RAM_GB | SQL_max_mem_GB| SQL_min_mem_GB |
|------------|--------|--------------|---------------|---------------|----------------|
| 4 | 41108 | 40.145263671 | 128 | 120 | 16 |
| 5 | 61272 | 59.836425781 | 128 | 120 | 16 |
| 6 | 34117 | 33.317626953 | 256 | 250 | 16 |
| 7 | 33764 | 32.972656250 | 256 | 250 | 16 |
Run Code Online (Sandbox Code Playgroud)
所有服务器的更多RAM配置如下:
| Server Name | Total_Page_File_In_MB | Available_Page_File_MB | Kernel_Paged_Pool_MB | Kernel_Nonpaged_Pool_MB |
|-------------|-----------------------|------------------------|----------------------|-------------------------|
| 4 | 180160 | 130042 | 249 | 98 |
| 5 | 148416 | 77246 | 249 | 110 |
| 6 | 301010 | 260453 | 132 | 99 |
| 7 | 301010 | 260454 | 143 | 108 |
Run Code Online (Sandbox Code Playgroud)
在所有服务器上运行以下查询显示相同的配置参数:
SELECT * FROM master.sys.configurations
Run Code Online (Sandbox Code Playgroud)
我可以继续显示更多信息,但我不完全确定可能需要什么。关于我应该检查什么的任何线索?
我已经阅读了SQL Server 2008 中的MS故障排除性能问题的已知白皮书,并从那里获取了大量 DMV 的查询。
根据要求编辑:
EXEC sp_configure 'max server memory (MB)'
| Server Name | name | minimum | maximum | config_value | run_value |
|-------------|------------------------|---------|------------|--------------|-----------|
| 4 | max server memory (MB) | 16 | 2147483647 | 120000 | 120000 |
| 5 | max server memory (MB) | 16 | 2147483647 | 120000 | 120000 |
| 6 | max server memory (MB) | 16 | 2147483647 | 250000 | 250000 |
| 7 | max server memory (MB) | 16 | 2147483647 | 250000 | 250000 |
Run Code Online (Sandbox Code Playgroud)
至于maxdop
我们一直在玩它,结果是:
EXEC sp_configure 'max degree of parallelism'
| Server Name | name | minimum | maximum | config_value | run_value |
|:-----------:|:-------------------------:|:-------:|:-------:|:------------:|:---------:|
| 4 | max degree of parallelism | 0 | 1024 | 1 | 1 |
| 5 | max degree of parallelism | 0 | 1024 | 1 | 1 |
| 6 | max degree of parallelism | 0 | 1024 | 1 | 1 |
| 7 | max degree of parallelism | 0 | 1024 | 1 | 1 |
Run Code Online (Sandbox Code Playgroud)
这张图片说明了一切。
感谢 Kin 指出您的问题和相关答案。在这个过程中我学到了很多东西。通过研究你的详细问题,我考虑做同样的事情,比较我们最重的查询的执行计划......瞧!问题是一项本来应该执行的工作已经几周了,但计划已被禁用。现在我必须检查它被禁用的原因以及具体何时被禁用。现在一切都进展顺利。蓝线是一台服务器由于维护而未接收请求,并未死亡。
归档时间: |
|
查看次数: |
234 次 |
最近记录: |