SQL Server 2008 R2 Total Server Memoryの値とCPU負荷について

このQ&Aのポイント
  • SQL Server 2008 R2を使用している際に、Total Server Memoryの値が搭載している物理メモリと同じ値に達すると、CPU負荷が100%になる現象が発生することがあります。
  • 質問者はWindows Server 2008 R2の環境でSQL Server 2008 R2 Standard Editionを使用しており、物理メモリ8GBの中でデータベースに12GB、4GB、2GBの合計18GBのメモリを使用しています。
  • max server memoryの値を7168MBに変更した場合、Total Server Memoryの値が7168MBに達した際にCPU負荷が100%になる可能性があるかどうかを検討しています。
回答を見る
  • ベストアンサー

SQL Server 2008 R2 Total

SQL Server 2008 R2 に関してご質問がございます。 Windows Server 2008 R2、メモリ 8GB環境で SQL Server 2008 R2 Standard Edition を使用しています。データベースは 12GBが1つ、4GBが1つ、2GBが1つあります。 SQL Server が物理メモリを 8GB近く消費しているのですが、Total Server Memoryの値が搭載している物理メモリと同じ値(8.192GB)に達すると月に2,3度CPU負荷が100%に達しデータベースへ接続できない現象が発生しています。SQL Server ログにはこのようなメッセージが残っています。 ソース spid23s メッセージ Memory Manage(以下省略) ソース サーバー メッセージ Error: 17887, Severity: 10, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped. ソース ログオン メッセージ エラー: 17803、重大度: 20、状態: 13。 ソース ログオン メッセージ There was a memory allocation failure during connection establishment. Reduce nonessential memory load, or increase system memory. The connection has been closed. (以下省略) これをうけて、max server memory の設定変更を検討しております。 SQL Server のプロパティはこのようになっています。 min server memory 0 max server memory 2,147,483,647 max server memory の値を7168MBへ変更し、その後Total Server Memoryの値が7168MBへ達した場合、CPU負荷が100%になる可能性はありますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

MS SQLSERVERは他のDBと比べても内部仕様あまり公開していないんで、通常の人では確たることは言えないと思います。 知っていても契約などで、非公開情報になっている可能性もあります。 Oracleのマニュアルからですが、既定値ではWindows Serverはディスク・キャッシュに結構メモリを配分するようです。 http://otndnld.oracle.co.jp/document/products/oracle10g/102/windows/B25020-03/tuning.htm#658607 レジストリでディスク・キャッシュの仕様最大量を変更出来れば、メモリの負荷も少しは減らせるかもしれません。

Quiroz
質問者

お礼

 ご回答頂きありがとうございます。リンク先のページを読み、Windows Server での対策についての情報を得られることが出来ました。検討して必要なら対応したいと思います。

関連するQ&A

  • SQL Server 2008 R2 のメモリ

    SQL Server 2008 R2 の使用環境は Xeon E5540 2.53GHz の内1コアを割り当てています。 メモリは4GB、Windows 2008 R2 Server 64bit です。 同時接続数は高々20に満たない程度なのですが、元々ここで質問させていただいた巨大なテーブル自体、サイズが4GBを超えていますので、メモリ不足は当初から懸念しておりました。 ここでご教授いただいたSQL Server 2008 R2 の推奨スペックから考える限り、メモリ不足は深刻かと思われるのですが、実際問題としてどの程度搭載してやれば快適とまでは行かないまでも、そこそこ不自由なく動作するものでしょうか? (多ければ多いほど良いというのは100も承知なのですが、諸般の事情であまり予算が裂けません)

  • SQL Serverで使用されるメモリについて

    お世話になります。 Windows Server2012 Standard SQL Server2008 R2 Standard 当該サーバー機のスペックは CPU:Intel Xeon E5-2403 1.80GHz メモリ:8GB です。 タスクマネージャーで使用メモリを確認したところ、常にSQL Server だけで3.8GB程使われており、トータルでは5.3GBとなっておりました。 ※67~8%が常に使われている状況。 SQL2008のシステム要件を見てみると、最小で1GB以上、推奨は 4GB以上となっております。 <質問> SQLで使用されるメモリサイズは、積んでるメモリサイズによって 変わるのでしょうか。 例えば、元々4GBしか積んでなければ、SQLでは2GBぐらい使われるとか。 今回、サーバーにてパフォーマンス監視をすることとなり、社内規定で メモリは「1時間の平均で60%を超えたら警告」となっております。 ですが、現状は常に67~8%なので既に超えている状況です。 調べたところ以下のような情報がありました。 https://support.microsoft.com/en-us/kb/321363/ja?wa=wsignin1.0 オプションで使用メモリの上限値を設定できるようなので、ここで設定する ことにより、60%未満に抑えられそうなのですが、できればメモリは制限せずに 使えるだけ使いたいところです。 ご教示の程、宜しくお願い致します。

  • SQL Server 2008 R2

    OSがWindows Vista SP2 のPCに弥生販売11をインストールしようとしましたが、その中の SQL Server 2008 R2 がインストール出来ずに途中でエラーがでます。 解決方法をご存じありませんか?

  • いきなりSQLサーバーに接続できなくなりました。

    OS:vista SQL:Microsoft SQL Server 2005(無料版) 昨日までなんの問題もなくSQLサーバーに接続できていたのですが 今日パソコンをつけたら(シャットダウンしていた) SQLサーバーに接続できなくなりました。 何が起きたのかわかりません。 何も設定は変えていません。 エラーメッセージは ___________________________________________________ SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: 共有メモリ プロバイダ, error: 40 - SQL Server への接続を開けませんでした) (.Net SqlClient Data Provider) Error Number: 2 Severity: 20 State: 0 ___________________________________________________ です。 参考に画像を添付します。 上:SQLサーバー接続時のエラー 下:アクセスからSQLサーバーのテーブルにリンクしているのですが テーブルが開けない時のエラー もしかしたらパソコンを落とした時ウインドウズアップデートが発生していたのかもしれません。 初心者の為、何が起きたのかよくわかりません。 ここからどうしたらよいか教えてください。 よろしくお願いします。

  • SQL SERVER2008の質問です

    SQL2008 EXPRESSで作成したバックアップをSQL2008 R2 EXPRESSにデータベースの復元で問題なかったのですが、SQL2008 R2で修正があったので修正したあと、2008R2でバックアップを取ってSQL2008に復元しようとしたらエラーになります。 データベースはバージョン10.50.1600を実行中のサーバーにバックアップされました。このバージョン(バージョン10.00.1600を実行)とは互換性がありません。 と言うメッセージが出ます。 両方をSQL2008R2にすれば問題ないのでしょうが、SQL 2008R2のバックアップをSQL2008に復元する方法をご存知の方は教えてください。 宜しくお願い致します。

  • SQL Server 2008 R2の質問です。

    PCにSQL Server 2008 R2が インストールできなくて困っています。 PCA会計Xの体験版をインストールする前に SQL Server 2008 R2のインストールが 始まり、途中でエラーになり インストールできません。 MSXML6がないことを確認したり NET Framework 3.5 SP1 、 Windows インストーラー 4.5、 Windows PowerShell 1.0はインストールしました。 OSはWindows XPと7です。 Vistaは普通にインストールできました。 よろしくお願いします。

  • SQLサーバー接続について

    DB初心者です。 ODBCからSQLサーバーへのアクセスを設定したく、奮闘しておりますが うまくいかず困っております。 先方から支給されたのは、 DB名、ID、パスワード、ホスト名、ポート番号、MySQLのバージョン5.0.90で、 その通り設定したつもりが、以下のようなエラーが出てソース作成できません。 --- 接続できませんでした。: SQLState: '01000' SQL Server エラー: 11001 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(Connect()). 接続できませんでした。: SQLState: '08001' SQL Server エラー: 6 [Microsoft][ODBC SQL Server Driver][TCP/IPSockets]指定された SQL Server が見つかりません。 --- エラー番号で検索してみても原因がわからず・・・ 詳しい方いらっしゃいましたらお願いいたしますm(__)m

  • VB6 SQLサーバー 2005 

    お世話になります。 今まではVB6 + SQLサーバー 2000 に ADO を用いて接続できたいたのですが、 今回 DBをSQL サーバー 2005 Express Edition に替えたところ上手く接続 できません。 「実行時エラー 2147467259  データーソース名および指定されたドライバが見つかりません。」 とエラー表示されます。  

  • SQLサーバに接続できません

    こんにちは。 昨日、会社のWEBサーバの設定を変えました。 いままでは全員が一つのID&PWでそのサーバにアクセスしていたのですが、セキュリティーを考え、一人につき1ID&PWを与えて、それぞれがアクセスできるフォルダを制限しました。 そこまではよかったのですが、そのあとあるクライアントパソコンで ショップの売り上げ情報などをネットからダウンロードしようとしたところ、 接続できませんでした。  SQL state:"28000" SQL serverエラー:18456 [microsoft][ODBC SQL server driver][SQL server] ユーザーはログインできませんでした。 というエラーメッセージがでてしまいます。 エラーの意味もよくわからず、どうにもできません。 パソコン初心者なので、質問自体にも至らない点があるかもしれませんが、よろしくお願いいたします

  • SQL Server 2005 ログオンアカウント変更後、エージェント開始できない

    SQL Serverのログオンアカウントを変更すると、SQL Server Agentが開始できなくなってしまいます。 OS:windows 2003 server DB:SQL Server 2005 (1)サービスから、SQL Serverのログオンアカウントを「ローカルシステムアカウント」からWINDOWSの「ユーザーアカウント」に変更。  「ユーザーアカウント」はAdministratorsグループのユーザー。  このユーザーはSQL ServerのWindows認証に設定済み。 (2)SQL Serverを停止。同時にSQL Server Agentも停止される。 (3)SQL Server開始。正常に開始。 (4)SQL Server Agent開始。数秒したら停止。  イベントログのエラーの内容:  SQLServerAgent could not be started (reason: SQLServerAgent は SysAdmin として SQLServer に接続できる必要がありますが、'(不明)' は SysAdmin ロールのメンバではありません). (5)SQL Server AgentのログオンアカウントをSQL Serverのログオンと同じ「ユーザーアカウント」に変更。 (6)SQL Server Management Studio→セキュリティ→ログイン→「ユーザーアカウント」→プロパティ→サーバーロールより「sysadmin」にチェックをする。 (7)SQL Serverを停止。 (8)SQL Server開始。正常に開始。 (9)SQL Server Agent開始。数秒したら停止。(4)と同様のエラーが発生。 (10)マシン再起動を実行。同様に(4)のエラーが発生。 SQL Serverのログオンアカウントを変更すると、SQL Server Agentにどのユーザーアカウントを設定しても開始できなくなってしまいます。 何か設定に不備があるのでしょうか? 設定の変更箇所、変更方法が知っている方教えてください。