Good day all.

We area a long term user of Lucene with it powering our search engine inside of the Java CFML runtime OpenBD (http://openbd.org). We've had no complaints from it whatsoever. Until now that is.

Since moving to 3.3 we have been experiencing extremely high CPU load when searching against an index. The index is only 19MB in size with all of 40,000 items in it.

We have produced some very useful stack traces with CPU % load times. Some other data points. This is not happening to just one machine, this is happening to all the machines in the web farm. The actual traffic on the machine is low, the stack traces i give you, the only threads that are actually doing anything, are the ones were Lucene has gone into a tizzy. The machines have all 3.5GB of memory. Running Java 1.6.23

Thanks

alan

------- Sample #1 -----------------------------------------

"qtp274064735-1462" prio=10 tid=0x00002aaacaa62800 nid=19115 runnable 
[0x000000004174d000]
   java.lang.Thread.State: RUNNABLE
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.apache.lucene.store.MMapDirectory.cleanMapping(MMapDirectory.java:158)
        at 
org.apache.lucene.store.MMapDirectory$MMapIndexInput.close(MMapDirectory.java:383)
        at 
org.apache.lucene.index.CompoundFileReader.close(CompoundFileReader.java:137)
        - locked<0x0000000795b86520>  (a 
org.apache.lucene.index.CompoundFileReader)
        at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:302)
        at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:359)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:750)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:589)
        at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:355)
        at 
org.apache.lucene.index.SegmentInfos.readCurrentVersion(SegmentInfos.java:476)
        at 
org.apache.lucene.index.DirectoryReader.initialize(DirectoryReader.java:347)
        at 
org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:130)
        at 
org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:83)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:750)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:288)

"qtp274064735-764" prio=10 tid=0x00002aaabb15f000 nid=16453 runnable 
[0x0000000041bd6000]
   java.lang.Thread.State: RUNNABLE
        at java.io.UnixFileSystem.list(Native Method)
        at java.io.File.list(File.java:973)
        at java.io.File.list(File.java:1004)
        at org.apache.lucene.store.FSDirectory.listAll(FSDirectory.java:223)
        at org.apache.lucene.store.FSDirectory.listAll(FSDirectory.java:241)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:637)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:589)
        at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:355)
        at 
org.apache.lucene.index.SegmentInfos.readCurrentVersion(SegmentInfos.java:476)
        at 
org.apache.lucene.index.DirectoryReader.initialize(DirectoryReader.java:347)
        at 
org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:130)
        at 
org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:83)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:750)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:288)

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16453 nobody    18   0 8149m 3.6g  80m R 57.4 47.3   4:45.53 java
19115 nobody    18   0 8149m 3.6g  80m R 50.2 47.3   2:01.15 java

------- Sample #2 -----------------------------------------

"qtp2001061977-4696" prio=10 tid=0x00002aaac0816800 nid=4710 runnable 
[0x0000000041950000]
   java.lang.Thread.State: RUNNABLE
        at 
org.apache.lucene.index.TermInfosReader.<init>(TermInfosReader.java:121)
        at 
org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:75)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:114)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:92)
        at 
org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:113)
        at 
org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:83)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:750)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:288)

"qtp2001061977-15" prio=10 tid=0x00002aaab8e07000 nid=28622 runnable 
[0x0000000040c37000]
   java.lang.Thread.State: RUNNABLE
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.apache.lucene.store.MMapDirectory.cleanMapping(MMapDirectory.java:158)
        at 
org.apache.lucene.store.MMapDirectory$MMapIndexInput.close(MMapDirectory.java:383)
        at 
org.apache.lucene.index.CompoundFileReader.close(CompoundFileReader.java:137)
        - locked<0x000000076e7bf9c0>  (a 
org.apache.lucene.index.CompoundFileReader)
        at 
org.apache.lucene.index.SegmentCoreReaders.decRef(SegmentCoreReaders.java:191)
        - locked<0x000000076e7bf960>  (a 
org.apache.lucene.index.SegmentCoreReaders)
        at org.apache.lucene.index.SegmentReader.doClose(SegmentReader.java:387)
        at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:242)
        at 
org.apache.lucene.index.DirectoryReader.doClose(DirectoryReader.java:895)
        - locked<0x000000076e7bef98>  (a 
org.apache.lucene.index.DirectoryReader)
        at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:242)
        at org.apache.lucene.index.IndexReader.close(IndexReader.java:1209)
        - locked<0x000000076e7bef98>  (a 
org.apache.lucene.index.DirectoryReader)

 4710 nobody    18   0 8172m 3.2g  82m R 79.1 42.6   4:22.84 java
28622 nobody    18   0 8172m 3.2g  82m D 69.2 42.6  12:39.49 java

------- Sample #3 -----------------------------------------


"qtp683347213-3129" prio=10 tid=0x00002aaac07fd000 nid=29916 runnable 
[0x0000000042b73000]
   java.lang.Thread.State: RUNNABLE
        at 
org.apache.lucene.index.IndexFileNames.fileNameFromGeneration(IndexFileNames.java:189)
        at 
org.apache.lucene.index.SegmentInfo.getNormFileName(SegmentInfo.java:508)
        at 
org.apache.lucene.index.SegmentReader.openNorms(SegmentReader.java:639)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:119)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:92)
        at 
org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:113)
        at 
org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:83)
        at 
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:750)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)

29916 nobody    22   0 7922m 4.3g  92m R 73.1 57.7   5:53.96 java

Reply via email to