SQL Server 2008と8GB RAM=お客様がWindows 2008 R2 SP1でホストされており、次の空きメモリ量を検討します。
次の実行中のプログラムを検討してください。
シナリオ:ユーザーは、このサーバーのデータをSQL Serverデータベースに保存するWebサイトを使用します。 5人以下のユーザー。
質問:シナリオを考慮すると、8GBがあり、IISこのサーバーでホストされている(これは悪い考えだと思います))がどのくらいRAM SQL Serverが使用する必要がありますか?Windowsに影響を与えずにSQL Serverが実際に使用するRAMの量をどこで構成できますか、IISおよび他の実行中のサービス?
SQL Serverバージョン: Microsoft SQL Server 2008(SP3)-10.0.5500.0(X64)Sep 21 2011 22:45:45 Copyright(c)1988-2008 Microsoft Corporation Standard Edition(64-bit)on Windows NT 6.1(ビルド7601:サービスパック1)
Windowsバージョン: Microsoft Windows [バージョン6.1.7601]
質問:シナリオを考えると、8 GBがあり、IISこのサーバーでホストされている(これは悪い考えだと思います))RAM SQL Serverを使用する必要がありますか?
「SQL Serverが使用するメモリの量」という質問への答えは、可能な限りです。そのため、バッファープールが制限されるように、最大サーバーメモリに適切な値を設定することを常にお勧めします。
SQL Serverサービスアカウントにlocked pages in memory(LPIM)
特権がある場合、タスクマネージャーを使用してSQL Serverのメモリ使用率を取得しないでください。正しい値が得られません。 RAM SQL Serverが使用している量を確認するには、以下のクエリを使用してください
select
(physical_memory_in_use_kb/1024)Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024 )Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
from sys. dm_os_process_memory
RAM SQL ServerがWindows、IISおよびその他の実行中のサービスに影響を与えることなく)を実際に使用する量はどこで設定できますか?
以下のクエリを使用してSp_configureでそれを行うことができます。
sp_configure 'show advanced options',1
go
reconfigure
go
sp_configure 'max server memory (MB)' , xxx --value in MB which you need to set
go
reconfigure.
クエリを使用して最大サーバーメモリを修正できますが、SQL ServerはサードパーティDLLおよび拡張ストアドプロシージャのバッファプール外のメモリを引き続き使用できます。これにより、SQL Serverがバッファプールで制限されている以上のメモリを使用する可能性があります
この記事 を読んでください。最大サーバーメモリの開始値を設定するのに役立ちます。以下のカウンターを使用して、最大サーバーメモリの正しい値を設定し、SQL Serverのメモリ使用量を監視する必要があります。
SQLServer:Buffer Manager--Page Life Expectancy(PLE):PLEは、ページがバッファープールに残っている期間を示します。長く留まるほど良くなります。 PLEのベースラインとして300を取ることはよくある誤解です。しかし、そうではありません。SQLServerが2000バージョンで、最大値RAM 。200GまたはRAM画像が表示されるようになったため、この値は正しくありません。彼は式(暫定)の計算方法も示しました。ほとんどのリソースによって提示された300のベースカウンター値を取得し、次に、構成されたバッファキャッシュサイズに基づいてこの値の倍数を決定します。これは、SQL Serverの「max server memory」sp_configureオプションを4 GBで割ったものです。したがって、32 GBがバッファプールに割り当てられているサーバーでは、 PLE値は、少なくとも(32/4)* 300 = 2400である必要があります。これまでのところ、これはうまくいったので、使用することをお勧めします。
SQLServer:Buffer Manager--CheckpointPages/sec:チェックポイントページ数/秒のカウンターは、メモリプレッシャーを知る上で重要ですロードチェックポイントの作業が増加し、ダーティページのフラッシュが非常に頻繁に開始されるため、ページをバッファプールに取り込み、バッファプールからフラッシュする必要があります。このカウンターが高い場合、SQL Serverバッファープールは、受信する要求に対応できず、バッファープールのメモリを増やすか、物理RAMを増やしてから適切な変更を加えることで、このカウンターを増やす必要があります。バッファプールサイズ。厳密には、perfmonで折れ線グラフを表示している場合、この値は低くなるはずです。
SQLServer:Buffer Manager--Freepages:この値は、常に高い値を表示する必要があるため、これよりも小さくする必要があります。
SQLServer:Memory Manager--Memory Grants Pending:バッファプールで保留中のメモリ許可が表示される場合、サーバーはSQL Serverのメモリ不足に直面しており、メモリの増加は良い考えです。メモリの付与については、 この記事を読んでください
SQLServer:memory Manager--Target Server Memory:これは、SQL Serverが取得しようとしているメモリの量です。
SQLServer:memory Manager--Total Server memoryこれは、SQL Serverが取得した現在のメモリです。
SQLサーバーは、可能な限り多くのメモリを使用します。 SQLサーバーの設定(プロパティ)で限られたメモリを割り当て、OSとIISに十分なメモリを確保する必要があります。それぞれのメモリ敵の量は、それぞれが何をするか、負荷、および期待に依存します。
この記事ではこれについて詳しく説明します: http://www.brentozar.com/archive/2011/09/sysadmins-guide-Microsoft-sql-server-memory/
答えはそれはSQL ServerやIISなどにどれだけの負荷をかけているかに依存します。 (SSIS?SSRS?)これらすべてが加算されます。
ジョナサン・ケヘイアスは、私にとってかなりうまくいく一般式を持っています:「1 GBのRAM、4 GBごとに1 GBを予約RAMインストール済み4〜16 GBから、8 GBごとに1 GB RAM 16 GB RAMの上にインストール。 "
したがって、この式はSQL Serverを約5 GBに制限し、サーバー上の他のコードにも使用するメモリを確保することを示しています。 (または、メモリを追加して再計算します。)
バランスが見つかるまで、メモリ設定を試す必要があります。
注:メモリ使用量が正しくバランスが取れている場合、ほとんどのメモリは引き続き使用されますが、アプリケーション間でより適切に共有されます。