You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Li Li <fa...@gmail.com> on 2014/06/26 08:25:00 UTC
why it used up all the heap space and hang even I specified
memoryUsage limit?
I gave 3GB total heap space of activemq, the XX:NewRatio=2. So
new generation 1GB and old generation 2GB. And I also config
memoryUsage limit="1 gb"
ACTIVEMQ_OPTS_MEMORY="-Xms1G -Xmx3G -XX:+UseConcMarkSweepGC
-XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -XX:NewRatio=2"
There are only two queues.
<policyEntry queue=">" optimizedDispatch="true"
producerFlowControl="false" cursorMemoryHighWaterMark="70"
memoryLimit="100 mb" />
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="1 gb" />
</memoryUsage>
<storeUsage>
<storeUsage limit="50 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="50 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
$ jstat -gcutil 10345 1000
S0 S1 E O P YGC YGCT FGC FGCT GCT
99.72 0.00 100.00 100.00 59.94 293 14.149 69 115.657 129.806
99.72 0.00 100.00 100.00 59.94 293 14.149 69 115.657 129.806
0.00 0.00 58.20 100.00 59.94 293 14.149 70 129.375 143.524
0.00 0.00 62.86 100.00 59.95 293 14.149 70 130.325 144.474
0.00 0.00 72.10 100.00 59.98 293 14.149 70 130.325 144.474
0.00 0.00 85.59 100.00 59.98 293 14.149 70 130.325 144.474
0.00 0.00 99.82 100.00 59.98 293 14.149 70 130.325 144.474
46.40 0.00 100.00 100.00 59.99 293 14.149 70 130.325 144.474
99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
$ jmap -heap 10345
Attaching to process ID 10345, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.45-b08
using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 3221225472 (3072.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 85983232 (82.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 966393856 (921.625MB)
used = 966388976 (921.6203460693359MB)
free = 4880 (0.0046539306640625MB)
99.99949502990218% used
Eden Space:
capacity = 859045888 (819.25MB)
used = 859045888 (819.25MB)
free = 0 (0.0MB)
100.0% used
>From Space:
capacity = 107347968 (102.375MB)
used = 107343088 (102.37034606933594MB)
free = 4880 (0.0046539306640625MB)
99.99545403598138% used
To Space:
capacity = 107347968 (102.375MB)
used = 0 (0.0MB)
free = 107347968 (102.375MB)
0.0% used
concurrent mark-sweep generation:
capacity = 2147483648 (2048.0MB)
used = 2147483608 (2047.9999618530273MB)
free = 40 (3.814697265625E-5MB)
99.99999813735485% used
Perm Generation:
capacity = 52916224 (50.46484375MB)
used = 31660712 (30.194007873535156MB)
free = 21255512 (20.270835876464844MB)
59.83176728558712% used
Re: why it used up all the heap space and hang even I specified
memoryUsage limit?
Posted by Li Li <fa...@gmail.com>.
The producer is much faster than consumer. I will do speed control --
when the producer find the queue size is above a threshold, it will
stop sending messages
I just want the producer sent as many messages as broker can store. I
want the broker save messages in broker's hard disk. So the producer
don't have to consider how to save the messages itself.
On Thu, Jun 26, 2014 at 8:35 PM, Christian Posta
<ch...@gmail.com> wrote:
> Just curious why you have producer flow control off if you expect it to
> honor memory limits?
>
> On Wednesday, June 25, 2014, Li Li <fa...@gmail.com> wrote:
>
>> I gave 3GB total heap space of activemq, the XX:NewRatio=2. So
>> new generation 1GB and old generation 2GB. And I also config
>> memoryUsage limit="1 gb"
>>
>>
>> ACTIVEMQ_OPTS_MEMORY="-Xms1G -Xmx3G -XX:+UseConcMarkSweepGC
>> -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -XX:NewRatio=2"
>> There are only two queues.
>>
>> <policyEntry queue=">" optimizedDispatch="true"
>> producerFlowControl="false" cursorMemoryHighWaterMark="70"
>> memoryLimit="100 mb" />
>>
>> <systemUsage>
>> <systemUsage>
>> <memoryUsage>
>> <memoryUsage limit="1 gb" />
>> </memoryUsage>
>> <storeUsage>
>> <storeUsage limit="50 gb"/>
>> </storeUsage>
>> <tempUsage>
>> <tempUsage limit="50 gb"/>
>> </tempUsage>
>> </systemUsage>
>> </systemUsage>
>>
>>
>> $ jstat -gcutil 10345 1000
>> S0 S1 E O P YGC YGCT FGC FGCT GCT
>> 99.72 0.00 100.00 100.00 59.94 293 14.149 69 115.657 129.806
>> 99.72 0.00 100.00 100.00 59.94 293 14.149 69 115.657 129.806
>> 0.00 0.00 58.20 100.00 59.94 293 14.149 70 129.375 143.524
>> 0.00 0.00 62.86 100.00 59.95 293 14.149 70 130.325 144.474
>> 0.00 0.00 72.10 100.00 59.98 293 14.149 70 130.325 144.474
>> 0.00 0.00 85.59 100.00 59.98 293 14.149 70 130.325 144.474
>> 0.00 0.00 99.82 100.00 59.98 293 14.149 70 130.325 144.474
>> 46.40 0.00 100.00 100.00 59.99 293 14.149 70 130.325 144.474
>> 99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
>> 99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
>> 99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
>>
>> $ jmap -heap 10345
>> Attaching to process ID 10345, please wait...
>> Debugger attached successfully.
>> Server compiler detected.
>> JVM version is 24.45-b08
>>
>> using parallel threads in the new generation.
>> using thread-local object allocation.
>> Concurrent Mark-Sweep GC
>>
>> Heap Configuration:
>> MinHeapFreeRatio = 40
>> MaxHeapFreeRatio = 70
>> MaxHeapSize = 3221225472 (3072.0MB)
>> NewSize = 1310720 (1.25MB)
>> MaxNewSize = 17592186044415 MB
>> OldSize = 5439488 (5.1875MB)
>> NewRatio = 2
>> SurvivorRatio = 8
>> PermSize = 21757952 (20.75MB)
>> MaxPermSize = 85983232 (82.0MB)
>> G1HeapRegionSize = 0 (0.0MB)
>>
>> Heap Usage:
>> New Generation (Eden + 1 Survivor Space):
>> capacity = 966393856 (921.625MB)
>> used = 966388976 (921.6203460693359MB)
>> free = 4880 (0.0046539306640625MB)
>> 99.99949502990218% used
>> Eden Space:
>> capacity = 859045888 (819.25MB)
>> used = 859045888 (819.25MB)
>> free = 0 (0.0MB)
>> 100.0% used
>> From Space:
>> capacity = 107347968 (102.375MB)
>> used = 107343088 (102.37034606933594MB)
>> free = 4880 (0.0046539306640625MB)
>> 99.99545403598138% used
>> To Space:
>> capacity = 107347968 (102.375MB)
>> used = 0 (0.0MB)
>> free = 107347968 (102.375MB)
>> 0.0% used
>> concurrent mark-sweep generation:
>> capacity = 2147483648 (2048.0MB)
>> used = 2147483608 (2047.9999618530273MB)
>> free = 40 (3.814697265625E-5MB)
>> 99.99999813735485% used
>> Perm Generation:
>> capacity = 52916224 (50.46484375MB)
>> used = 31660712 (30.194007873535156MB)
>> free = 21255512 (20.270835876464844MB)
>> 59.83176728558712% used
>>
>
>
> --
> *Christian Posta*
> http://www.christianposta.com/blog
> http://fabric8.io
> twitter: @christianposta
Re: why it used up all the heap space and hang even I specified
memoryUsage limit?
Posted by Christian Posta <ch...@gmail.com>.
Just curious why you have producer flow control off if you expect it to
honor memory limits?
On Wednesday, June 25, 2014, Li Li <fa...@gmail.com> wrote:
> I gave 3GB total heap space of activemq, the XX:NewRatio=2. So
> new generation 1GB and old generation 2GB. And I also config
> memoryUsage limit="1 gb"
>
>
> ACTIVEMQ_OPTS_MEMORY="-Xms1G -Xmx3G -XX:+UseConcMarkSweepGC
> -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -XX:NewRatio=2"
> There are only two queues.
>
> <policyEntry queue=">" optimizedDispatch="true"
> producerFlowControl="false" cursorMemoryHighWaterMark="70"
> memoryLimit="100 mb" />
>
> <systemUsage>
> <systemUsage>
> <memoryUsage>
> <memoryUsage limit="1 gb" />
> </memoryUsage>
> <storeUsage>
> <storeUsage limit="50 gb"/>
> </storeUsage>
> <tempUsage>
> <tempUsage limit="50 gb"/>
> </tempUsage>
> </systemUsage>
> </systemUsage>
>
>
> $ jstat -gcutil 10345 1000
> S0 S1 E O P YGC YGCT FGC FGCT GCT
> 99.72 0.00 100.00 100.00 59.94 293 14.149 69 115.657 129.806
> 99.72 0.00 100.00 100.00 59.94 293 14.149 69 115.657 129.806
> 0.00 0.00 58.20 100.00 59.94 293 14.149 70 129.375 143.524
> 0.00 0.00 62.86 100.00 59.95 293 14.149 70 130.325 144.474
> 0.00 0.00 72.10 100.00 59.98 293 14.149 70 130.325 144.474
> 0.00 0.00 85.59 100.00 59.98 293 14.149 70 130.325 144.474
> 0.00 0.00 99.82 100.00 59.98 293 14.149 70 130.325 144.474
> 46.40 0.00 100.00 100.00 59.99 293 14.149 70 130.325 144.474
> 99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
> 99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
> 99.96 0.00 100.00 100.00 60.00 293 14.149 71 130.325 144.474
>
> $ jmap -heap 10345
> Attaching to process ID 10345, please wait...
> Debugger attached successfully.
> Server compiler detected.
> JVM version is 24.45-b08
>
> using parallel threads in the new generation.
> using thread-local object allocation.
> Concurrent Mark-Sweep GC
>
> Heap Configuration:
> MinHeapFreeRatio = 40
> MaxHeapFreeRatio = 70
> MaxHeapSize = 3221225472 (3072.0MB)
> NewSize = 1310720 (1.25MB)
> MaxNewSize = 17592186044415 MB
> OldSize = 5439488 (5.1875MB)
> NewRatio = 2
> SurvivorRatio = 8
> PermSize = 21757952 (20.75MB)
> MaxPermSize = 85983232 (82.0MB)
> G1HeapRegionSize = 0 (0.0MB)
>
> Heap Usage:
> New Generation (Eden + 1 Survivor Space):
> capacity = 966393856 (921.625MB)
> used = 966388976 (921.6203460693359MB)
> free = 4880 (0.0046539306640625MB)
> 99.99949502990218% used
> Eden Space:
> capacity = 859045888 (819.25MB)
> used = 859045888 (819.25MB)
> free = 0 (0.0MB)
> 100.0% used
> From Space:
> capacity = 107347968 (102.375MB)
> used = 107343088 (102.37034606933594MB)
> free = 4880 (0.0046539306640625MB)
> 99.99545403598138% used
> To Space:
> capacity = 107347968 (102.375MB)
> used = 0 (0.0MB)
> free = 107347968 (102.375MB)
> 0.0% used
> concurrent mark-sweep generation:
> capacity = 2147483648 (2048.0MB)
> used = 2147483608 (2047.9999618530273MB)
> free = 40 (3.814697265625E-5MB)
> 99.99999813735485% used
> Perm Generation:
> capacity = 52916224 (50.46484375MB)
> used = 31660712 (30.194007873535156MB)
> free = 21255512 (20.270835876464844MB)
> 59.83176728558712% used
>
--
*Christian Posta*
http://www.christianposta.com/blog
http://fabric8.io
twitter: @christianposta