[ 
https://issues.apache.org/jira/browse/AMQ-7135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16742067#comment-16742067
 ] 

Jamie goodyear commented on AMQ-7135:
-------------------------------------

Purging a destination before deleting it seems fare. The purge operation for a 
destination appears to perform the remove message per pageFile instead of 
reading all pageFiles into memory before taking action (preferable memory 
wise). 

Looking closer at PageFile, the routine (writeBatch) appears to pick up the 
PageFiles, do a recovery check for all pageFiles, then process the pageFiles. 
The only way i see to reduce the memory load would be to stream pageFile by 
pageFile through or use small batches of the batch... perhaps a bit too much 
extra complexity (introducing a potential tuning area for delete performance - 
batch size). 

> Deleting a destination with a large number of page files cause OOM. 
> --------------------------------------------------------------------
>
>                 Key: AMQ-7135
>                 URL: https://issues.apache.org/jira/browse/AMQ-7135
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.15.8
>            Reporter: Heath Kesler
>            Priority: Major
>
> When removing (delete) a destination using the console an error is reported. 
> It appears all the page files are batched into memory.  If you have a large 
> set of page files and a relatively small heap, this will cause the system to 
> run out of memory. 
> This can be reproduced by doing the following:
> env: heap size: 384MB
> 1. Create a “test” queue and send more than 2 millions of persistent messages 
> with size of 100KB to the “test”queue (this take some times). 
> 2. Delete “test” queue by clicking “delete” button on ActiveMQ Console. 
> 3. Wait and broker will die eventually. 
> 4. Broker won’t reboot successfully
> The observed error below can be seen in the logs. 
> {{org.springframework.web.util.NestedServletException: Handler dispatch 
> failed; nested exception is java.lang.OutOfMemoryError: GC overhead limit 
> exceeded}}
> {{ at 
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)[spring-webmvc-4.3.18.RELEASE.jar:4.3.18.RELEASE]}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to