2012-03-20 28 views
5

CassandraSharp kullanarak Cassandra'yı 3 düğüm ile kıyaslamaktayım. Ana endişe hacmi daha gecikme, yani GC ayarlama biraz burada numaralarım (100 000 B uçlar, mono- parçacığı üzerine) olduktan sonra:Cassandra'da güvenilir ekleme süreleri nasıl elde edilir?

  • iter/sn: 1600
  • Ortalama: 600μs
  • 95 cent: 600μs
  • 99 cent: 5000μs
  • Max: 50 000μs
Buradaki sorun arada bir ben geç "kötü" elde ediyoruz

ncy (50ms), amacım daha yüksek bir ortalama maliyete rağmen tutarlı bir gecikme olmaktır.

Bu GC neden olduğuna inanıyoruz ve bu önlenebileceği, merak ediyorum.

(Bir yan not olarak, bu iyi bir uygulama tek düğüme ekler büyük miktarda göndermek ve istemci onu idare veya should I "Yük dengesi" izin vermek mi?)

+0

Eğer GC ayarlı nasıl söyler plz misiniz? Thx bu kriter burada görülen dur-dünya eski nesil gc duraklar tür ortadan Cassandra 1.0'da memtables için arena tahsisi getirilmesi ile obsoleted olduğunu – odiszapc

cevap

2

50ms genç nesil çöp toplama normal aralığındadır. Cassandra-env.sh dosyasında GC logging işlemini, sorunun doğru olduğunu doğrulamak için aşağı doğru doğru çizgilerin yokluğunu kaldırarak etkinleştirebilirsiniz. Genç kuşak koleksiyonları gerçekten ile ilişkili ise

(Disk yüzden basması sıralı g/ç olduğundan sıradışı insert hacmi ile takip edemiyorum yavaş sürece Kızarmalar ekler blok yok.)

Daha yüksek gecikmelerde, genç neslin daha küçük olmasını (ayrıca cassandra-env.sh olarak da yapılandırılır), işlem hacminin muhtemel ticaret gecikme maliyetinde azaltmayı deneyebilirsiniz.

+0

Çoktan GC optim fazını geçtim ve GC zamanını hızlandırmak için en az genç jenerasyon alanım var. Yani bence bundan daha iyi olmayacak: / – alprema

1

I don' Bir zamanlar kötü gecikme sorunundan uzaklaşabileceğinizi düşünün. Muhtemelen bahsettiğiniz GC ya da Memtables'den diske sığan bir performans gösterdiğinde.

gerçekten 50ms kötü insert bir sorun var mı? Cassandra, ekleme işlemlerinizi tek bir uzun mutatorda sıraya sokmanıza ve daha sonra ek parça grubunu gerçekleştirmenize olanak tanıyan toplu mutatorları destekler; böylece ana parçanızın, daha uzun sürebilecek eşzamanlı insert tarafından engellenmesi gerekmez. beklenen. CassandarSharp'i kullanmadım, bu yüzden bu işlevselliği gösterip göstermediğini bilmiyorum.

Ayrıca, cassandra düğümleri üzerindeki yük dengeleme, içe aktarma sürelerinizi biraz daha iyileştirir, ancak sahnelerin arkasında neler olup bittiğini, içe aktarmayı yaptığınız düğümün, depolamayı yapmak için doğru düğüme dağıtacağını unutmayın. (böylece, onu bir proxy gibi davranmaya mecbur bıraktınız) bu yüzden genel kenarda daha fazla gelişme hayal bile edemedim. Bir sebepten ötürü düğümün başka şeyler yapmaya başladığı ve performansı düştüğü takdirde size yardımcı olacaktır.

0

Güvenilir ekleme süreleriyle ilgileniyorsanız, ekler üzerinde 100x daha kararlı gecikme sağlayan Cassandra'nın Acunu dağıtımını kontrol etmek isteyebilirsiniz: Cassandra under Heavy Write Load (özellikle ikinci resme dikkat edin).

+0

Not. (Ayrıntılar: https: //issues.apache.org/jira/browse/CASSANDRA-2252) – jbellis

İlgili konular