And*_*y W 4 sql-server memory sql-server-2012
我最近为一个繁忙的网站迁移了一个 100GB 的数据库:
MS SQL 2008 Standard Edition R2
Windows Server 2008
48gb RAM
Run Code Online (Sandbox Code Playgroud)
到
MS SQL 2012 Web Edition
Windows Server 2012
64gb RAM
Run Code Online (Sandbox Code Playgroud)
我注意到 2012 年的内存使用情况似乎有所不同,与2008 年服务器相比,工作集内存相对较低(请参见下面的屏幕截图)。
题
这看起来正确吗,我应该担心吗?我想确保 MSSQL 可以根据需要访问尽可能多的内存。两台服务器的使用配置文件,就来自它们所支持的网站的请求而言,是相同的,因此查询的模式或数量没有改变。
SQL Server 2008
SQL Server 2012
SQL Server 2008 内存设置
SQL Server 2012 内存设置
感谢您提供任何提示。
SQL Server 2012 极大地改变了它控制和管理内存的方式。在 2012 年之前,max server memory只控制了 8K 页,现在它控制的远不止这些。
这里有一些来自 SQLOS 团队的好文章:
通过这些更改,您在工作集、最大服务器内存等中看到的内容几乎肯定会因版本而异。关键是关注这些数字的“正常”是什么,看看当出现特定的性能问题时它们是否有很大的偏差。当系统运行良好时,我不会只看一个数字,然后假设出现问题(这种情况经常发生在页面预期寿命为 300 之类的幻数中 - 也许您系统上的 PLE始终为120)。
一些可能有助于大致了解并设置一些基线的查询:
SELECT TOP (10) page_type,
numpages = COUNT(*),
size_kb = 8*COUNT(*)
FROM sys.dm_os_buffer_descriptors
WHERE database_id < 32767
GROUP BY page_type
ORDER BY size_kb DESC;
SELECT * FROM sys.dm_os_process_memory;
SELECT TOP (10) [type],
size_kb = SUM(pages_kb)
FROM sys.dm_os_memory_clerks
GROUP BY [type]
ORDER BY size_kb DESC;
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Memory Broker%'
OR object_name LIKE '%Buffer Manager%'
OR object_name LIKE '%Memory Manager%'
OR object_name LIKE '%Memory Node%';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7961 次 |
最近记录: |