TomcatMemcached

来源:互联网 发布:java中如何计算时间差 编辑:程序博客网 时间:2024/06/05 15:06

TomcatMemcached

Contents

  • 1Get the jars
  • 2builtin java serialization mode
  • 3KryoTranscoderFactory
  • 4sample webapp
  • 5JMX Statistics
  • 6List Sessions
  • 7See Also

Get the jars

Download the latest memcached-session-manager, memcached-session-manager-tc6, spymemcached,couchbase-client jars fromhttp://code.google.com/p/memcached-session-manager/ and place them in the tomcat lib directory.

[quick@laptop lib]$ pwd/home/quick/tomcat1/lib[quick@laptop lib]$ lsannotations-api.jar  couchbase-client-1.1.4.jar  jsp-api.jar                              tomcat-coyote.jarcatalina-ant.jar     ecj-4.2.2.jar               memcached-session-manager-1.6.5.jar      tomcat-dbcp.jarcatalina-ha.jar      el-api.jar                  memcached-session-manager-tc6-1.6.5.jar  tomcat-i18n-es.jarcatalina.jar         jasper-el.jar               servlet-api.jar                          tomcat-i18n-fr.jarcatalina-tribes.jar  jasper.jar                  spymemcached-2.8.12.jar                  tomcat-i18n-ja.jar

builtin java serialization mode

For the builtin java serialization mode, add the following manager configuration to tomcat1/conf/context.xml and update the memcachedNodes.

<!-- The contents of this file will be loaded for each web application --><Context>    <!-- Default set of monitored resources -->    <WatchedResource>WEB-INF/web.xml</WatchedResource>    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"       memcachedNodes="n1:192.168.1.5:11211,n2:192.168.1.20:11211"       failoverNodes="n1"       requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"       transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"    /></Context>

KryoTranscoderFactory

Use this instead of the default above for better performance. As per docs, install msm-kryo-serializer, kryo-serializers-0.10 (0.10 is needed, as 0.20+ is for kryo2), kryo, minlog, reflectasm, asm-3.2.

[quick@laptop lib]$ pwd/home/quick/tomcat1/lib[quick@laptop lib]$ lsannotations-api.jar         jasper-el.jar                            msm-kryo-serializer-1.6.5-javadoc.jarasm-3.2.jar                 jasper.jar                               reflectasm-1.01.jarcatalina-ant.jar            jsp-api.jar                              servlet-api.jarcatalina-ha.jar             kryo-1.04.jar                            spymemcached-2.8.12.jarcatalina.jar                kryo-serializers-0.10.jar                tomcat-coyote.jarcatalina-tribes.jar         memcached-session-manager-1.6.5.jar      tomcat-dbcp.jarcouchbase-client-1.1.4.jar  memcached-session-manager-tc6-1.6.5.jar  tomcat-i18n-es.jarecj-4.2.2.jar               minlog-1.2.jar                           tomcat-i18n-fr.jarel-api.jar                  msm-kryo-serializer-1.6.5.jar            tomcat-i18n-ja.jar

And update transcoderFactoryClass in the context.xml above.

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

sample webapp

https://github.com/magro/msm-sample-webapp

http://linuxproblems.org/msm-sample-webapp-1.0-SNAPSHOT.war

JMX Statistics

Enable jmx on tomcat eg:

export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

Use the following groovy script msm.groovy to print out the JMXStatistics:

[quick@laptop ~]$ groovy msm Catalina:type=Manager,path=/msm-sample-webapp-1.0-SNAPSHOT,host=192.168.1.5jvmRoute: jvm1msmStatNumNoSessionModification: 0msmStatSessionsDeletedFromMemcachedInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]sessionAttributeFilter: nullmsmStatNonStickyAfterLoadFromMemcachedInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]msmStatMemcachedUpdateInfo: [Count = 5, Min = 1, Avg = 18.0, Max = 73]entropy: de.javakaffee.web.msm.MemcachedBackupSessionManager@152a656msmStatBackupInfo: [Count = 5, Min = 5, Avg = 70.4, Max = 242]memcachedNodes: n1:192.168.1.5:11211,n2:192.168.1.20:11211info: MemcachedBackupSessionManager/1.0backupThreadCount: 1distributable: falsesessionCreateRate: 0sessionExpireRate: 0msmStatNonStickyAcquireLockFailureInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]msmStatAttributesSerializationInfo: [Count = 5, Min = 3, Avg = 45.2, Max = 133]enabled: truemsmStatNumRequestsWithoutSession: 0duplicates: 0sessionIdLength: 16processingTime: 0failoverNodes: n1msmStatCachedDataSizeInfo: [Count = 5, Min = 2829, Avg = 5772.2, Max = 7752]msmStatNonStickyAcquireLockInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]msmStatNumTomcatFailover: 0sessionBackupTimeout: 100msmStatSessionDeserializationInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]msmStatNumNonStickySessionsPingFailed: 0msmStatNumMemcachedFailover: 0msmStatNonStickyAfterDeleteFromMemcachedInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]msmStatNonStickyAfterBackupInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]maxInactiveInterval: 1800sessionAverageAliveTime: 0sessionBackupAsync: trueinitialized: trueoperationTimeout: 1000modelerType: de.javakaffee.web.msm.MemcachedBackupSessionManagerprocessExpiresFrequency: 6sessionCookieName: JSESSIONIDalgorithm: MD5maxActive: 1msmStatNonStickyOnBackupWithoutLoadedSessionInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]msmStatEffectiveBackupInfo: [Count = 6, Min = 0, Avg = 6.0, Max = 12]msmStatNumBackupFailures: 0msmStatNonStickyReleaseLockInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]maxActiveSessions: -1msmStatNumNoSessionAccess: 1name: MemcachedBackupSessionManagerdomain: CatalinaclassName: de.javakaffee.web.msm.MemcachedBackupSessionManagermsmStatNumNoAttributesAccess: 0sessionMaxAliveTime: 0msmStatNumNonStickySessionsReadOnlyRequest: 0objectName: Catalina:type=Manager,path=/msm-sample-webapp-1.0-SNAPSHOT,host=192.168.1.5activeSessions: 1randomClass: java.security.SecureRandomsessionCounter: 1msmStatSessionsLoadedFromMemcachedInfo: [Count = 0, Min = 0, Avg = 0.0, Max = 0]sticky: truerandomFile: /dev/urandomrejectedSessions: 0msmStatNumRequestsWithSession: 7expiredSessions: 0

List Sessions

This is a script msmsessions.groovy to list the sessionids, and the creation and last access times for each session:

[quick@laptop ~]$ groovy msmsessions Catalina:type=Manager,path=/msm-sample-webapp-1.0-SNAPSHOT,host=192.168.1.5 D1D5711257D303E26DF9EA7FDF18C986-n2.jvm1: Sun Jun 30 17:03:40 BST 2013, Sun Jun 30 17:41:04 BST 2013DE1B282F4282B3A0C61B95DC37F20251-n2.jvm1: Sun Jun 30 17:40:57 BST 2013, Sun Jun 30 17:40:57 BST 2013

See Also

Memcached


原创粉丝点击