2017-10-30 5 views
6

Özellikle ScyllaDB ve Cassandra performans karşılaştırması yapıyorum, özellikle hafızanın etkisine bakarak. Her kullanıyorum makineleri 16GB ve 8 çekirdek var. Dokümanlara bağlı olarak Cassandra varsayılan olarak 4GB Xmx'e ve kalan 12GB'lık dosya sistemi önbelleği olarak kullanacaktır. https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsTuneJVM.html ScyllaDB bunun yerine kendi başına 16GB kullanacaktır.
http://docs.scylladb.com/faq/#scylla-is-using-all-of-my-memory-why-is-that-what-if-the-server-runs-out-of-memoryCassandra Vs ScyllaDB Bellek Kullanımı

Ne merak ediyorum bu adil bir karşılaştırma kurulumu (Scylla için 16GB vs Cassandra için 4GB Xmx) ise nedir? Her birinin tavsiye ettiği şeyin farkına varıyorum ama Cassandra için 8GB Xmx ve ScyllaDB için 8GB daha fazla bir test daha adil olur mu? İş yüküm çoğunlukla yoğun yazıyor ve dosya sistemi önbelleğini her zaman Cassandra'ya yardım edebilmeyi beklemiyorum. ScyllaDB'nin Cassandra'nın büyük bir bağımlılığı ile karşılaştırıldığında neredeyse tüm dosya sistemlerini önbelleğe almasını beklemiyordum.

+0

Cassandra için en az 8 gb kullanın ya da hiç çalışmaz. Düşük gitmeyi asla tavsiye etmem. Sistem önbelleğinin iyi kullanılmasını umarak 12 veya 14gb uzun vadede genel olarak daha iyi göreceksiniz. 4gb korkunç olsa da işe yarayacak. bağlandığınız belge max (min (1/2 ram, 1024MB), min (1/4 ram, 8GB) 'dır, hangisi oldukça iyi (min 8gb) –

+0

Teşekkürler. Testlerimden itibaren Cassandra için büyük bir fark yaratıyor. 4GB Xmx - 8GB Xmx (Xmn'i 1GB'dan 2GB'a çıkardı.) SSTable floşlar ~ 19MB yerine ~ 33MB, yani işlem ve CPU'yu azaltır. Sistem RAM'ini artırmak için muhtemelen daha iyi, ama gördüğüm şeyden 16GB'lık bir makinede RAM'in daha iyi kullanılmasının sistem önbelleği değil yığınta daha fazla olduğunu kabul edersiniz 16GB'lık bir makine için bir açıklama olmasa da (min (1/2 ram, 1024MB), min (1)/4 ram, 8GB) = max (1GB, 4GB) = 4GB, 8GB değil, varsayılan ayarları geçersiz kılmamaya başlıyor. –

cevap

11

Scylla, MemTable için belleğin 1/2'sini ve diğer yarısı ise Anahtar/Bölüm önbelleği için kullanacaktır. İş yükünüz çoğunlukla yazıyorsa, daha fazla belleğin performans üzerinde daha az etkisi olacaktır ve G/Ç veya CPU tarafından sınırlandırılmalıdır.

Ben okuma öneriyoruz: http://www.scylladb.com/2017/10/05/io-access-methods-scylla/

Scylla bilgi yazma biçimini anlamak için. Ve http://www.scylladb.com/2016/12/15/sswc-part1/ Scylla G/Ç iş yüklerini

+1

Teşekkürler! Her iki link de çok faydalı. Sistem dosyası önbelleğini amaca göre kullanma. "ScyllaDB'de, tüm İşletim Sistemi arabelleğe alma sistemini atlıyoruz (sayfa önbelleği olarak bilinir) e) ve Doğrudan I/O kullanarak diske doğrudan yazarak, her tamponun gerçek belleğe ne zaman akıtıldığını tam olarak bilmek için mükemmel konumdayız. " –

13

Cassandra her zaman sistem belleğinin tüm kullanacaktır dengeleme biçimini anlamak için; yığın boyutu (-Xmx) ayarı, yığın tarafından ne kadar kullanıldığını ve diğer bellek tüketicilerinin ne kadarını (yığın-dışı yapılar ve sayfa önbelleği) ne kadar belirlediğini belirler. Yani Scylla'nın hafıza kullanımını sınırlarsanız, Cassandra ile karşılaştırıldığında bir dezavantaj olacaktır.

+0

Teşekkürler! Gutkinde makalelerine dayanarak neden şimdi anladım. –