SQL Serverメモリの適切な値とは
SQL Serverでは様々なメモリの項目を設定できますが、メモリのチューリングで重要な項目はメモリ最大値(max server memory)とメモリ最小値(min server memory)です。下記では、それぞれの適切な値について解説します。
SQL Serverメモリの適切な最大値
SQL Serverで使用するメモリの最大値は、初期設定では無制限に近い 2,147,483,647 MBになっています。
搭載メモリ量によって異なりますが、OSや他のアプリケーションのプロセスが大量のメモリを使用する場合、SQL Serverプロセス用に確保していたメモリ領域の一部をストレージに書き出して解放することがあります(スワップアウト/ページアウト)。ストレージに退避したデータが必要になった場合、再度物理メモリ上に移行する必要があり(スワップイン/ページイン)、このような処理をくり返すことでパフォーマンスに悪影響を与えることがあります。
SQL Serverメモリの最大値には、搭載している物理メモリ量から、OSや他のアプリケーションで使用するメモリ量を差し引いた値を設定するのがおすすめです。例えば、20 GBのメモリを搭載していて、OSや他のアプリケーションで使用する量が2 GBで充分な場合、最大値には18 GB(18,432 MB)を設定するのがよいと考えられます。
SQL Serverメモリの適切な最小値
SQL Serverで使用するメモリの最小値は、初期設定では0 MBになっています。SQL Server専用サーバーの場合は初期設定でも問題ないかもしれませんが、他のアプリケーションと同居させている場合は要注意です。
SQL Server以外のプロセスで大量のメモリを使用することで、サーバー全体がメモリ不足になった場合、SQL Serverで使用するメモリを最小値まで減らそうとします。最小値が適切でない場合、SQL Serverプロセス用の最低限のメモリを確保できず、メモリ不足でエラーとなる可能性があります。
他のアプリケーションと同居させている場合、SQL Serverメモリの最小値には、SQL Serverが動作する上で最低限必要な値を設定するのがおすすめです。例えば、SQL Server 2019の公式ページの最小メモリ要件では、Express Editionで512 MB、他のすべてのエディションで1024 MBと紹介されています(※1)。
SQL Serverメモリの最大値と最小値の設定手順
SQL Serverメモリの最大値と最小値の適切な値がわかったところで、実際にそれらを設定してチューリングする手順について解説します。
1.SQL Server Management Studioの起動
SQL Serverのメモリの設定を変更するには、SQL Server Management Studioを起動します。SQL Server Management Studioは、SQL Serverの他、Azure SQL DatabaseやAzure VM上のSQL ServerやAzure Synapse Analytics等の管理・運用を行うための統合環境です。
SQL Server Management Studio上で設定を変更したいデータベースに接続します。
2.メモリの最大値や最小値の変更
データベースのメモリの最大値と最小値を変更するには、SQL Server Management Studioの画面左側にある「オブジェクト エクスプローラー(Object Explorer))」のデータベース名を右クリックし、表示されたメニューの中から「プロパティ(Properties)」を選択します。
「サーバープロパティ」の設定ウィンドウが表示されます。左のメニューより「Memory」をクリックすると、メモリの設定変更が可能です。
メモリの最小値を変更するには「Minimum server memory」を、最大値は「Maximum server memory」の値を変更し、最後に右下の[OK]をクリックします。
これらの値はデータベースが稼働している時に変更することも可能です。最大値を小さく変更した場合、変更した値程度までメモリが解放されます。
SQL Serverのパフォーマンスを可視化できるツール
ここまで、SQL Serverのメモリのチューニングについて解説しました。上記の手順の注意点として、管理対象のデータベースが少ない場合は問題ありませんが、組織内でさまざまなデータベースを管理している場合、手間や時間がかかり効率的とは言えません。
ManageEngineでは、データベースのパフォーマンスを可視化して手軽に管理できるツール「 Applications Manager」をご提供しています。SQL Serverのどこがパフォーマンス低下の原因となっているか、グラフや表形式で特定できます。SQL Serverメモリの最大値や最小値についても簡単に把握できます。また、事前に設定したしきい値に基づき、SQL Serverに問題が発生した際にメールで迅速に通知を受け取ることも可能です。
Applications Managerは専門知識や経験が豊富でない方でも操作しやすい管理画面を備えています。ぜひ体験サイトで実際の操作感をお試しください。
インストール不要な体験サイト
ManageEngineのアプリケーション性能監視ツール「Applications Manager」では、ツールの使用感を確認できるGUIベースのサイトを提供しております。制限はありますが、実際に操作いただくことも可能です。
インストールや設定は一切必要ないので、お気軽にお試しください。