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

一项更改是使用 curl 的计步器,以便 curl 执行迭代而不是 bash。这应该会加快速度,因为您将避免 bash 解释器和进程启动时间。

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