JConsole可以帮助你监控虚拟机的状态,垃圾回收的时间,调整JVM的性能有非常直观的作用,JConsole还可以帮助你查找死锁,内存溢出等问题提供数据上的支持
1.Red5 0.7版本:
Red 5 0.7版本配置远程监控比较简单,只要修改red5.sh就可以了我的配置如下:
#!/bin/bash
for JAVA in "$JAVA_HOME/bin/java" "/usr/bin/java" "/usr/local/bin/java"
do
if [ -x $JAVA ]
then
break
fi
done
if [ ! -x $JAVA ]
then
echo "Unable to locate Java. Please set JAVA_HOME environment variable."
exit
fi
# start Red5
exec $JAVA -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -Xms384m -Xmx512m -XX:+UseParNewGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/localhost -Djava.security.manager -Djava.rmi.server.hostname=172.168.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10900 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=jmxremote.password -Dcom.sun.management.jmxremote.ssl=false -Djava.security.policy=conf/red5.policy -cp red5.jar:conf:$CLASSPATH org.red5.server.Standalone
2.Red5 0.9版本:
在0.9版本要稍微复杂一点,要修改两个地方
1) 修改red5.sh
#!/bin/bash
if [ -z "$RED5_HOME" ]; then
export RED5_HOME=`pwd`;
fi
P=":" # The default classpath separator
OS=`uname`
case "$OS" in
CYGWIN*|MINGW*) # Windows Cygwin or Windows MinGW
P=";" # Since these are actually Windows, let Java know
;;
Darwin*)
;;
*)
# Do nothing
;;
esac
echo "Running on " $OS
# JAVA options
# You can set JAVA_OPTS to add additional options if you want
# Set up logging options
LOGGING_OPTS="-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true"
# Set up security options
SECURITY_OPTS="-Djava.security.debug=failure"
export JAVA_OPTS="-Xrs -Xms384M -Xmx512M -Xss128K -XX:NewSize=192m -XX:SurvivorRatio=16 -XX:MinHeapFreeRatio=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/heapDump.bin -Djava.security.manager -Djava.rmi.server.hostname=172.168.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10901 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.security.policy=conf/red5.policy "
export JAVA_OPTS="$LOGGING_OPTS $SECURITY_OPTS $JAVA_OPTS"
if [ -z "$RED5_MAINCLASS" ]; then
export RED5_MAINCLASS=org.red5.server.Bootstrap
fi
# Jython options
JYTHON="-Dpython.home=lib"
for JAVA in "${JAVA_HOME}/bin/java" "${JAVA_HOME}/Home/bin/java" "/usr/bin/java" "/usr/local/bin/java"
do
if [ -x "$JAVA" ]
then
break
fi
done
if [ ! -x "$JAVA" ]
then
echo "Unable to locate Java. Please set JAVA_HOME environment variable."
exit
fi
export RED5_CLASSPATH="${RED5_HOME}/boot.jar${P}${RED5_HOME}/conf${P}${CLASSPATH}"
# start Red5
echo "Starting Red5"
exec "$JAVA" "$JYTHON" -Dred5.root="${RED5_HOME}" $JAVA_OPTS -cp "${RED5_CLASSPATH}" "$RED5_MAINCLASS" $RED5_OPTS
2) 修改conf/red5.properties
将jmx的host 的ip地址填上,原来是0.0.0.0,改成你需要监控server 的IP
jmx.rmi.host=172.168.0.1