Our JIRA 7 crashes every 2 weeks(or I should say Tomcat), we usually have about 250-300 concurrent users during week days. I increased maxThreads from default 150 to 300 few weeks ago, and it crashed after 2 weeks, I could see from Windows resource monitor, right before it crashed, there were 608 threads running on tomcat8.exe process, 30 mins before it crashed, I also received users report that they couldn't upload attachment into JIRA. So now I increased the number from 300 to 600 on our APR connector, and for AJP connetor, i keep it maxThreads at 200.
I can see from Windows resource monitor for the past few days, threads are increasing regularly everyday from 150 threads to 260 now. I think eventually it will hit 600 threads ceiling if threads can't be terminated properly.
One more thing, there are messages similar to below been logged few times a day,
INFO [file-attachment-store:thread-963] org.apache.coyote.AbstractProcessor.setErrorState An error occurred in processing while on a non-container thread. The connection will be closed immediately java.io.IOException: APR error: -70014 at org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer.java:292) at org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer.java:245) at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:214) at org.apache.coyote.http11.AbstractOutputBuffer.endRequest(AbstractOutputBuffer.java:378) at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:725) at org.apache.coyote.Response.action(Response.java:179) at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:306) at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:151) at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:281) at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:252) at com.atlassian.jira.web.servlet.AbstractViewFileServlet$1.withInputStream(AbstractViewFileServlet.java:89) at com.atlassian.jira.web.servlet.AbstractViewFileServlet$1.withInputStream(AbstractViewFileServlet.java:79) at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.get(DefaultAttachmentManager.java:729) at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.get(DefaultAttachmentManager.java:725) at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.get(DefaultFileSystemAttachmentStore.java:128) at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.get(DefaultFileSystemAttachmentStore.java:125) at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$3.call(DefaultFileSystemAttachmentStore.java:151) at com.atlassian.util.concurrent.Executors$DefaultSubmitter$CallableRunner.run(Executors.java:62) at com.atlassian.util.concurrent.LimitedExecutor$Runner.run(LimitedExecutor.java:93) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Please take a look at my tomcat configuration, I'd appreciate for any recommendation. Thanks,
<Connector port="443" maxHttpHeaderSize="8192"
acceptCount="100" scheme="https" secure="true"
<Connector port="8009" redirectPort="443" URIEncoding="UTF-8" enableLookups="false" protocol="AJP/1.3" maxThreads="200" connectionTimeout="600000" />
Try to implement like this. it will help you.
Better to keep backup twice in a day which is helpful for you.
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
We're bringing product updates and pro tips on teamwork to ten cities around the world.Save your spot