2016-06-24 18 views
1

プロダクションサーバーの問題を解決する際に問題が発生しました。問題の背景を説明します。SQL Server 2012メモリ

私たちは、SQL Server 2012 standard = SP2 + CU6と、アプリ側のJava/hibernateを持っています。 メモリ64GB、SQLサーバーに55GBを割り当てました。

最近、APIの変更を加えましたが、この動作に気付きました。

PLIは約2分に落としていますが、バッファプールのサイズを調べると、この間にバッファプールの問題で予想されるPAGEIOLATCH_SH待機タイプに気づくことができます。

私の質問は、SQLがバッファプールのサイズを4GB(最大メモリは55GB)に減らしたことと、この問題をどのように解決するのかということです。この問題は何度か起こっているに過ぎず、この間だけ増加する待ち時間があります。

問題を特定するためにいくつかのアドバイスで私を助けてくださいsys.dm_os_memory_clerksを使用しますが、SQL Serverの

に割り当てられたメモリの合計と一致していません。システム内の総メモリ使用量を見つけ出し、見つからないメモリを見つける方法はありますか?

答えて

2

システム内のメモリ使用量を確認して、見つからないメモリを見つける方法はありますか?

はい、あります:

-- 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)')