また、SASに関する質問のためにSEネットワーク外のサイトrunsubmit.comにこの質問を掲載しました。なぜprocのアップロードが遅いですか?
私が使用するサーバーは2つあります。私がsasデータセットをproc upload経由で転送すると、約2.5MB/sになります。しかし、ネットワークドライブとして1台のサーバーにドライブをマップし、そのファイルをコピーアンドペーストすると、80MB/s(同じギガビット接続を介して)の速度がさらに速くなります。
誰もがこれを引き起こしている可能性があり、それを解決するために、または回避策として何ができるのでしょうか?
ネットワークドライブを他の2台にマップすることができない第3のサーバーもあります.SASベースのソリューションが必要なのは、SASがファイルを転送する唯一の手段です。このマシンからの個々の転送は2.5MB/sで実行されますが、2.5MB/sで複数の転送をすべて並行して行うことが可能です。
ファイル名とデータステップによるSAS FTPは、proc uploadを使用するよりも速くなりますか?私は次にこれを試してみるかもしれませんが、私はこれを使わないほうがいいと思います。私たちはSAS 9.1.3しか持っていないので、SFTPは利用できません。
アップデート - さらなる詳細:
- 私が産卵に接続しているんだ、と私はそれが(私がログに見て思い出した内容に基づいて)「SAS独自の暗号化」を使用していますね。
- アップロードは、Windowsクライアント - > Windowsの最初のケースではリモート、Unixのクライアント - > 2番目のケースではWindowsのリモートです。
- 問題のSASデータセットは圧縮されています(つまり、外部圧縮ユーティリティではなくSASによって)。
- proc uploadを使用してバイナリモードで外部ファイル(.bz2)を転送する場合の転送速度は似ています。潜在的に十分に速く、しかし -
- すべてのサーバーは、エンタープライズクラスのコントローラ(RAIDで最小8台のドライブ10)
潜在的なソリューション
- パラレルPROCのUPLOADで扱う非常に高速なディスクアレイを持っています非常にCPUが重い
- PROC COPY - PROC UPLOADよりもはるかに高速で、CPUオーバーヘッドははるかに少ない
- SAS FTP - 安全ではない、不明な速度、不明なCPUオーバーヘッド
アップデート - テスト結果
- パラレルPROCのUPLOADは:セットアップ*とCPUの多くのかなり多くを含むが、合理的にうまく機能します。
- PROC COPY:セッションごとにproc uploadとまったく同じ転送速度と、より多くのCPU時間が使用されます。
- FTP:約20倍速く、最小限のCPU(100MB/s対2.5MB/sの並列procアップロード)。
は、私が最初に試してみました*以下:
ローカルセッション - >ソースサーバ上のリモートセッション - > nの転送先サーバー上のリモートセッション - >先サーバー上のn個の再結合
これによりn回の同時転送が発生しましたが、元のサーバーのCPUボトルネックが原因で、それぞれが元の速度の1/nで実行されました。それはシングル転送のn倍の帯域幅で動作するように取得するには、私はそれを設定する必要がありました:
ローカルセッション - > nのソースサーバ上のリモートセッション - リモート> 1 セッション先サーバー上の各 - >先サーバー
SAS FTPコードの再結合のn個
filename source ftp '\dir1\dir2'
host='servername'
binary dir
user="&username" pass="&password";
let work = %sysfunc(pathname(work));
filename target "&work";
data _null_;
infile source('dataset.sas7bdat') truncover;
input;
file target('dataset.sas7bdat');
put _infile_;
run;
特に、CONNECT Spawnerやその他の方法に接続している場合は、SASサーバー環境の詳細とCONNECTの質問を更新してください。 Spawnerを使用している場合は、暗号化を使用しているかどうかを確認します。 – BellevueBob
質問が更新されました - それ以外の具体的な詳細は有用でしょうか? – user667489
アップロードするSASデータセットは圧縮されていますか?そして私はすべてがWindowsであると推測しています、正しいですか?あるサーバーから別のサーバーにコピーしているとしたら、サーバーAからのSAS/CONNECTセッションでサーバーBに接続しているということですか? – BellevueBob