2016-04-15 50 views

回答

3

從DataStax開發者博客,特別是喬納森·埃利斯後標題爲How not to benchmark Cassandra

測試對像卡桑德拉基於JVM的系統需要足夠長的時間,讓JVM來‘熱身’和JIT編譯字節碼到機器碼。 cassandra-stress有一個「守護進程」模式,可以很容易地將預熱階段與實際測量的結果分開;對於其他工作負載生成器,最好的辦法是僅僅提出足夠的請求,使得熱身可以忽略不計。

本質上,當您的查詢通常在Cassandra上運行時,JVM「預熱」期間會在節點啓動後不久通過。當你運行cassandra-stress而不讓它有機會正確編譯它所需要的一切時,你的查詢延遲將會被扭曲(可能更高)。

如果你有興趣,這個問題談一點關於預熱階段,問題就可以引起,以及解決方案來處理它:Technique or utility to minimize Java "warm-up" time?

因此,指定「沒有熱身「會有效地毀掉你的測試結果。也就是說,除非您專門試圖在JVM的「熱身」階段測試您的延遲時間。

+1

非常感謝Aaron :) –