C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: .NETリモーティング利用時に処理速度が著しく低下


(過去ログ 91 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■54729 / inTopicNo.1)  .NETリモーティング利用時に処理速度が著しく低下
  
□投稿者/ tick (1回)-(2010/10/30(Sat) 23:29:12)

分類:[C#] 

.NETリモーティングを利用してTCPを使い分散アプリケーションを作成している者です。
本件の内容ですが、リモーティングを利用して外部(LAN)と接続されたPC間で通信を行うプログラムなのですが、
非常に処理速度が遅くなってしまいます。もちろんLANで接続しない場合と比べた場合、速度が低下するは理解出来るのですが、
ローカル内(1台のPC)でサーバとクライアントを同時に実行した場合と比べ21倍ほどの速度差があります。
プログラムの内容は、各アプリケーションがクライアント機能とサーバ機能を持ったP2Pの様な構造です。
実際のフローとしましては、

1.[PC1のクライアント] → [PC2のサーバ]
2.[PC2のサーバがスレッド生成/処理開始]
3.[PC2のサーバがクライアントから渡されたデリゲートを介して] → [PC1のクライアント]

という実装になっています。
ローカル内(1台のPC)の状態で実験した時のフローは、

1.[PC1のクライアント] → [PC1のサーバ]
2.[PC1のサーバがスレッド生成/処理開始]
3.[PC1のサーバがクライアントから渡されたデリゲートを介して] → [PC1のクライアント]

他のリモーティングの設定としましては、

System.Runtime.Serialization.Formatters.TypeFilterLevel.Full をListener側とClient側に設定(クライアントから渡されたデリゲートをサーバが実行するため)
ChannelServices.RegisterChannel の ensureSecurity は false

また、このプログラムをローカル内(1台のPC)で動かした場合はCPU使用率は80%ほどなのですがLANを介した場合アイドル状態ほどしか使用率は上がらず、非常に低速ながら処理は進んでいる模様です。
何らかのボトルネックが発生していると考えられるのですが、探すことが出来ないでいます。御存知の方はご指摘頂ければ幸いです。

引用返信 編集キー/
■54731 / inTopicNo.2)  Re[1]: .NETリモーティング利用時に処理速度が著しく低下
□投稿者/ やじゅ (1769回)-(2010/10/31(Sun) 13:31:19)
やじゅ さんの Web サイト
No54729 (tick さん) に返信
> また、このプログラムをローカル内(1台のPC)で動かした場合はCPU使用率は80%ほどなのですがLANを介した場合アイドル状態ほどしか使用率は上がらず、
> 非常に低速ながら処理は進んでいる模様です。
> 何らかのボトルネックが発生していると考えられるのですが、探すことが出来ないでいます。御存知の方はご指摘頂ければ幸いです。

環境なのかソフトが原因なのか切り分けしてみてはどうでしょうか

・別の環境で使用してみる。
・アンチウィルス系のソフトやファイヤーウォールを切ってみる。
・別の.NETリモーティングソフトを動かしてみる。
・TCP Monitor Plus や Microsoft Network Monitor などのソフトを使いTCPを監視してみる。
 TCP Monitor Plus:http://hp.vector.co.jp/authors/VA032928/index.html#tcpmon
 Microsoft Network Monitor:http://www.forest.impress.co.jp/article/2008/09/19/msnetworkmonitor32.html

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -