使用cassandra-stress工具讀取或寫入Cassandra集羣中的節點時,會出現一個名爲no-warmup的選項。那是什麼意思?cassandra-stress中沒有預熱選項讀取或寫入
使用該選項時是否會有任何性能改進?或者它與數據的延遲有什麼關係?
使用cassandra-stress工具讀取或寫入Cassandra集羣中的節點時,會出現一個名爲no-warmup的選項。那是什麼意思?cassandra-stress中沒有預熱選項讀取或寫入
使用該選項時是否會有任何性能改進?或者它與數據的延遲有什麼關係?
從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的「熱身」階段測試您的延遲時間。
非常感謝Aaron :) –