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
- TomcatMemcached
- Oracle数据库中修改表结构SQL
- apue chapter [5-6]
- UIViewController使用技巧!
- 管理里面的服务
- 详解clientHeight、offsetHeight、scrollHeight
- TomcatMemcached
- nginx添加model
- 执行计划
- 简要介绍 Hadoop
- 单点更新线段树 RMQ
- 2 WAN 和1 Evo/3g Routeros PCC 方法负载平衡
- android Web Service
- 使用Xcode修改iOS项目工程名和路径名
- JavaFTP - Apache Ftp Server Integration