> From what I could read there seems to be a contention issue around the > flushing (the "switchlock" ?). Cassandra would then be slow, but not using > the entire cpu. I would be in the strange situation I was where I reported my > issue in this thread. > Does my theory makes sense ? If you are seeing contention around the switch lock you will see a pattern in the logs where a "Writing…" message is immediately followed by an "Enqueing…" message. This happens when the flush_queue is full and the thread flushing (either because of memory, commit log or snapshot etc) is waiting.
See the comments for memtable_flush_queue_size in the yaml file. If you increase the value you will flush more frequently as C* leaves for memory to handle the case where the queue is full. If you have spare IO you could consider increasing memtable_flush_writers Cheers ----------------- Aaron Morton Freelance Cassandra Developer New Zealand @aaronmorton http://www.thelastpickle.com On 29/01/2013, at 4:19 AM, Nicolas Lalevée <nicolas.lale...@hibnet.org> wrote: > I did some testing, I have a theory. > > First, we have it seems "a lot" of CF. And two are particularly every hungry > in RAM, consuming a quite big amount of RAM for the bloom filters. Cassandra > do not force the flush of the memtables if it has more than 6G of Xmx > (luckily for us, this is the maximum reasonable we can give). > Since our machines have 8G, this gives quite a little room for the disk > cache. Thanks to this systemtap script [1], I have seen that the hit ratio is > about 10%. > > Then I have tested with an Xmx at 4G. So %wa drops down. The disk cache ratio > raises to 80%. On the other hand, flushing is happening very often. I cannot > say how much, since I have too many CF to graph them all. But the ones I > graph, none of their memtable goes above 10M, whereas they usually go up to > 200M. > > I have not tested further. Since it is quite obvious that the machines needs > more RAM. And they're about to receive more. > > But I guess that if I had to put more write and read pressure, with still an > xmx at 4G, the %wa would still be quite low, but the flushing would be even > more intensive. And I guess that it would go wrong. From what I could read > there seems to be a contention issue around the flushing (the "switchlock" > ?). Cassandra would then be slow, but not using the entire cpu. I would be in > the strange situation I was where I reported my issue in this thread. > Does my theory makes sense ? > > Nicolas > > [1] http://sourceware.org/systemtap/wiki/WSCacheHitRate > > Le 23 janv. 2013 à 18:35, Nicolas Lalevée <nicolas.lale...@hibnet.org> a > écrit : > >> Le 22 janv. 2013 à 21:50, Rob Coli <rc...@palominodb.com> a écrit : >> >>> On Wed, Jan 16, 2013 at 1:30 PM, Nicolas Lalevée >>> <nicolas.lale...@hibnet.org> wrote: >>>> Here is the long story. >>>> After some long useless staring at the monitoring graphs, I gave a try to >>>> using the openjdk 6b24 rather than openjdk 7u9 >>> >>> OpenJDK 6 and 7 are both counter-recommended with regards to >>> Cassandra. I've heard reports of mysterious behavior like the behavior >>> you describe, when using OpenJDK 7. >>> >>> Try using the Sun/Oracle JVM? Is your JNA working? >> >> JNA is working. >> I tried both oracle-jdk6 and oracle-jdk7, no difference with openjdk6. And >> since ubuntu is only maintaining openjdk, we'll stick with it until oracle's >> one proven better. >> oracle vs openjdk, I tested for now under "normal" pressure though. >> >> What amaze me is whatever how much I google it and ask around, I still don't >> know for sure the difference between the openjdk and oracle's jdk… >> >> Nicolas >> >