Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A5334DAF3 for ; Mon, 10 Sep 2012 15:32:06 +0000 (UTC) Received: (qmail 50413 invoked by uid 500); 10 Sep 2012 15:32:04 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 50334 invoked by uid 500); 10 Sep 2012 15:32:03 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 50324 invoked by uid 99); 10 Sep 2012 15:32:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Sep 2012 15:32:03 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FSL_RCVD_USER,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of skrolle@gmail.com designates 209.85.223.172 as permitted sender) Received: from [209.85.223.172] (HELO mail-ie0-f172.google.com) (209.85.223.172) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 10 Sep 2012 15:31:59 +0000 Received: by ieak13 with SMTP id k13so3695843iea.31 for ; Mon, 10 Sep 2012 08:31:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=JwU4VctNPYtcV6TOCNQvWbOkqIteHO9Dfxi3J6danDU=; b=uGpHb+BI7SO2JtLNOw439g308U6uttUQCMZlfzBLbHnUXgQUAkhVWROwkCbKnS1a2E M8iXGezzvMjYcib48dd+F6MqMfz7drWP0vArjcW9u0R1ExLqJHelgpFvtpwYf4Guc0VP 02/UbdVxvlJ/hnYuP8/q/TAccsscZ9q/Z+pGAHlI3OldjG9MUxDMS5cNvEyHhC1vnYEv 9fQKJsSNB3BI28JNC599xfmdtoevCgicfJwuduuhPOjqhnj124U39hk31gzaCV1S6wyy C91BAnDx7TsXqTW9TMRK5y7r3jN3YRNhNhQ9w6C58z+yNvGC2L0Qs2ktqTq4GldkKcLP mG/g== MIME-Version: 1.0 Received: by 10.50.186.169 with SMTP id fl9mr12115595igc.9.1347291099275; Mon, 10 Sep 2012 08:31:39 -0700 (PDT) Received: by 10.231.42.170 with HTTP; Mon, 10 Sep 2012 08:31:39 -0700 (PDT) In-Reply-To: References: <2C85E14562B39345BCCAD90B8E7955C91F45BE@DKEXC002.adform.com> Date: Mon, 10 Sep 2012 17:31:39 +0200 Message-ID: Subject: Re: High commit size From: =?ISO-8859-1?Q?Henrik_Schr=F6der?= To: user@cassandra.apache.org Content-Type: multipart/related; boundary=14dae9340b8161a08404c95aa7fc X-Virus-Checked: Checked by ClamAV on apache.org --14dae9340b8161a08404c95aa7fc Content-Type: multipart/alternative; boundary=14dae9340b8161a08104c95aa7fb --14dae9340b8161a08104c95aa7fb Content-Type: text/plain; charset=ISO-8859-1 When we ran Cassandra on windows, we got better performance without memory mapped IO. We had the same problems your are describing, what happens is that Windows is rather aggressive about swapping out memory when all the memory is used, and it starts swapping out "unused" parts of the heap, which causes problems later when it has to swap it in again. We tried a bunch of solutions to limit the mmap memory, to reduce swappiness, etc, but nothing worked. Switching to standard disk access mode worked like a charm though, and performance improved. You still have the disk cache instead of the mmap, so you still use all the RAM of the machine, but you won't run into swapping hell. So, disable mmap, benchmark it, and see if it outperforms running with mmap. I'm pretty sure you will find that it does. /Henrik On Mon, Sep 10, 2012 at 4:02 PM, Rene Kochen wrote: > For performance reasons I switched to memory mapped IO. Is there a way to > make memory-mapped IO work in Windows? > > Thanks! > > > > 2012/9/10 Viktor Jevdokimov > >> Do not use mmap/auto on Windows, standard access mode only. In >> cassandra.yaml:**** >> >> disk_access_mode: standard**** >> >> ** ** >> >> ** ** >> Best regards / Pagarbiai >> *Viktor Jevdokimov* >> Senior Developer >> >> Email: Viktor.Jevdokimov@adform.com >> Phone: +370 5 212 3063, Fax +370 5 261 0453 >> J. Jasinskio 16C, LT-01112 Vilnius, Lithuania >> Follow us on Twitter: @adforminsider >> What is Adform: watch this short video >> [image: Adform News] >> * * >> *Visit us at Dmexco:* Hall: 7, Aisle: A, Stand: 030 >> September 12-13 Cologne, Germany >> [image: dmexco] >> >> Disclaimer: The information contained in this message and attachments is >> intended solely for the attention and use of the named addressee and may be >> confidential. If you are not the intended recipient, you are reminded that >> the information remains the property of the sender. You must not use, >> disclose, distribute, copy, print or rely on this e-mail. If you have >> received this message in error, please contact the sender immediately and >> irrevocably delete this message and any copies. >> >> *From:* Rene Kochen [mailto:rene.kochen@emea.schange.com] >> *Sent:* Monday, September 10, 2012 14:47 >> *To:* user@cassandra.apache.org >> *Subject:* Re: High commit size**** >> >> ** ** >> >> The problem is that the system just freezes and nodes are dying. The >> system becomes very unresponsive and it always happens when the shareable >> amount of RAM reaches the total number of bytes in the system. >> >> Is there something in Windows that I can tune in order to avoid this >> behavior? I cannot easily migrate to Linux right now. >> >> Thanks, >> >> Rene >> >> **** >> >> 2012/9/10 Oleg Dulin **** >> >> It is memory-mapped I/O. I wouldn't worry about it. >> >> BTW, Windows might not be the best choice to run Cassandra on. My >> experience running Cassandra on Windows has not been positive one. We no >> longer support Windows as our production platform. >> >> Regards, >> Oleg >> >> >> On 2012-09-10 09:00:02 +0000, Rene Kochen said:**** >> >> Hi all, >> >> On my test cluster I have three Windows Server 2008 R2 machines running >> Cassandra 1.0.11 >> >> If i use memory mapped IO (the default), then the nodes freeze after a >> while. Paging is disabled. >> >> The private bytes are OK (8GB). That is the amount I use in the -Xms and >> -Xmx arguments. The virtual size is big as expected because of the memory >> mapped IO. However, the working set size (size in RAM) is 24 GB (my total >> RAM usage). If I look with Process Explorer to the physical memory section >> I see a very high value in the "WS Sharable" section. >> >> Anyone has a clue what is going om here? >> >> Many thanks! >> >> Rene >> **** >> >> >> >> -- >> Regards, >> Oleg Dulin >> NYC Java Big Data Engineer >> http://www.olegdulin.com/ >> >> **** >> >> ** ** >> > > --14dae9340b8161a08104c95aa7fb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable When we ran Cassandra on windows, we got better performance without memory = mapped IO. We had the same problems your are describing, what happens is th= at Windows is rather aggressive about swapping out memory when all the memo= ry is used, and it starts swapping out "unused" parts of the heap= , which causes problems later when it has to swap it in again. We tried a b= unch of solutions to limit the mmap memory, to reduce swappiness, etc, but = nothing worked.

Switching to standard disk access mode worked like a charm though, and = performance improved. You still have the disk cache instead of the mmap, so= you still use all the RAM of the machine, but you won't run into swapp= ing hell.

So, disable mmap, benchmark it, and see if it outperforms running with = mmap. I'm pretty sure you will find that it does.


/Henrik

On Mon, Sep 10, 2012 at 4:02 PM, Rene K= ochen <rene.kochen@emea.schange.com> wrote:
For performance reasons I switched to memory= mapped IO. Is there a way to make memory-mapped IO work in Windows?
Thanks!



2012/9/10 Viktor Je= vdokimov <Viktor.Jevdokimov@adform.com>

Do not use mmap/auto on W= indows, standard access mode only. In cassandra.yaml:<= /p>

disk_access_mode: standar= d

=A0<= /p>

=A0<= /p>

Best regards / Pagarbiai
Viktor Jevdokimov
Senior Developer

J. Jasinskio 16C, LT-01112 Vilnius, Lithuania
Follow us on Twitter: @adforminsider
=A0 =A0
Visit us at Dmexco: Hall: 7, Aisle: A, Stand: 030
September 12-13 Cologne, Germany

Disclaimer: The information contained in this message and attachments is in= tended solely for the attention and use of the named addressee and may be c= onfidential. If you are not the intended recipient, you are reminded that t= he information remains the property of the sender. You must not use, disclose, distribute, copy, print or rely= on this e-mail. If you have received this message in error, please contact= the sender immediately and irrevocably delete this message and any copies.

From: Rene Koc= hen [mailto:rene.kochen@emea.schange.com]
Sent: Monday, September 10, 2012 14:47
To: u= ser@cassandra.apache.org
Subject: Re: High commit size

=A0

The problem is that t= he system just freezes and nodes are dying. The system becomes very unrespo= nsive and it always happens when the shareable amount of RAM reaches the to= tal number of bytes in the system.

Is there something in Windows that I can tune in order to avoid this behavi= or? I cannot easily migrate to Linux right now.

Thanks,

Rene

2012/9/10 Oleg Dulin <oleg.dulin@gmail.com>

It is memory-mapped I= /O. I wouldn't worry about it.

BTW, Windows might not be the best choice to run Cassandra on. My experienc= e running Cassandra on Windows has not been positive one. We no longer supp= ort Windows as our production platform.

Regards,
Oleg


On 2012-09-10 09:00:02 +0000, Rene Kochen said:

Hi all,

On my test cluster I have three Windows Server 2008 R2 machines running Cas= sandra 1.0.11

If i use memory mapped IO (the default), then the nodes freeze after a whil= e. Paging is disabled.

The private bytes are OK (8GB). That is the amount I use in the -Xms and -X= mx arguments. The virtual size is big as expected because of the memory map= ped IO. However, the working set size (size in RAM) is 24 GB (my total RAM = usage). If I look with Process Explorer to the physical memory section I see a very high value in the "WS Sha= rable" section.

Anyone has a clue what is going om here?

Many thanks!

Rene
<image>

=



--
Regards,
Oleg Dulin
NYC Java Big Data Engineer
http://www.ol= egdulin.com/

=A0



--14dae9340b8161a08104c95aa7fb-- --14dae9340b8161a08404c95aa7fc Content-Type: image/png; name="signature-logoc64.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: 4b5541c133acc4bb_0.1 iVBORw0KGgoAAAANSUhEUgAAAGgAAAAcCAYAAACNr/p2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl SUQ9InhtcC5paWQ6Qzk5QzVCQzdEQjAyMTFFMEE0NDFCODQ4MzMzMkI3NzciIHhtcE1NOkRvY3Vt ZW50SUQ9InhtcC5kaWQ6Qzk5QzVCQzhEQjAyMTFFMEE0NDFCODQ4MzMzMkI3NzciPiA8eG1wTU06 RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOTlDNUJDNURCMDIxMUUwQTQ0 MUI4NDgzMzMyQjc3NyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOTlDNUJDNkRCMDIxMUUw QTQ0MUI4NDgzMzMyQjc3NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqhJYX4AAAdWSURBVHja7FpNbFRVFD73zUwLpWlRKOFH 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 --14dae9340b8161a08404c95aa7fc Content-Type: image/png; name="dmexco-logofa6.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: 4b5541c133acc4bb_0.2 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 QmCC --14dae9340b8161a08404c95aa7fc--