web-dev-qa-db-ja.com

専用データベースサーバーで、OS用に予約するメモリの量はどれくらいですか?

データベース機能専用のサーバーを明示的に使用していると仮定します-オペレーティングシステム用に予約する必要のあるメモリ容量は?

これはおそらく、特定のOS、特定のデータベースソフトウェアなどによって多少異なると思います。ただし、メモリはデータベースのパフォーマンスにとって非常に重要であるため、ホストOSを枯渇させることなく、データベースにmaximum合理的なレベルのメモリを持たせたいと思います。

そう

  • はじめに良い経験則は何ですか?
  • 行き過ぎてホストOSがデータベースによって何らかの形で不足しているかどうかを判断するために、どのカウンターまたはパフォーマンスインジケーターを確認する必要がありますか?
39
Jeff Atwood

WindowsとSQL Serverを想定しています...

思考には二つの流派があります。

  1. Windowsでは2〜4ギグのままにします(SQL Server以外にインストールされているものによって異なります)。
  2. 使用可能なメモリの10%を解放します。 64ギグを超えると、これはOSに残しておくべき非常に大量のメモリになり、おそらく必要ありません。

個人的に私は最初のグループにいます。 Windowsでは通常、2〜4ギガ、場合によっては最大6ギガが必要です。

30
mrdenny

Linuxを想定していて、スワップをオフにし、メモリが不足しているためにカーネルがDBプロセスを強制終了し続ける場合、それはOSのメモリを枯渇させていることを示す良い指標です。それが起こらなくなるまで後退してください。通常、数百メガで十分です。

16
Dan Grossman

ここでは、数千の顧客のデータベースサーバーを実行しているAmazonの経験を活用できます。AmazonRelational Database Serviceでは、メモリの量に関係なく、MySQLのinnodbバッファープールをシステムのメモリの3/4に設定します。さまざまなクエリバッファーに対して、接続ごとに最大数メガを追加すると、メモリの10〜20%がOSに残ります。

8
Dan Grossman

Brent Ozar's take take memoryをお読みください。彼は、なぜメモリを見る必要があるのか​​、そしてより多くのメモリがより良いパフォーマンスに等しいのかについて、かなり標準的な答えをいくつか持っています。通常、4 GBまたは10%はOS用に予約されています。

5
Troy