我正在解决我们的生产服务器的问题,我会给你一些关于这个问题的背景知识。
我们在应用程序端有SQL server2012标准= SP2+CU6和Java / hibernate。64 to内存,并分配给SQL server 55 to。
我们最近做了一些API更改,并注意到了这一行为。
PLI下降(有时)到大约2分钟,当我检查缓冲池大小时,它下降到大约4 4GB,在这段时间内,我可以注意到由于缓冲池问题而预期的PAGEIOLATCH_SH等待类型。
我的问题是为什么SQL将缓冲池大小降低到4 4GB(最大内存是55 4GB),以及如何解决这个问题。这个问题只会发生几次,等待时间只会在这段时间内增加。
使用了sys.dm_os_memory_clerks,但它与分配给sql server的总内存不匹配
请帮我提供一些建议来找出问题所在。有没有办法找到系统中的总内存使用量并找到丢失的内存?
发布于 2016-06-24 10:15:45
有没有办法找到系统中的总内存使用情况并找到丢失的内存?
是的,有:
-- To get the total physical memory installed on SQL Server
SELECT [total_physical_memory_kb] / 1024 AS [Total_Physical_Memory_In_MB]
,[available_page_file_kb] / 1024 AS [Available_Physical_Memory_In_MB]
,[total_page_file_kb] / 1024 AS [Total_Page_File_In_MB]
,[available_page_file_kb] / 1024 AS [Available_Page_File_MB]
,[kernel_paged_pool_kb] / 1024 AS [Kernel_Paged_Pool_MB]
,[kernel_nonpaged_pool_kb] / 1024 AS [Kernel_Nonpaged_Pool_MB]
,[system_memory_state_desc] AS [System_Memory_State_Desc]
FROM [master].[sys].[dm_os_sys_memory]
--To get the minimum and maximum size of memory configured for SQL Server.
SELECT [name] AS [Name]
,[configuration_id] AS [Number]
,[minimum] AS [Minimum]
,[maximum] AS [Maximum]
,[is_dynamic] AS [Dynamic]
,[is_advanced] AS [Advanced]
,[value] AS [ConfigValue]
,[value_in_use] AS [RunValue]
,[description] AS [Description]
FROM [master].[sys].[configurations]
WHERE NAME IN ('Min server memory (MB)', 'Max server memory (MB)')https://stackoverflow.com/questions/38004630
复制相似问题