activemq performance tuning

55
Apache Ac(veMQ Performance Tuning Chris(an Posta Senior Consultant and Architect Blog: h6p://chris9anposta.com/blog/ Twi6er: @chris9anposta GitHub: h6ps:// github.com / chris9anposta

Upload: ceposta

Post on 15-Jan-2015

6.474 views

Category:

Technology


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

1  

Apache  Ac(veMQ  Performance  Tuning  

Chris(an  Posta Senior  Consultant  and  Architect  Blog:  h6p://chris9anposta.com/blog/  Twi6er:  @chris9anposta  GitHub:  h6ps://github.com/chris9an-­‐posta  

Page 2: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

2  

ceposta    

§ Chris9an  Posta  §  Blog:  h6p://chris9anposta.com/blog/  §  Email:  [email protected]  §  Twi6er:  @chris9anposta  §  GitHub:  h6ps://github.com/chris9an-­‐posta  §  Goolge+:  h6ps://plus.google.com/103810850748178017238  

   

§ Senior  Consultant  and  Architect  at  Red  Hat  (formerly  FuseSource)  

§ Commi6er  on:  Ac9veMQ,  Apollo  § Author  of  Essen%al  Camel  Components  DZone  Refcard  

Page 3: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

3  

What  Am  I  Talking  About?  

§ What  is  Ac9veMQ?  §  Performance/Benchmarking  Tools  §  Tuning  

Page 4: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

4  

Apache  Ac(veMQ  

§  OpenSource  Messaging  Server  • Queues,  Topics,  persistent  messaging,  high  availability,  etc  

§  Apache  v2.0  License  §  Ac9ve  community,  Mature,  Stable  §  Used  at  top  companies  

•  Insurance,  banking,  retail,  ecommerce,  health  care,  avia9on,  shipping,  et.  al!  

§  5.8.0  latest  release  

Page 5: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

5  

Apache  Ac(veMQ  

§ High  performance  § High  Availability  §  Light-­‐weight  § Mul9-­‐protocol  §  JMS  compliant  §  Supported  in  Produc9on  

Page 6: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

6  

Accessible!  

§  Java  §  C/C++  h6p://ac9vemq.apache.org/cms/  §  .NET  h6p://ac9vemq.apache.org/nms/  §  PHP  §  Python  §  Ruby  §  PHP  §  JavaScript    §  Telnet!  §  Any  that  can  make  a  TCP  connec9on  and  send  Text!    

Page 7: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

7  

Transports  

§  TCP  §  UDP  §  SSL  §  NIO  §  HTTP/s  §  VM  § WS  (Web  Sockets)  § WSS  (Secure  Web  Sockets)  

Page 8: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

8  

Wire  Protocols  

§  Openwire  h6p://ac9vemq.apache.org/openwire.html  

§  Simple  Text  Oriented  Messaging  Protocol  (STOMP)  h6p://stomp.github.io  

§  AMQP  1.0  h6p://www.amqp.org/resources/specifica9ons  

§  MQTT  h6p://mq6.org  

§  HTTP/REST  

Page 9: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

9  

Ac(veMQ  Features  

§  Master/Slave  fault  tolerance  and  High  Availability  §  Broker  “networking”  or  clustering  §  Pluggable  persistence  (KahaDB,  LevelDB,  JDBC)  §  Broker  interoperability  (RabbitMQ,  HornetQ,  etc)  §  Virtual  Topics  §  Mirrored  Queues  §  JMX  Monitoring  

Page 10: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

10  

When  to  use  Messaging?  

§  Asynchronous  communica9on/integra9on  §  Durability  §  Loose  coupling  §  Heterogenous  integra9on  §  Real-­‐9me  data  

Page 11: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

11  

Configura(on  

Ac9veMQ  is  Highly  Configurable!!  

Page 12: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

12  

Performance/Benchmarking  Tools  

Page 13: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

13  

So  What  Are  We  Covering?  

§  Tools  §  How  to  approach  performance  tuning  §  Areas  to  tweak!  

Page 14: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

14  

What  are  Your  Objec(ves!?  

§  Please,  please,  please..  Know  what  you’re  trying  to  accomplish!  

§  Know  your  use  cases!  §  Know  your  hardware/OS  §  Understand  all  of  the  broker  config  changes  you  make!  

§  VALIDATE  YOUR  CHANGES!  

Page 15: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

15  

Broker  Benchmarking  Tools  

§  Ac9veMQ  Performance  Module  §  jms-­‐benchmark  §  JMSTester  §  Apache  Jmeter  §  Grinder  §  …?  

Page 16: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

16  

Ac(veMQ  Performance  Module  

§  Part  of  the  Ac9veMQ  Build  h6p://ac9vemq.apache.org/ac9vemq-­‐performance-­‐module-­‐users-­‐manual.html  

§ Maven  plugin  §  Quick  and  easy  to  get  started  §  Flexible  §  Records  throughput,  basic  sta9s9cs,  and  CPU  metrics  

Page 17: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

17  

jms-­‐benchmark  

§  Opensource  at  github,  from  Hiram  Chirinoh6p://github.com/chirino/jms-­‐benchmark  

§  Comprehensive  benchmarks  §  Configurable  §  All-­‐on-­‐one  §  Mul9ple  brokers  §  Pre6y  graphs!  

Page 18: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

18  

JmsTester  

§  From  FuseSource    h6p://jmstester.fusesource.org  

§  My  branch:  h6ps://github.com/chris9an-­‐posta/jms-­‐tester  

§  Allows  more  complicated  load  tes9ng  §  Distributed  §  Records  messaging  throughput  and  CPU,  Memory,  

Network  IO,  Disk  IO,  et  al.    §  Thorough  documenta9on    §  My  blog  post:    

h6p://www.chris9anposta.com/blog/?p=268  

Page 19: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

19  

JMeter    

§  Swiss  army  knife  of  load  tes9ng  §  From  Apache  

h6p://jmeter.apache.org  §  JMS,  HTTP,  TCP,  SOAP,  JDBC,    and  many  others  §  Many  aggregators  and  repor9ng  features  §  Mature  product,  well  known  

Page 20: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

20  

OS  Tools  

§  Lest  we  forget…  rely  heavily  on  the  tools  your  Opera9ng  System  exposes!  

§  Linux  •  top  •  iostat  •  netstat  •  vmstat  

§  Windows  •  Built  in  process,  resource  monitors  

Page 21: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

21  

Ac(veMQ  Performance  Module  

§  Maven  plugin  

§  Can  use  exis9ng  project:h6ps://svn.apache.org/repos/asf/ac9vemq/sandbox/ac9vemq-­‐persest  

§  Spin  up  producers,  consumers  §  Control  number  of  threads,  test  dura9ons,  etc  §  Stats  and  Repor9ng  

•  Throughput,  min/max,  broken  down  per  client  

   

 <plugin>                    <groupId>org.apache.ac9vemq.tooling</groupId>                    <ar9factId>ac9vemq-­‐perf-­‐maven-­‐plugin</ar9factId>                    <version>${ac9vemq-­‐version}</version>    </plugin>  

Page 22: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

22  

Using  Performance  Module  

§  Example:  

§  Out  of  the  box  examples:  

§  Other  out  of  the  box  profiles:  •  Producer  

–  AMQ-­‐Prod-­‐1-­‐1-­‐queue-­‐nonpersistent.proper9es  –  AMQ-­‐Prod-­‐10-­‐1-­‐queue-­‐nonpersistent.proper9es  –  AMQ-­‐Prod-­‐10-­‐10-­‐topic-­‐persistent.proper9es  

•  Consumer  –  AMQ-­‐Cons-­‐1-­‐1-­‐queue.proper9es  –  AMQ-­‐Cons-­‐10-­‐1-­‐topic-­‐durable.proper9es  –  AMQ-­‐Cons-­‐10-­‐10-­‐queue.proper9es  

user@computer> mvn activemq-perf:producer –Dfactory.brokerURL=tcp://localhost:61616

user@computer> mvn activemq-perf:producer \ –DsysTest.propsConfigFile=AMQ-prod-1-1-queue-persistent.properties

Page 23: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

23  

What  Broker  to  Use?  

§  Load  up  an  external  broker  •  Exis9ng  broker  •  No  maven  access  •  Different  machine  (good  idea!)  

§  Load  one  from  the  perf  module  •  Tests  and  broker  config  all  in  one  •  Simple  maven  command  

user@computer> mvn activemq-perf:broker –Durl=tcp://localhost:61616

Page 24: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

24  

Defaults  

§  Overall  •  tp,cpu  reports  •  5  min  •  30s  warm  up  30s  cool  down  •  1s  sample  rate  

§  Producer  •  Non-­‐persistent  •  Auto  ack  •  1K  message  size  

§  Consumer  •  Non  durable  subscrip9on  •  Auto  ack  •  No  tx  

Page 25: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

25  

25

Copyright  ©  2011    Progress  Sosware  Corpora9on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  Sosware  Company  FuseSource  Confiden9al  25  

Quick  Demo!  

Page 26: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

26  

Results  explana(on  

Page 27: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

27  

While  Running…  

§  Use  JConsole!  §  A  more  powerful  toolkit?  YourKit?  §  Rely  on  OS  monitoring,  top,  iostat,  etc  

Page 28: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

28  

28

Copyright  ©  2011    Progress  Sosware  Corpora9on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  Sosware  Company  FuseSource  Confiden9al  28  

Tuning  Ac(veMQ  

Page 29: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

29  

Approach  

§  Know  your  requirements  §  Use  real  hardware,  real  scenarios,  real  se}ngs  §  Know  what  config  changes  do!  §  Tune  §  Run  tests  §  Capture  results  §  Repeat  

§  Change  only  one  se}ng  at  a  9me!  

Page 30: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

30  

Where  are  the  BoPlenecks?  

§ Overall  system  § Network  latencies  § Disk  IO!  §  Threading  overheads  §  JVM  op9miza9ons  

Page 31: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

31  

Network  

§ Mbits/Gbits  per  second  throughput  §  Topology  

• Hops  • Switches  • Routes  • Gateways  

§  Firewalls  §  Internal/External  clients  

Page 32: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

32  

Disk  

§  Read/Write  speeds  §  Mechanical  vs  SSD  §  Shared  disks,  SAN,  NAS,  NFS,  etc  §  Ac9veMQ  DiskBenchmark:  

Benchmarking:  /Users/cposta/temp/test.dat  Writes:        159232  writes  of  size  4096  wri6en  in  10.244  seconds.      15543.928  writes/second.      60.718468  megs/second.    Sync  Writes:        33213  writes  of  size  4096  wri6en  in  10.001  seconds.      3320.968  writes/second.      12.972531  megs/second.    Reads:        5160332  reads  of  size  4096  read  in  10.001  seconds.      515981.6  writes/second.      2015.5531  megs/second.  

user@computer> java -classpath lib/activemq-kahadb-store-5.8.0.jar \org.apache.activemq.store.kahadb.disk.util.DiskBenchmark \/Users/cposta/temp/test.dat

Page 33: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

33  

Tune  What  Needs  Tuning!    

The following aren’t things you must or need do…

they are things to consider and can be worth tuning.

Your  specific  use  cases  will  illuminate  what  needs  tuning  

Page 34: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

34  

Transport  Tuning  

§  TCP  Tuning  •  Timeouts  (Handshake,  Teardowns)  •  Conges9on  avoidance,  sliding  windows  •  Send/Receive  Buffers!!  •  Default  64K,  but  increase  to  Bandwidth  Delay  Product  

–  Buffer  =  Bandwidth  *  RTT    h6p://www.speedguide.net/bdp.php  

–  See  h6p://en.wikipedia.org/wiki/TCP_tuning  

§  Configure  the  socket:  

§  transport.*  §  socket.*  

<transportConnector  name="openwire"              uri="tcp://0.0.0.0:61616?maximumConnec9ons=1000&              wireformat.maxFrameSize=104857600&transport.socketBufferSize=131072"  />  

Page 35: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

35  

Transport  Tuning…  

§  Buffering  between  Socket  and  Protocol  Codec  §  IOBufferSize  

•  Default  8k    

<transportConnector  name="openwire"              uri="tcp://0.0.0.0:61616?maximumConnec9ons=1000&              wireformat.maxFrameSize=104857600&transport.ioBufferSize=65536"  />  

Page 36: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

36  

Wire  Format  Tuning  

§  OpenWire  (default  protocol)  •  wireFormat.tcpNoDelayEnabled  –  whether  or  not  to  use  Nagle’s  

batching  algorithm  (default:  true  ..that  means  no  Nagle)  •  wireFormat.cacheSize  –  how  many  command  object  constants  to  

cache  (default:  1024)  •  wireFormat.cacheEnabled  –  turn  cache  on/off  (default:  true)  •  wireFormat.9ghtEncoding  –  reduce  network  load  (default:  true)  •  wireFormat.maxFrameSize  –  message  sizes  (default:  

Long.MAX_LONG)  •  wireFormat.maxInac9vityDura9on  –  monitors  period  of  inac9vity  

(default:  30000ms,  set  to  0  to  disable))  

<transportConnector  name="openwire"              uri="tcp://0.0.0.0:61616?wireFormat.tcpNoDelayEnabled=false"  />  

Page 37: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

37  

Tuning  Clients  

§  Compression  •  ?jms.useCompression=true    •  jms.*  configures  underlying  connec9on  factory  •  Uses  java.u9l.zip.Deflater  

§  Encoding  •  JMS  Message  types  

– Object  – Bytes  – Text  – Stream  – Map  

<transportConnector  name="openwire”  uri="tcp://0.0.0.0:61616?jms.useCompression=true"  />  

Page 38: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

38  

Tuning  Producers  

§  Producer  Flow  Control  •  Persistent  vs  non  persistent  messaging  •  Broker  vs  Client  •  Broker  memory,  client  producer  window  •  Default  sync  send  for  persistent,  async  send  for  non-­‐persistent  

and  transac9ons  (except  for  commit/rollback  opera9on)  •  En9re  connec9on  flow  control,  individual  des9na9on  flow  control,  

TCP  flow  control    •  Disable  flow  control  

§  jms.alwaysSyncSend  §  jms.useAsyncSend  §  Send  fail  if  no  space  

<policyEntry  queue=“queueWildcard”  producerFlowControl=“false”  />  

Page 39: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

39  

Failover  

§  Use  failover  transport  for  automa9c  reconnects  §  backup  §  priorityBackup  §  trackMessages  (default  false)  §  backOffMul9plier  §  maxReconnectA6empts  §  randomize  §  Can  automa9cally  get  updates  from  broker  when  cluster  

situa9on  changes  

failover:(tcp://primary:61616,tcp://secondary:61616)?randomize=false  

Page 40: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

40  

Other  Producer  Parameters    

§  jms.watchTopicAdvisories=false  §  jms.copyMessageOnSend  §  Batch  using  transac9ons  

Page 41: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

41  

Tuning  Consumers  

§  Prefetch  •  Queue  –  1000  •  Queue  Browser  –  500  •  Topic  –  32K  •  Durable  Topic  –  100  

§  Broker  side  memory  §  Client  side  memory  §  Consumer  starva9on  

Page 42: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

42  

Prefetch  SeXngs  

§  Broker  

§  Consumer  

§  Des9na9on  

 <broker  ...  >        <des9na9onPolicy>            <policyMap>                <policyEntries>                    <policyEntry  queue="queue.>"  queuePrefetch=”1”/>                    <policyEntry  topic="topic.>"  topicPrefetch=”1000”/>                </policyEntries>            </policyMap>        </des9na9onPolicy>    </broker>  

jms.prefetchPolicy.queuePrefetch=100  

new  Ac9veMQQueue("TEST.QUEUE?consumer.prefetchSize=10")  

Page 43: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

43  

Consumer  ACK  Modes  

§  Session.AUTO_ACKNOWLEDGE  §  Session.CLIENT_ACKNOWLEDGE  §  Session.DUPS_OKAY_ACKNOWLEDGE  §  Session.SESSION_TRANSACTED  §  Ac9veMQSession.INDIVIDUAL_ACKNOWLEDGE  §  jms.op9mizedAcknowledge  with  AUTO_ACK  

§  Note  the  differences  with  DUPS_OKAY_ACKNOWLEDGE  when  using  topics  or  queues.    

Page 44: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

44  

Other  Consumer  Parameters  

§  jms.alwaysSessionAsync  reduce  context  switching  §  MessageListener  faster  §  Spring  DMLC:  Cache  consumers  and  connec9ons!  

Page 45: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

45  

Tuning  Broker  Core  

§  Keep  an  eye  on  number  of  threads  •  UseDedicatedTaskRunner  –  use  a  dedicated  dispatch  thread  for  

queues  •  op9mizedDispatch  –  don’t  take  the  penalty  of  context  switch,  just  

let  the  transport  thread  do  the  dispatch  •  asyncDispatch  –  don’t  take  the  penalty  of  context  switch,  let  the  

dispatching  thread  send  to  the  consumer’s  transport  •  NIO  connector  nio://localhost:61616  

Page 46: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

46  

Broker  Resource  SeXngs  

§  MemoryUsage  se}ngs  for  messages  §  Caching  for  persistent  vs  non-­‐persistent  §  Policy  se}ngs,  memory  limits  for  des9na9ons,  cursor  high  

water  mark,  etc  §  Temp  usage  for  offlining  non-­‐persistent  messages  §  Use  the  right  combina9on  of  memory,  producer  flow  

control,  and  message  cursors  

Page 47: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

47  

Configura(on  of  Resources  

<!–  defaults  -­‐-­‐>  <systemUsage>      <systemUsage>          <memoryUsage>              <memoryUsage  limit="64  mb"  />          </memoryUsage>          <storeUsage>              <storeUsage  limit="100  gb"  />          </storeUsage>          <tempUsage>              <tempUsage  limit="10  gb"  />          </tempUsage>      </systemUsage>  </systemUsage>  

<policyEntry  queue=“queueWildcard”  memoryLimit=“10M”  />  

Page 48: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

48  

KahaDB  

§ Current  messaging  database  §  Fast,  op9mized  for  messaging  §  Journal  +  Index  +  write  ahead  log  §  Fast  recovery  §  Fewer  file  descriptors  

Page 49: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

49  

Tuning  KahaDB  

§  What  levels  of  reliability  must  you  have?  §  Durability  vs  throughput  §  fsync  vs  fflush  §  Areas  of  tuning  

•  Concurrent  store  and  dispatch  •  Index  paging,  caching,  page  size,  sync,  checkpoin9ng  •  Journal  sync,  file  length,  checkpoin9ng  

Page 50: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

50  

KahaDB  Journal  SeXngs  

§  enableJournalDiskSyncs  (default:  true)  §  cleanupInterval  (default:  30000ms)  §  checkForCorruptJournalFiles  (default:  false)  §  journalSize  (default:  32MB)  

<broker  brokerName="broker"  ...  >          <persistenceAdapter>              <kahaDB  directory="ac9vemq-­‐data"  journalMaxFileLength="32mb”                                                    cleanupInterval=“150000”  checkForCorruptJournalFiles=“true”/>          </persistenceAdapter>          ...      </broker>  

Page 51: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

51  

KahaDB  Index  SeXngs  

§  How  osen  the  index  writes  updates  •  checkpointInterval  (default:  5000),  indexWriteBatchSize  (default:  

1000)  •  Can  amor9ze  cost  across  small  writes?  Or  batch  them  up  for  

larger  writes  

§  Size  of  the  index  in  memory  •  indexCacheSize  (default:  10000)  

§  Sync  to  disk  •  enableIndexDiskSyncs  (default:  true)  <broker  brokerName="broker"  ...  >          <persistenceAdapter>              <kahaDB  directory="ac9vemq-­‐data"  journalMaxFileLength="32mb”                                                    indexCacheSize=“40000”  enableIndexDiskSyncs=“false”/>          </persistenceAdapter>          ...      </broker>  

Page 52: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

52  

Tradeoffs  

§  Point  to  point,  publish  subscribe  §  Levels  of  durability  §  Duplicate  messages  §  Security  §  Throughput  §  Priority  

Page 53: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

53  

Summary  

§  Ac9veMQ  is  a  highly  tunable,  configurable  piece  of  server  sosware  

§  Know  your  use  cases  and  requirements  §  Use  tools  to  not  only  load  the  broker,  but  monitor  the  

bo6lenecks  §  Tune  for  producers/consumers,  broker  core,  network,  and  

disk  IO  §  Ask  the  computer!  

Page 54: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

54  

54

Copyright  ©  2011    Progress  Sosware  Corpora9on  and/or  its  subsidiaries  or  affiliates.  All  rights  reserved.     A  Progress  Sosware  Company  FuseSource  Confiden9al  54  

Ques(ons?  

Page 55: ActiveMQ Performance Tuning

© 2012 FuseSource Corp. All rights reserved. ������  

55  

Useful  Links  

§  Apache  Ac9veMQ  h6p://ac9vemq.apache.org/  

§  JMS  Benchmarks  h6p://github.com/chirino/jms-­‐benchmark  

§  Ac9veMQ  Performance  module  tools:h6p://svn.apache.org/repos/asf/ac9vemq/sandbox/ac9vemq-­‐persest    

§  Lots  of  blogging  about  Ac9veMQ  J  h6p://chris9anposta.com/blog