2017-11-28 27 views
-1

SFTPのアップロード用にRenci SSH.Netライブラリを使用していましたが、2つの別々のスレッドを使用して2つの異なるサーバーに同じファイルを同時にアップロードすると面白い動作に慣れました。Renci SSH.Net同時SFTPアップロードのパフォーマンス

ファイルを1台のサーバーにロードすると、転送速度が〜1500KB/sになります。これは、サーバーの予想通りです。

2つのサーバーに同じファイルを同時に転送すると、各サーバーに〜650KB /秒の転送速度が得られます。

これはローカルのGbEネットワーク上にあり、PC上のNICが少なくとも7MB/sの能力を持ち、ボトルネックではないことがわかっています。また、プロセッサにほとんど登録されていないため、CPUにバインドされているようには見えません。

私はすでに試したいくつかのこと:

  • 同じファイルを参照する各クライアントのためのFileStreamを作成します。
  • ファイルをバイト配列に読み込み、クライアントごとにMemoryStreamを作成します。

このライブラリには何らかの種類のスレッド競合の問題がありますか?

+0

他のSFTPライブラリまたはスタンドアロンSFTPクライアントを使用したほうがよい結果が得られますか? –

+0

私はWinSCPでテストして、単一のSSH.Net接続よりもはるかに優れたパフォーマンスを見出しました。私は最新のNuGetリリースに更新し、すべてが解決されました。 – Chris

答えて

0

最新のNuGetリリース(2016.1.0)の問題を解決できました。パフォーマンスが大幅に向上しました。