基本的に私は単一のマスターシステムと3つのスレーブシステムを持っています。データ分割の問題を本質的に解決するため、要求/応答フェーズを使用してコンテンツを3つのクライアントシステムに送信しました。3つのクライアントシステムにコンテンツを送信した後、REQ / REPトポージーを担当するソケットを閉じ、3つのシステムすべてからコンテンツを受信するために、個々のスレーブシステムとペアになる別のソケットの束を作成しました。コード全体をローカルホストで実行しましたが、問題はなく、クライアントシステムの1つからマスターシステムに40MBのデータセットを送信しようとしても、すべてがスムーズに進みました。
問題は、ラボでこれをLAN経由で実装しようとしたときです。
REQ / REPフェーズはスムーズに実行されるため、基本的にすべてのクライアントシステムがデータセットをフェッチして処理します。
大量のデータセットを処理しようとすると、クライアントとの個別のPAIRが失敗します(40MBのように、コンテンツを辞書にロードし、辞書オブジェクトのサイズが24MBになっているため、大きくは考えていません)。理由は処理されません。
LAN上での動作とシステム上での動作が異なる理由がわかりません。
私がLANで使用しているシステムは、2GBのRAMを搭載したAMDデュアルコア64ビットです(4つのシステムすべて)
コードを実行することに興味がある場合:
マスターシステムコード:http ://codepad.org/5uVCEb42
Salve1:http ://codepad.org/LNmi9vu2
Slave2:http ://codepad.org/0vmEAJYc (これはファイルから40MBのコンテンツを取り込み、最終的にマスターシステムに渡します)
Slave3:http ://codepad.org/d565lgiv