提高服务器上预缓存文件的效率

时间:2012-08-01 20:45:29

标签: bash curl performance-testing

我是一名实习生,正在测试一个透明的缓存解决方案,我们已经在我们实验室的服务器上进行了测试。为此,我正在预先缓存一些文件,以进行涉及新内容和已缓存内容的测试。

但是,我们在那台机器上有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时得到的结果大致相同。对于六百万个文件,这将是很长一段时间。

有谁知道更好的方法吗?

非常感谢, RS

1 个答案:

答案 0 :(得分:1)

一个变化是使用curl的步数计数器,以便curl执行迭代而不是bash。这应该加快速度,因为你将避免使用bash解释器并处理开始时间。

curl x.x.x.x/originDir/test16k_[0-5999].txt