トップ回答者
Winodws 2008 R2 、SQL Server 2008 R2 Systemのハンドル数が日々増加し、最後にはBIが使用不可になる

質問
-
こんにちは。
どなたか教えてください。
SQL Server 2008 R2を使用し、見える化を行っているサーバーで
Systemのハンドル数が日々増加し続け、そのまま約1ヵ月ほど経過させますと
総合ハンドル数が100,000を超えたあたりでSQL server ReportingServiceの使用が不可能な状態となります。
見える化画面を表示しているブラウザ画面に表示されるエラーは
「システムのバッファー領域が不足しているか、またはキューがいっぱいなため、ソケット操作を実行できませんでした。 127.0.0.1:80」
です。
上記エラーに対応したパッチとのことで以下を適用しましたが、効果はなくハンドル数の増加は続いている状態です。
https://support.microsoft.com/ja-jp/kb/2577795
また、BIが使用不可になった日のサーバーのイベントログには、以下ログが必ず残っています。
「ターミナル サーバーのセキュリティ層で、プロトコル ストリームにエラーが検出され、クライアントが切断されました。 クライアント IP:x.x.x.x。」
イベントID:56 ソース:TermDD
尚、Process Explorerは本件の原因究明の為何度も試みていますが、何度見ても原因がどこにあるのか、あたりをつけることさえもできません。
足りない情報があれば追記致します。
どうか、宜しくお願いいたします。
回答
-
ALF_SORAさん、
こんにちは。 Koba33です。サイトの調査方法の件ですが、大した調査でもありませんが経験的にUSのサイトの方が
情報が得やすいので、以下のサイトで日本語のエラーメッセージの英語版を探します。→ An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
後はGoogle先生で英語のメッセージを検索し、引っかかったサイトを上から順に読んでいくだけです。
ご紹介させて頂いたサイト
Windows 2008 R2 64Bit system lacked sufficient buffer spaceの4行目に「Approximatly every 3-4 weeks...」というフレーズがあると思いますが、
これが1ヶ月毎に発生する的な感じかと解釈しました。これでTcpIPの設定及びレジストリのMaxUserPortが怪しいとなりますので、
今度は日本語のサイトで引き直し情報を補完します。参考まで。
-
ALF_SORAさん
こんにちは。 Koba33です。
日本のTechNetの過去の質問を見ると、本件類似の現象はリモートデスクトップ関係で挙げられています。
Remote Desktopを使用したときEventLogにソース:TermDD イベントID:56 で ログされるRDPは使われていますか?
また、対処方法としてはRDPの証明書の設定 or NICの設定が挙げられています。(前回のリンク通り)
SSRSを使っていて気付くという点からRDPの設定というよりはNICが疑わしいと思いますが如何でしょう?
先日もリンクを張りましたが、以下のリンクが参考になるかと思います。
event ID 56, termDDNICのドライバーが最新であることが前提になりますが、NICのSNPの設定を無効にすると効果があるかもしれません。
(↑のリンクも同じことを言っています)パラメータの確認のため当該サーバーのコマンドプロンプトで以下を叩いてみてください。
netsh interface tcp show global
私の方では以下の設定です。赤枠内はdisabledを設定しており他は初期値です。
日本語では以下のサイトが参考になります。
Windows 7 のネットワークが遅い時に試す 3 つの方法
参考まで。
-
ALF_SORAさん、
こんにちは。 Koba33です。幾つかの質問に回答頂き有難うございます。
頂いた回答を読みながら接続数の問題かと思い始め、> システムのバッファー領域が不足しているか、またはキューがいっぱいなため、ソケット操作を実行できませんでした
というエラーとReboot後1ヶ月で再発するという内容から調べてみました。
英語になりますが、
Windows 2008 R2 64Bit system lacked sufficient buffer space↑の投稿が状況としては近いかなと…
端的に言うと、Httpのセッション数を捌けなくなっておりクライアント側からはビジー状態に見えるようです。
(Systemのハンドル数が増大するかどうかまでは読み取れませんでした…)対策としてはレジストリの編集となり、残念ながらサーバーの再起動を伴います。
↑の英語の投稿でも操作方法は記述してありますが、日本語では以下の記事が参考になります。
(操作の内容は同じです)Windows:OSが使用可能な通信ポート数の制限により、通信が困難になる問題
以下のレジストリ項目となります。
- MaxUserPort
- TcpTimedWaitDelay
レジストリの変更を伴うので適用は容易でないかと思いますが、トライアル頂ければ幸いです。
以上、よろしくお願いいたします。
すべての返信
-
こんにちは。 Koba33です。
私もWindows Server 2008R2でReporting Services (SSRS)を展開しているので、
気になって調べてみましたが、本現象はSSRSとは直接関係ない気が…
> イベントID:56 ソース:TermDD
を頼りに調べますとリモートデスクトップ関係かNicの設定関係に行きついているように見えます。
TermDD EventID:56 ターミナル サーバーのセキュリティ層で、プロトコル ストリームにエラーが検出され、クライアントが切断されました。の対処
ALF_SORAさんが運用されているサーバーで提供している役割サービスを列挙してみては如何でしょうか?
(IIS、SQL Server …等)また、リソースを食いつぶしているプロセスは何でしょうか?
解決できるかどうか分かりませんが、参考にさせてください。
- 編集済み Koba33 2015年10月13日 0:37
-
Koba33様 ありがとうございます。
現象が発生しているサーバーのメインの役割がSSRSを使用した見える化の為、困っている内容から質問する場所を決めてしまいました。
紛らわしくしてしまいすみませんm(_ _)m
提供しているサービスを列挙 についてですが、以下です。
・Webサーバー(IIS)
(このような答え方で宜しいですか?SSRS、SSISもここにあげる対象ですか?)
尚、リソースを食いつぶしているプロセスは「System」です。
Process Explorerでこの「System」をダブルクリックで開いて見てみても、目でみて何が問題となっているのかわからないです。
現在は限界を迎えた時にサーバーを再起動する方法しかなく、その間BIを使用しているお客様の業務が停滞してしまう状況です。
最悪はその停滞する時間を少しでも短くする対応でも良いので、ご存じのことがあれば教えていただけると大変助かります。
宜しくお願いいたします。
-
ALF_SORAさん
こんにちは。 Koba33です。
日本のTechNetの過去の質問を見ると、本件類似の現象はリモートデスクトップ関係で挙げられています。
Remote Desktopを使用したときEventLogにソース:TermDD イベントID:56 で ログされるRDPは使われていますか?
また、対処方法としてはRDPの証明書の設定 or NICの設定が挙げられています。(前回のリンク通り)
SSRSを使っていて気付くという点からRDPの設定というよりはNICが疑わしいと思いますが如何でしょう?
先日もリンクを張りましたが、以下のリンクが参考になるかと思います。
event ID 56, termDDNICのドライバーが最新であることが前提になりますが、NICのSNPの設定を無効にすると効果があるかもしれません。
(↑のリンクも同じことを言っています)パラメータの確認のため当該サーバーのコマンドプロンプトで以下を叩いてみてください。
netsh interface tcp show global
私の方では以下の設定です。赤枠内はdisabledを設定しており他は初期値です。
日本語では以下のサイトが参考になります。
Windows 7 のネットワークが遅い時に試す 3 つの方法
参考まで。
-
Koba33様 ありがとうございます。
RDP使用しております。
BIがまったく見られない状態であってもこのログが残っているタイミングでもRDPで接続し調査をしているので、Koba33さんの仰るように可能性は低いと思います。
コマンド実行したところ以下でした。
↓↓↓↓
TCP グローバル パラメーター
----------------------------------------------
Receive-Side Scaling 状態 : disabled
Chimney オフロード状態 : disabled
NetDMA 状態 : disabled
Direct Cache Acess (DCA) : disabled
受信ウィンドウ自動チューニング レベル : normal
アドオン輻輳制御プロバイダー : ctcp
ECN 機能 : disabled
RFC 1323 タイムスタンプ : disabled -
Koba33様 ありがとうございます。
RDP使用しております。
BIがまったく見られない状態であってもこのログが残っているタイミングでもRDPで接続し調査をしているので、Koba33さんの仰るように可能性は低いと思います。
コマンド実行したところ以下でした。
↓↓↓↓
TCP グローバル パラメーター
----------------------------------------------
Receive-Side Scaling 状態 : disabled
Chimney オフロード状態 : disabled
NetDMA 状態 : disabled
Direct Cache Acess (DCA) : disabled
受信ウィンドウ自動チューニング レベル : normal
アドオン輻輳制御プロバイダー : ctcp
ECN 機能 : disabled
RFC 1323 タイムスタンプ : disabledALF_SORAさん
こんにちは。 Koba33です。NICのSNPの設定は問題なさそうですね。
さて…何でしょうか…>尚、リソースを食いつぶしているプロセスは「System」です。
前回のご回答でリソースを消費しているプロセスは「System」と記載されておりますが、
これって、タスクマネージャ上で「NT Kernel & System」のことですか?
当方のサーバーでは全くその傾向が無いので、幸いにも?再現出来ていませんが、
もう少し調べてみます。お役に立つか分かりませんが宜しくお願いします。
-
ALF_SORAさん
こんにちは。 Koba33です。度々すいません。基本的な質問をすることを忘れておりました。
①本現象が発生(認識)したのはいつからか?(XX年XX月~)
②↑の直前くらいでシステムにインストール/構成変更したサービスがあるか?
③本現象とSSRS/SSIS等の接続状況に相関があるか?
(いっぱいアクセスされると現象が加速するか?)
※その場合は重くなるプロセスは「System」なのか?…④全用途の接続最大数がどれくらいか?(ザックリで)
⑤可能であればイベントビューアーで当該エラー発生時のLogを教えてください。宜しくお願いいたします。
- 編集済み Koba33 2015年10月13日 9:06
-
Koba33様 本当ありがとうございます。
タスクマネージャとProcess Explorer見る限り
「System」としか表示されていなく、「NT Kernel & System」が見つけられないです。
ご質問いただきました件以下に記載します。
①本現象が発生(認識)したのはいつからか?(XX年XX月~)
→2015年3月~
②↑の直前くらいでシステムにインストール/構成変更したサービスがあるか?
→2015年1月に、それまで使用していたWindowsServer2003R2、SQLServer2005R2から現在のサーバーにリプレースしています
③本現象とSSRS/SSIS等の接続状況に相関があるか?
(いっぱいアクセスされると現象が加速するか?)
※その場合は重くなるプロセスは「System」なのか?…
→現象発生当初よりも、正常でいられる期間が短くなってきました。
それは見える化画面増えることと、接続する台数が増えることと比例しているように思います。
しかしハンドル数以外に、CPU使用率や空きメモリ等他の監視対象の項目では閾値を超えるようなこともなく正常に見えています。
Systenのハンドル数だけが右肩上がりです。
④全用途の接続最大数がどれくらいか?(ザックリで)
→100ほどです。
⑤可能であればイベントビューアーで当該エラー発生時のLogを教えてください。
→・ターミナル サーバーのセキュリティ層で、プロトコル ストリームにエラーが検出され、クライアントが切断されました。 クライアント IP:x.x.x.x。
・システムのバッファー領域が不足しているか、またはキューがいっぱいなため、ソケット操作を実行できませんでした
あとは以下がひたすら数分おきに繰り返されている。。。
・Microsoft Software Shadow Copy Provider サービスは 停止 状態に移行しました。
・Volume Shadow Copy サービスは 実行中 状態に移行しました。
・Microsoft Software Shadow Copy Provider サービスは 実行中 状態に移行しました。
・Volume Shadow Copy サービスは 停止 状態に移行しました。
尚、レポートマネージャ(http://[IP]/Reports/Pages/Folder.aspx)に接続すると「リモートサーバーに接続できません。」が表示されます。また、Oracleから1分間隔でSQLserverにデータのレプリケーションをしており、限界状態になった時には以下のエラーログが残っていました。
「2015-03-20 02:45:15 [FATAL] [ 7520] SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。
サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。
(provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした)宜しくお願いいたします。
- 編集済み ALF_SORA 2015年10月13日 9:57
-
ALF_SORAさん、
こんにちは。 Koba33です。幾つかの質問に回答頂き有難うございます。
頂いた回答を読みながら接続数の問題かと思い始め、> システムのバッファー領域が不足しているか、またはキューがいっぱいなため、ソケット操作を実行できませんでした
というエラーとReboot後1ヶ月で再発するという内容から調べてみました。
英語になりますが、
Windows 2008 R2 64Bit system lacked sufficient buffer space↑の投稿が状況としては近いかなと…
端的に言うと、Httpのセッション数を捌けなくなっておりクライアント側からはビジー状態に見えるようです。
(Systemのハンドル数が増大するかどうかまでは読み取れませんでした…)対策としてはレジストリの編集となり、残念ながらサーバーの再起動を伴います。
↑の英語の投稿でも操作方法は記述してありますが、日本語では以下の記事が参考になります。
(操作の内容は同じです)Windows:OSが使用可能な通信ポート数の制限により、通信が困難になる問題
以下のレジストリ項目となります。
- MaxUserPort
- TcpTimedWaitDelay
レジストリの変更を伴うので適用は容易でないかと思いますが、トライアル頂ければ幸いです。
以上、よろしくお願いいたします。
-
Koba33様 朝から晩まで本当にありがとうございます。
セッション数が超えた為にエラーとなる
はエラーメッセージからも想像したのですが、SQLServer2008R2で100程度の接続でエラーになるとは思えなかった為、除外していました。が、今一度確認してみたいと思います。
仰る通りレジストリの変更は容易ではない為、、、検証環境にてトライしてみます。
が、お伝えしていなかったので申し訳ないのですが、同一環境のサーバーが別に十数あり、現象が発生するサーバー以外ではハンドル数の増加はまったく無い状況です。
ただ、同一環境であっても利用状況が該当のサーバーとその他のサーバーでは比ではない為、あまり比較にはならないです。
検証してみます。
ありがとうございます。- 編集済み ALF_SORA 2015年10月13日 13:56
-
ALF_SORAさん、
こんにちは。 Koba33です。サイトの調査方法の件ですが、大した調査でもありませんが経験的にUSのサイトの方が
情報が得やすいので、以下のサイトで日本語のエラーメッセージの英語版を探します。→ An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
後はGoogle先生で英語のメッセージを検索し、引っかかったサイトを上から順に読んでいくだけです。
ご紹介させて頂いたサイト
Windows 2008 R2 64Bit system lacked sufficient buffer spaceの4行目に「Approximatly every 3-4 weeks...」というフレーズがあると思いますが、
これが1ヶ月毎に発生する的な感じかと解釈しました。これでTcpIPの設定及びレジストリのMaxUserPortが怪しいとなりますので、
今度は日本語のサイトで引き直し情報を補完します。参考まで。