質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

3回答

5301閲覧

非ページプールの枯渇

nobysanz

総合スコア42

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2016/05/11 09:07

非ページプールについて質問です。
C#で作成したプログラムが連続稼働しているPCが、イベントログに以下のメッセージを出力され、エクスプローラや、DOSプロンプトなどの動作ができない状態となりました。
C#で作成したプログラムは、問題なく動いている状態です。

イベントログに出力されたメッセージ
「エラー プールが空であるため、サーバーはシステムの非ページプールから割りあてることができませんでした。」

非ページプールは、カーネルとデバイスドライバーで使用する領域と記載があったので
Windows の限界に挑む: ページ プールと非ページ プール

何等かのドライバーがリークしていると考察しています。
非ページプールは、C#アプリケーションでも利用していることは、考えられるでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こんにちわ。

C#でも、ネイティブDLLなどのリソース解放を忘れるとリークするので、それではないでしょうか。
基本的に、C++/CLIなどでラッパDLLを挟んでいない限り、Disposeメソッドもないので、
deleteするしかないのですが、ソケットなどのWin32API使用時に何かしら解放し忘れているのではないでしょうか。
nobysanzさんのアプリが悪さをしている、という仮定ですが…。

投稿2016/05/14 06:29

mugicya

総合スコア1046

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobysanz

2016/05/17 04:10

コメントありがとうございます! ソケットまわりを確認してみます。
guest

0

こんにちは。

何等かのドライバーがリークしていると考察しています。

私もそう思います。

非ページプールは、C#アプリケーションでも利用していることは、考えられるでしょうか?

C#が直接非ページ・プールを使うことは考えにくいです。
とは言え、何らかのドライバを多数OpenしてDisposeしないままにしているような場合、間接的に非ページ・プールを事実上リークさせることがあるかも知れません。

投稿2016/05/11 13:59

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobysanz

2016/05/12 04:43

コメントありがとうございます。 間接的な可能性があるということですね 本件が発覚したきっかけは、装置間でソケット通信で疎通確認をおこなっている のですが、疎通ができなくなったのことでした。 定周期にパケットを送受信しています。 まずは、C#で作成したプログラムにてソケットのオープン、クローズの箇所を 確認してみます。
Chironian

2016/05/12 09:19

なるほど。確かに怪しそうですね。 ↓が参考になると思います。 http://aquablue7.blogspot.jp/2013/06/net.html C#におけるリソース・リークの回避方法が記載されてます。 逆にこのような記述(try-finallyでDispose()、もしくは、using)がされてなければ、リークしている可能性があると言うことになります。 ↓ソケットもDispose()する必要があるようです。 https://msdn.microsoft.com/ja-jp/library/cc190731(v=vs.110).aspx
guest

0

先ずは、タスクマネージャで、
詳細タブ、名称欄:各項目のタイトル欄で右クリック、列の選択
で、非表示になっている項目が表示できます。
ページプール、非ページプール等が表示できます。
又は、サードパーティーのタスクマネージャライクなアプリを使って
確認します。

投稿2016/05/11 10:13

編集2016/05/11 10:14
daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobysanz

2016/05/11 10:29

コメントありがとうございます。 タスクマネージャを起動しようとすると、 「アプリケーションを正しく初期化できませんでした」 が表示され、タスクマネージャすら表示されません。
daive

2016/05/11 23:50 編集

もしかして、ダメな状態、不具合発生時になってから立ち上げていますか? 事前に起動しておいてください。 といっても、本当にメモリーリークしていて、リソース不足で、 画面書換さえ困難な場合は、事前起動していても、 タスクマネージャのタブ切替さえ出来なかったりします。 ’ リソース不足について – 第 1 回~第 3 回 https://blogs.technet.microsoft.com/askcorejp/2009/05/29/1/ で、解説されている方法が使用できませんか? Windowsのパフォーマンスモニターの使い方(基本編) http://www.atmarkit.co.jp/ait/articles/0910/30/news114.html ’ メモリーリーク時には、タスクマネージャからみると、 自アプリで巨大なメモリを使っている様に見える。 ⇒比較的、追っかけやすい。 自アプリ以外で、巨大なメモリを使っている様に見える場合 ⇒自アプリから呼出した機能が、メモリーリークしている。 があります。 デバッグリリースで、Debug.Print(Debug.WriteLine) とかしていて、 大量に書き出しがあると、メモリーリークの様に見える場合もあったりします。 ⇒EXCEL-VBAなどの、Debug.Print も該当します。 ’ VS2015を使っていない場合に、 可能であれば、VS2015でデバッグしてみて下さい。 デバッグの機能が向上していて、診断ツールでモニタも可能になっています。 (たぶん、Pro以上の機能)
nobysanz

2016/05/12 04:38

コメントありがとうございます。 >もしかして、ダメな状態、不具合発生時になってから立ち上げていますか? >事前に起動しておいてください。 ご指摘のとおり、ダメな状態で、タスクマネージャを起動しようとしました。 ご案内の情報を確認し、デバックできるか、考えてみます。
daive

2016/05/12 10:53 編集

Process Explorer v16.12:Process Explorerで検索すると日本語情報があります。 https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx 公開時より定期的にバージョンアップされているツールです。 ’ その他お役立ちツール Windows Sysinternals https://technet.microsoft.com/ja-jp/sysinternals/bb545021.aspx 左側の各項目も御見逃しなく。 ’ Hey, Scripting Guy! も機会があれば、検索してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問