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 0767F106E8 for ; Tue, 29 Oct 2013 15:32:08 +0000 (UTC) Received: (qmail 35443 invoked by uid 500); 29 Oct 2013 15:31:14 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 35107 invoked by uid 500); 29 Oct 2013 15:30:51 -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 35085 invoked by uid 99); 29 Oct 2013 15:30:47 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Oct 2013 15:30:47 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of pieter.callewaert@be-mobile.be designates 213.199.154.11 as permitted sender) Received: from [213.199.154.11] (HELO emea01-am1-obe.outbound.protection.outlook.com) (213.199.154.11) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Oct 2013 15:30:42 +0000 Received: from AMSPR06MB069.eurprd06.prod.outlook.com (10.242.90.141) by AMSPR06MB070.eurprd06.prod.outlook.com (10.242.90.143) with Microsoft SMTP Server (TLS) id 15.0.810.5; Tue, 29 Oct 2013 15:30:19 +0000 Received: from AMSPR06MB069.eurprd06.prod.outlook.com ([169.254.1.208]) by AMSPR06MB069.eurprd06.prod.outlook.com ([169.254.1.49]) with mapi id 15.00.0810.005; Tue, 29 Oct 2013 15:30:19 +0000 From: Pieter Callewaert To: "user@cassandra.apache.org" Subject: RE: Too many open files (Cassandra 2.0.1) Thread-Topic: Too many open files (Cassandra 2.0.1) Thread-Index: Ac7UoYC3rJMSYyAwT5yW2h0zilEk1wAGO8Ww Date: Tue, 29 Oct 2013 15:30:18 +0000 Message-ID: <47f5eb22f7aa40389229aaa08d6aa64b@AMSPR06MB069.eurprd06.prod.outlook.com> References: In-Reply-To: Accept-Language: nl-BE, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [81.82.202.11] x-forefront-prvs: 0014E2CF50 x-forefront-antispam-report: SFV:NSPM;SFS:(199002)(377424004)(50944004)(252514010)(71364002)(189002)(65816001)(74706001)(74876001)(74482001)(47446002)(77096001)(81686001)(15202345003)(74662001)(66066001)(83072001)(74366001)(74316001)(81816001)(31966008)(76796001)(56816003)(33646001)(47736001)(50986001)(4396001)(15975445006)(76576001)(18206015023)(76786001)(49866001)(47976001)(85806002)(85306002)(81342001)(19580395003)(80976001)(83322001)(81542001)(19580405001)(54356001)(63696002)(16236675002)(51856001)(79102001)(53806001)(54316002)(56776001)(19300405004)(17760045001)(46102001)(69226001)(77982001)(59766001)(87266001)(24736002);DIR:OUT;SFP:;SCL:1;SRVR:AMSPR06MB070;H:AMSPR06MB069.eurprd06.prod.outlook.com;CLIP:81.82.202.11;FPR:;RD:InfoNoRecords;A:1;MX:1;LANG:en; Content-Type: multipart/related; boundary="_004_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_"; type="multipart/alternative" MIME-Version: 1.0 X-OriginatorOrg: be-mobile.be X-Virus-Checked: Checked by ClamAV on apache.org --_004_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_ Content-Type: multipart/alternative; boundary="_000_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_" --_000_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Investigated a bit more: - I can reproduce it, happened already on several nodes when I do so= me stress testing (50000 select's spread over multiple threads) - Unexpected exception in the selector loop. Seems not related with = the Too many open files, it just happens. - It's not socket related. - Using Oracle Java(TM) SE Runtime Environment (build 1.7.0_40-b43) - Using multiple data directories (maybe related ?) I'm stuck at the moment, I don't know If I should try DEBUG log because it = will be too much information? Kind regards, Pieter Callewaert [Description: cid:image003.png@01CD9CE5.CE5A2330] Pieter Callewaert Web & IT engineer Web: www.be-mobile.be Email: pieter.callewaert@be-mobile.be Tel: + 32 9 330 51 80 From: Pieter Callewaert [mailto:pieter.callewaert@be-mobile.be] Sent: dinsdag 29 oktober 2013 13:40 To: user@cassandra.apache.org Subject: Too many open files (Cassandra 2.0.1) Hi, I've noticed some nodes in our cluster are dying after some period of time. WARN [New I/O server boss #17] 2013-10-29 12:22:20,725 Slf4JLogger.java (li= ne 76) Failed to accept a connection. java.io.IOException: Too many open files at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImp= l.java:241) at org.jboss.netty.channel.socket.nio.NioServerBoss.process(NioServ= erBoss.java:100) at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(Abstr= actNioSelector.java:312) at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBo= ss.java:42) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec= utor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe= cutor.java:615) at java.lang.Thread.run(Thread.java:724) And other exceptions related to the same cause. Now, as we use the Cassandra package, the nofile limit is raised to 100000. To double check if this correct: root@de-cass09 ~ # cat /proc/18332/limits Limit Soft Limit Hard Limit Units ... Max open files 100000 100000 files ... Now I check how many files are open: root@de-cass09 ~ # lsof -n -p 18332 | wc -l 100038 This seems an awful a lot for size tiered compaction... ? Now I noticed when I checked the list, a (deleted) file passed a lot ... java 18332 cassandra 4704r REG 8,1 10911921661 2147483= 839 /data1/mapdata040/hos/mapdata040-hos-jb-7648-Data.db (deleted) java 18332 cassandra 4705r REG 8,1 10911921661 2147483= 839 /data1/mapdata040/hos/mapdata040-hos-jb-7648-Data.db (deleted) ... Actually, if I count specific for this file: root@de-cass09 ~ # lsof -n -p 18332 | grep mapdata040-hos-jb-7648-Data.db |= wc -l 52707 Other nodes are around a total of 350 files open... Any idea why this nofil= es is so high ? The first exceptions I see is this: WARN [New I/O worker #8] 2013-10-29 12:09:34,440 Slf4JLogger.java (line 76)= Unexpected exception in the selector loop. java.lang.NullPointerException at sun.nio.ch.EPollArrayWrapper.setUpdateEvents(EPollArrayWrapper.j= ava:178) at sun.nio.ch.EPollArrayWrapper.add(EPollArrayWrapper.java:227) at sun.nio.ch.EPollSelectorImpl.implRegister(EPollSelectorImpl.java= :164) at sun.nio.ch.SelectorImpl.register(SelectorImpl.java:133) at java.nio.channels.spi.AbstractSelectableChannel.register(Abstrac= tSelectableChannel.java:209) at org.jboss.netty.channel.socket.nio.NioWorker$RegisterTask.run(Ni= oWorker.java:151) at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTa= skQueue(AbstractNioSelector.java:366) at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(Abstr= actNioSelector.java:290) at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(Abstrac= tNioWorker.java:90) at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:= 178) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExec= utor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExe= cutor.java:615) at java.lang.Thread.run(Thread.java:724) Several minutes later I get Too many open files. Specs: 12-node cluster with Ubuntu 12.04 LTS, Cassandra 2.0.1 (datastax packages),= using JBOD of 2 disks. JNA enabled. Any suggestions? Kind regards, Pieter Callewaert [Description: cid:image003.png@01CD9CE5.CE5A2330] Pieter Callewaert Web & IT engineer Web: www.be-mobile.be Email: pieter.callewaert@be-mobile.be Tel: + 32 9 330 51 80 --_000_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Investigated a bit mor= e:

 

= -        I can reproduce it, happened already on several nodes when I do some stres= s testing (50000 select’s spread over multiple threads)

= -        Unexpected exception in= the selector loop. Seems not related with the Too many open files, it just= happens.

= -        It’s not socket r= elated.

= -        Using Oracle Java(TM) S= E Runtime Environment (build 1.7.0_40-b43)

= -        Using multiple data dir= ectories (maybe related ?)

&n= bsp;

I’= ;m stuck at the moment, I don’t know If I should try DEBUG log becaus= e it will be too much information?

&n= bsp;

Kind re= gards,

Pieter = Callewaert

 

3D"Description:

   Pieter Callewaert

   Web & IT engineer

 

   Web:   www.be-mobile.be

   Email: pieter.callewaert@be-mobi= le.be

   Tel:  + 32 9 330 51 80=

 

 

From:= Pieter Callewaert [mailto:pieter.callewaert@be-mobile.be]
Sent: dinsdag 29 oktober 2013 13:40
To: user@cassandra.apache.org
Subject: Too many open files (Cassandra 2.0.1)

 

Hi,

 

I’ve noticed some nodes i= n our cluster are dying after some period of time.

 

WARN [New I/O server boss #17] = 2013-10-29 12:22:20,725 Slf4JLogger.java (line 76) Failed to accept a conne= ction.

java.io.IOException: Too many o= pen files

     &= nbsp;  at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)

     &= nbsp;  at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChanne= lImpl.java:241)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.NioServerBoss.process(Nio= ServerBoss.java:100)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(A= bstractNioSelector.java:312)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServ= erBoss.java:42)

     &= nbsp;  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool= Executor.java:1145)

     &= nbsp;  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo= lExecutor.java:615)

     &= nbsp;  at java.lang.Thread.run(Thread.java:724)

 

And other exceptions related to= the same cause.

Now, as we use the Cassandra pa= ckage, the nofile limit is raised to 100000.

To double check if this correct= :

 

root@de-cass09 ~ # cat /proc/18= 332/limits

Limit    &n= bsp;            = ;    Soft Limit       &nb= sp;   Hard Limit        &= nbsp;  Units

Max open files   = ;         100000   &= nbsp;           100000&nb= sp;            =   files

 

Now I check how many files are = open:

root@de-cass09 ~ # lsof -n -p 1= 8332 | wc -l

100038

 

This seems an awful a lot for s= ize tiered compaction… ?

Now I noticed when I checked th= e list, a (deleted) file passed a lot

 

java    18332 ca= ssandra 4704r   REG       &nbs= p;        8,1  10911921661 21474838= 39 /data1/mapdata040/hos/mapdata040-hos-jb-7648-Data.db (deleted)

java    18332 ca= ssandra 4705r   REG       &nbs= p;        8,1  10911921661 21474838= 39 /data1/mapdata040/hos/mapdata040-hos-jb-7648-Data.db (deleted)

 

Actually, if I count specific f= or this file:

root@de-cass09 ~ # lsof -n -p 1= 8332 | grep mapdata040-hos-jb-7648-Data.db | wc -l

52707

 

Other nodes are around a total = of 350 files open… Any idea why this nofiles is so high ?<= /span>

 

The first exceptions I see is t= his:

WARN [New I/O worker #8] 2013-1= 0-29 12:09:34,440 Slf4JLogger.java (line 76) Unexpected exception in the se= lector loop.

java.lang.NullPointerException<= o:p>

     &= nbsp;  at sun.nio.ch.EPollArrayWrapper.setUpdateEvents(EPollArrayWrapp= er.java:178)

     &= nbsp;  at sun.nio.ch.EPollArrayWrapper.add(EPollArrayWrapper.java:227)=

     &= nbsp;  at sun.nio.ch.EPollSelectorImpl.implRegister(EPollSelectorImpl.= java:164)

     &= nbsp;  at sun.nio.ch.SelectorImpl.register(SelectorImpl.java:133)=

     &= nbsp;  at java.nio.channels.spi.AbstractSelectableChannel.register(Abs= tractSelectableChannel.java:209)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.NioWorker$RegisterTask.ru= n(NioWorker.java:151)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.AbstractNioSelector.proce= ssTaskQueue(AbstractNioSelector.java:366)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(A= bstractNioSelector.java:290)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(Abs= tractNioWorker.java:90)

     &= nbsp;  at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.j= ava:178)

     &= nbsp;  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool= Executor.java:1145)

     &= nbsp;  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo= lExecutor.java:615)

     &= nbsp; at java.lang.Thread.run(Thread.java:724)

 

Several minutes later I get Too= many open files.

 

Specs:

12-node cluster with Ubuntu 12.= 04 LTS, Cassandra 2.0.1 (datastax packages), using JBOD of 2 disks.

JNA enabled.<= /p>

 

Any suggestions?

 

Kind regards,=

Pieter Callewaert

 

3D"Description:=

   Pieter Callewaert

   Web & IT engineer

 

   Web:   www.be-mobile.be

   Email: pieter.callewaert@be-mobi= le.be

   Tel:  + 32 9 330 51 80=

&nbs= p;

 

--_000_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_-- --_004_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=15600; creation-date="Tue, 29 Oct 2013 15:30:18 GMT"; modification-date="Tue, 29 Oct 2013 15:30:18 GMT" Content-ID: Content-Transfer-Encoding: base64 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 --_004_47f5eb22f7aa40389229aaa08d6aa64bAMSPR06MB069eurprd06pro_--