1

私はインターンとして、ラボのサーバーに導入した透過的なキャッシュ ソリューションをテストしています。そのために、新しいコンテンツと既にキャッシュされているコンテンツを含むテスト用に、いくつかのファイルを事前にキャッシュしています。

ただし、そのマシンには 48 GB の RAM があり、テストには小さな (16 KB) ファイルを使用しているため、実際に TC ソリューションに戻るために、これらのファイルを約 600 万個キャッシュしています。うわぁ。

この事前キャッシュに管理可能な時間がかかるように、一連の並列プロセスをスピンオフすることを期待して、次の bash スクリプトを実行しています (ダミー IP は無視してください)。

for ((i=0;i<1000;i++)); do for ((j=$((6000*i));j<$((6000*$((i+1))));j++)); do curl x.x.x.x/originDir/test16k_${j}.txt > /dev/null 2>&1 & done; wait; done;

ただし、10 Gbps の光ファイバーを介して、数秒ごとに約 1000 ファイルしかキャッシュされていませんcurls。600 万個のファイルの場合、これにはかなりの時間がかかります。

これについてもっと良い方法を知っている人はいますか?

どうもありがとう、RS

4

1 に答える 1

1

変更の 1 つは、curl のステップ カウンターを利用して、curl が bash の代わりに反復を行うようにすることです。これにより、bash インタープリターとプロセスの開始時間が回避されるため、速度が向上するはずです。

curl x.x.x.x/originDir/test16k_[0-5999].txt
于 2012-08-02T02:28:50.047 に答える