<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

	<properties>
		<title>Performance Tuning</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>

		<section name="Performance Tuning">

			<p>To use the optimum of performance from your server there is a
				start-script for red5 available that does some basic settings in the
				JVM. It is called red5-highperf.sh. It is recommended to use that
				script for production and high-load scenarios.
			</p>
			<div class="xmlcode">
				#!/bin/bash
				<br />
				<br />
				if [ -z "$RED5_HOME" ]; then export RED5_HOME=.; fi
				<br />
				<br />
				# Previous option set
				<br />
				export JAVA_OPTS="-Xrs -Xms512M -Xmx1024M -Xss128K -XX:NewSize=256m
				-XX:SurvivorRatio=16 -XX:MinHeapFreeRatio=20
				-XX:+ExplicitGCInvokesConcurrent -Djava.net.preferIPv4Stack=true
				-Xverify:none"
				<br />
				<br />
				# start Red5
				<br />
				echo "Setting Hi Performance Options"
				<br />
				exec $RED5_HOME/red5.sh >> $RED5_HOME/log/jvm.stdout 2>&amp;1 &amp;
				<br />
			</div>

			<p>You have to exclude the "-XX:+UseConcMarkSweepGC" param from the
				default red5-highperf.sh to make it functional! However if you are a
				performance expert you might also play with the values to find
				perfect matches for your use-case.
			</p>
			<p>
				For a complete overview about possible arguments and their meaning
				see:
				<a
					href="http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#PerformanceTuning"
					rel="nofollow">http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#PerformanceTuning
				</a>
			</p>

		</section>

	</body>

</document>