You are viewing a plain text version of this content. The canonical link for it is here.
Posted to olio-commits@incubator.apache.org by sh...@apache.org on 2009/03/11 00:25:09 UTC

svn commit: r752318 - in /incubator/olio/docs: README php_setup_kit.html

Author: shanti
Date: Wed Mar 11 00:25:08 2009
New Revision: 752318

URL: http://svn.apache.org/viewvc?rev=752318&view=rev
Log:
Added doc for setting up Olio/php from tarball. 
Added README explaining what the different files are in this dir.

Added:
    incubator/olio/docs/README
    incubator/olio/docs/php_setup_kit.html

Added: incubator/olio/docs/README
URL: http://svn.apache.org/viewvc/incubator/olio/docs/README?rev=752318&view=auto
==============================================================================
--- incubator/olio/docs/README (added)
+++ incubator/olio/docs/README Wed Mar 11 00:25:08 2009
@@ -0,0 +1,3 @@
+The *_setup.html files give instructions on how to setup Olio from the source repository.
+The *_setup_kit.html files give instructions on how to setup Olio from the tarball
+available for download.

Added: incubator/olio/docs/php_setup_kit.html
URL: http://svn.apache.org/viewvc/incubator/olio/docs/php_setup_kit.html?rev=752318&view=auto
==============================================================================
--- incubator/olio/docs/php_setup_kit.html (added)
+++ incubator/olio/docs/php_setup_kit.html Wed Mar 11 00:25:08 2009
@@ -0,0 +1,491 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
+	<TITLE>Olio/PHP Install and Setup Guide</TITLE>
+	<META NAME="GENERATOR" CONTENT="NeoOffice 2.2  (Unix)">
+	<META NAME="AUTHOR" CONTENT="Akara Sucharitakul">
+	<META NAME="CREATED" CONTENT="20070926;10111500">
+	<META NAME="CHANGED" CONTENT="20090310;17144700">
+	<STYLE TYPE="text/css">
+	<!--
+		H1 { color: #000000 }
+		P { color: #000000 }
+		H2 { color: #000000 }
+	-->
+	</STYLE>
+</HEAD>
+<BODY LANG="en-US" TEXT="#000000" DIR="LTR">
+<H1 ALIGN=CENTER>Olio/PHP <BR>Install and Setup Guide from Tarball</H1>
+<H2>Overview</H2>
+<P>Olio is a macro-level toolkit consisting of the following
+components:</P>
+<OL>
+	<LI><P STYLE="margin-bottom: 0in">The web application 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in">The main database 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in">Distributed storage servers (NFS
+	or MogileFS)</P>
+	<LI><P STYLE="margin-bottom: 0in">The caching server (memcached)</P>
+	<LI><P STYLE="margin-bottom: 0in">Storage metadata database (for
+	MogileFS only)</P>
+	<LI><P STYLE="margin-bottom: 0in">Geocoder emulator 
+	</P>
+	<LI><P>Workload driver 
+	</P>
+</OL>
+<P>If your primary interest is in setting up the application alone,
+you need items 1-5 above and they can all be setup on a single
+system. If on the other hand, you would like to drive load against
+the application, you will need at least 2 systems. At higher loads,
+you may need multiple systems. At a minimum, we need to separate the
+SUT (System Under Test) components and the non-SUT components to get
+valid results. The non-SUT components are the Geocoder emulator and
+the workload driver. It is best to connect the driver machine to the
+SUT machine on a local private network. This ensures that latencies
+measured do not include arbitrary delays.</P>
+<P>For a horizontally scaled workload, or to measure the performance
+of the individual components, you can deploy the SUT components on
+separate physical or virtual machines. Keep in mind though that the
+bulk of the CPU is consumed in the web application tier (apache/php).</P>
+<P STYLE="margin-bottom: 0in">In the following sections, we will go
+over the steps needed to configure each component :</P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P><A HREF="#Contents">Extracting the contents</A></P>
+<P><A HREF="#setupDriver"><U>Setting up the driver</U></A></P>
+<P><A HREF="#installWebApp">Installing the Web Application</A></P>
+<P><A HREF="#setupDB">Setting up the database</A></P>
+<P><A HREF="#loadDB">Loading the database</A></P>
+<P><A HREF="#setupFileStore">Setting up the filestore</A></P>
+<P><A HREF="#setupEmulator">Setting up the Geocoder Emulator</A></P>
+<P><A HREF="#testWebApp">Testing the web application</A></P>
+<P><A HREF="#startRun">Starting a performance test</A></P>
+<H2>Extracting the Contents</H2>
+<P>The Olio/PHP kit is packaged as a gzipped tar file. The first task
+is to unzip the file and untar it to extract it's contents. This can
+be done as follows:</P>
+<P><FONT FACE="Courier New, monospace"><FONT SIZE=2 STYLE="font-size: 11pt">#
+gzcat <I>olio-php-&lt;version&gt;b&lt;build_date&gt;</I>.tar.gz | tar
+xvf -</FONT></FONT></P>
+<P>This will cause a directory named
+olio-php-<I>&lt;version&gt;</I>b<I>&lt;build_date&gt;</I><SPAN STYLE="font-style: normal">to
+be created whose contents should look like:</SPAN></P>
+<P STYLE="margin-bottom: 0.04in"><FONT FACE="Courier New, monospace"><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN STYLE="font-style: normal">#
+ls olio-php-0.1*</SPAN></FONT></FONT></P>
+<P STYLE="margin-bottom: 0.04in"><FONT FACE="Courier New, monospace"><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN STYLE="font-style: normal">LICENSE
+             OlioDriver.jar       geocoder.war        
+php_setup_kit.html</SPAN></FONT></FONT></P>
+<P STYLE="margin-bottom: 0.04in"><FONT FACE="Courier New, monospace"><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN STYLE="font-style: normal">NOTICE
+              OlioDriver_src.zip   oliophp/             release</SPAN></FONT></FONT></P>
+<P STYLE="margin-bottom: 0.04in"><FONT FACE="Courier New, monospace"><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN STYLE="font-style: normal">#
+</SPAN></FONT></FONT>
+</P>
+<P>We will use $OLIO_HOME to designate the name of this directory. A
+description of the contents follows :</P>
+<UL>
+	<LI><P>The <I>oliophp</I> directory contains the web application.
+	This application will be deployed on the webserver.</P>
+	<LI><P><I>OlioDriver.jar</I> contains the load generator/driver
+	(which we typically refer to simply as <I>driver</I>). The driver is
+	implemented using <A HREF="http://faban.sunsource.net/"><I>Faban</I></A>
+	– an open source benchmarking toolkit.</P>
+	<LI><P><I>geocoder.war</I>  contains the simple servlet used to
+	emulate the geocoder.</P>
+	<LI><P> <I>php_setup_kit.html</I> is this document.</P>
+	<LI><P><I>release</I> contains the release name. LICENSE and NOTICE
+	contain the licenses.</P>
+</UL>
+<H2>Setting up the Driver</H2>
+<P>Even if you don't plan to drive load against the application,
+steps 1 and 2 are required as the database and file loaders are part
+of the workload driver – feel free to install the driver on the
+same system as the web application.</P>
+<OL>
+	<LI><P ALIGN=LEFT>See
+	<A HREF="http://faban.sunsource.net/docs/guide/harness/install.html">http://faban.sunsource.net/docs/guide/harness/install.html</A>
+	for Faban installation instructions. Note that faban needs to be
+	installed on all the machines used for the test. Please also read
+	the <I>Getting Started Guide</I> to get a high-level understanding
+	of Faban terminology and how it works. From now on, we will refer to
+	the faban install directory as $FABAN_HOME.</P>
+</OL>
+<OL START=3>
+	<LI><P ALIGN=LEFT>Copy $OLIO_HOME/Olio<SPAN STYLE="font-weight: medium">Driver</SPAN><I><SPAN STYLE="font-weight: medium">.</SPAN></I><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">jar</SPAN></SPAN>
+	to the $FABAN_HOME/benchmarks directory. Also copy the
+	OlioDriver.jar file to the $FABAN_HOME/benchmarks directory on the
+	web server system.</P>
+	<LI><P ALIGN=LEFT>For the driver to work, you will need JDK 1.6. Set
+	JAVA_HOME to the path of the JDK in the faban user's environment.</P>
+	<LI><P ALIGN=LEFT>Start the faban master on the master driver
+	machine :</P>
+	<P ALIGN=LEFT>$FABAN_HOME/master/bin/startup.sh</P>
+	<LI><P ALIGN=LEFT>Test that you can connect to the master by
+	pointing your browser at http://<I>&lt;driver_machine&gt;</I>:9980. 
+	</P>
+</OL>
+<H2><A NAME="installWebApp"></A><FONT SIZE=4>Installing the Web
+Application</FONT></H2>
+<P>The web application is a PHP application. It requires the
+following components:</P>
+<OL>
+	<LI><P STYLE="margin-bottom: 0in">A web server such as Apache2 or
+	Lighttpd</P>
+	<LI><P STYLE="margin-bottom: 0in">PHP 5 with extensions: apc.so,
+	curl.so, gd.so, pdo_mysql.so</P>
+	<LI><P STYLE="margin-bottom: 0in">MySQL 5</P>
+	<LI><P STYLE="margin-bottom: 0in">Memcached 
+	</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P>All of these applications are included in OpenSolaris. If you're
+running on any other operating system, please install the above
+applications.<BR><BR>Once you have the application stack installed,
+follow the steps below to set up the application. 
+</P>
+<OL>
+	<LI><P>Decide where you want to install the web application. The
+	default for apache is the htdocs sub-directory but a common location
+	is /var/www. Create a sub-directory <I>oliophp</I> where the php
+	application will reside and copy the contents of $OLIO_HOME/oliophp
+	to this directory. We will use $APP_DIR to refer to this location.
+	Ensure that all files in $APP_DIR are readable by the world.</P>
+	<LI><P>Edit the httpd.conf used by your system's apache
+	installation. Set the <B>Listen</B> parameter to the hostname or ip
+	address and set the <B>DocumentRoot</B> to $APP_DIR/public_html. See
+	the <I>httpd.conf </I>file in $APP_DIR/etc for additional settings.</P>
+	<LI><P STYLE="margin-bottom: 0in">See the php.ini provided in
+	$APP_DIR/etc and copy the settings appropriately to the php.ini for
+	your installation.</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P STYLE="margin-bottom: 0in"><A NAME="setupDB"></A><BR><FONT SIZE=4><B>Setting
+up the database</B></FONT> 
+</P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL>
+	<LI><P>If you plan to run MySQL on a separate machine, install MySQL
+	on that system. We will refer to the MySQL installation directory as
+	MYSQL_HOME.</P>
+	<LI><P>Setup the mysql user/group and permissions for it's
+	directories: <BR><FONT FACE="monospace"># groupadd mysql </FONT><BR><FONT FACE="monospace">#
+	useradd -d $MYSQL_HOME -g mysql -s /usr/bin/bash&nbsp;mysql<BR>#
+	chown -R mysql:mysql $MYSQL_HOME</FONT></P>
+	<LI><P>Create the database:<BR><FONT FACE="monospace"># su - mysql</FONT><BR><FONT FACE="monospace">$
+	cd&nbsp;bin</FONT><BR><FONT FACE="monospace">$ ./mysql_install_db</FONT></P>
+	<LI><P STYLE="margin-bottom: 0.1in"><FONT FACE="Times New Roman, serif">A
+	sample MySQL configuration file (my.cnf) is included in the
+	$APP_DIR/etc. Please read the embedded comments and edit the file
+	appropriately after copying it to /etc. </FONT>
+	</P>
+	<LI><P>Start the mysql server using the my.cnf file. Substitute your
+	own password for <I>pwd </I><SPAN STYLE="font-style: normal">(we
+	typically use</SPAN> <I>adminadmin</I><SPAN STYLE="font-style: normal">)</SPAN><BR><FONT FACE="monospace">$&nbsp;./mysqld_safe
+	–defaults-file=/etc/my.cnf &amp;</FONT><BR><FONT FACE="monospace">$
+	./mysqladmin -u root password </FONT><FONT FACE="monospace"><I>pwd</I></FONT></P>
+	<LI><P>Create the olio user and grant privileges:<BR><FONT FACE="monospace">$
+	./mysql -uroot -p</FONT><FONT FACE="monospace"><I>pwd</I></FONT><BR><FONT FACE="monospace">mysql&gt;
+	create user 'olio'@'%' identified by 'olio';</FONT><BR><FONT FACE="monospace">mysql&gt;
+	grant all privileges on *.* to 'olio'@'%' identified by 'olio' with
+	grant option;<BR></FONT><BR>In some cases the wildcard '%' does not
+	work reliably as a substitution for all hosts. You need to grant the
+	privileges to 'olio'@'&lt;hostname&gt;' individually, where hostname
+	are the names of the driver, database (localhost) and web server
+	systems.</P>
+	<LI><P STYLE="margin-bottom: 0in">Create database<BR><FONT FACE="monospace">mysql&gt;
+	create database olio;</FONT><BR><FONT FACE="monospace">mysql&gt; use
+	olio;</FONT> 
+	</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=7>
+	<LI><P>To create the database schema, you first need to copy the
+	schema script from the driver system. It is located in
+	$FABAN_HOME/benchmarks/OlioDriver/bin/schema.sql. Copy the script
+	anywhere on the database server and create the schema:</P>
+</OL>
+<P STYLE="margin-left: 0.55in"><FONT FACE="Monospace">$ mysql -uroot
+-ppwd</FONT><BR><FONT FACE="monospace">mysql&gt; \.
+</FONT><FONT FACE="monospace"><I>&lt;location&gt;</I></FONT><FONT FACE="monospace">/schema.sql<BR>mysql&gt;
+exit</FONT><BR><FONT FACE="monospace">$</FONT><BR><BR>Now, if you
+login as the user <I>olio</I>, you should be able to see the database
+created by the root user.</P>
+<H2><A NAME="loadDB"></A><FONT SIZE=4>Loading the database</FONT></H2>
+<P><FONT SIZE=3>It is best to load the database manually the first
+time so that we can test the web application. However, while doing
+performance tests, the load driver can be configured to automatically
+re-load the database before the run.</FONT></P>
+<OL>
+	<LI><P><FONT SIZE=3>Login to the machine running the Faban master
+	driver. Only this machine has the loader at this time.</FONT></P>
+	<LI><P STYLE="margin-bottom: 0in"><FONT SIZE=3>Go to the directory
+	containing the loader script:<BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
+	cd </FONT></FONT><FONT FACE="monospace"><I>$FABAN_HOME</I></FONT><FONT FACE="monospace">/benchmarks/OlioDriver/bin</FONT></P>
+</OL>
+<OL START=3>
+	<LI><P STYLE="margin-bottom: 0in">Ensure the script has execute
+	permissions. Faban takes care of this for the runs, but since we
+	have not yet started the first run, we will need to change that
+	ourselves:<BR><FONT FACE="monospace"># chmod +x dbloader.sh</FONT></P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=4>
+	<LI><P>Run the loader script:<BR><FONT FACE="monospace">#
+	./dbloader.sh </FONT><FONT FACE="monospace"><I>&lt;dbserver&gt;
+	&lt;load_scale&gt;</I></FONT><BR>You can start small with a SCALE of
+	50 for initial testing. 
+	</P>
+	<LI><P STYLE="margin-bottom: 0.1in">Edit the $APP_DIR/etc/config.php
+	and set the database host name, replacing <I>localhost</I> in the
+	dbTarget entry.</P>
+</OL>
+<P STYLE="margin-left: 0.79in; margin-bottom: 0.04in"><FONT FACE="Courier New, monospace"><FONT SIZE=2 STYLE="font-size: 11pt">$olioconfig['dbTarget']
+= 'mysql:host=localhost;dbname=olio'; // PDO target.</FONT></FONT></P>
+<H2><A NAME="setupFileStore"></A><FONT SIZE=4>Setting up the
+filestore</FONT></H2>
+<P><FONT SIZE=3>Olio can be configured to use either a local
+filesystem or MogileFS for the object data. Our initial testing with
+MogileFS found some severe performance issues, so for now we advice
+using a local filesystem or network file system such as NFS. You will
+need about 50GB of space for the data, as the data does grow over
+runs. Using a single spindle does work but may create performance
+bottlenecks. We recommend striping the filesystem across at least 3
+spindles to avoid such bottlenecks. A local file system needs to be
+setup on the same machine as the web application. A network file
+system can reside on a separate server but needs to be exported and
+mounted on the system running the web application.</FONT></P>
+<OL>
+	<LI><P><FONT SIZE=3>Create a directory (or mount a filesystem)
+	designated for storing the image and binary files. This directory is
+	referred to as $FILESTORE. Any valid name for the OS should be fine.
+	Ensure that everyone has read and write access to it:<BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
+	mkdir -p </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><SPAN STYLE="font-style: normal">$FILESTORE</SPAN></FONT></FONT><FONT SIZE=3><BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
+	chmod a+rwx </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><SPAN STYLE="font-style: normal">$FILESTORE</SPAN></FONT></FONT></P>
+	<LI><P><FONT SIZE=3>Now load the filestore. You should have the
+	$FABAN_HOME/benchmarks/OlioDriver.jar file on this system.<BR></FONT><FONT FACE="monospace"><FONT SIZE=3><BR>#
+	JAVA_HOME</FONT></FONT><FONT FACE="mon"><FONT SIZE=3><I>=</I></FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><I>&lt;java_install_dir&gt;</I></FONT></FONT><FONT FACE="monospace"><FONT SIZE=3>;
+	export $JAVA_HOME</FONT></FONT></P>
+</OL>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0.04in"><FONT FACE="monospace"><FONT SIZE=3>#
+cd $FABAN_HOME/benchmarks; mkdir olio</FONT></FONT></P>
+<P STYLE="margin-left: 0.52in"><FONT FACE="monospace"><FONT SIZE=3>#
+cd olio; jar xvf ../OlioDriver.jar; chmod a+x bin/*</FONT></FONT><FONT SIZE=3><BR></FONT><FONT FACE="monospace"><FONT SIZE=3>#
+$FABAN_HOME/benchmarks/olio/bin/fileloader.sh </FONT></FONT><FONT FACE="monospace"><FONT SIZE=3><I>&lt;load_scale&gt;
+$FILESTORE</I></FONT></FONT> 
+</P>
+<OL START=2>
+	<P><FONT SIZE=3>This loads files for use for up to <FONT FACE="monospace"><I>load_scale</I></FONT>
+	number of active users.</FONT></P>
+	<LI><P><FONT SIZE=3>Edit the $APP_DIR/etc/config.php parameter
+	</FONT>localfsRoot and set it to $FILESTORE. 
+	</P>
+</OL>
+<H2><A NAME="setupEmulator"></A><FONT SIZE=4>Setting up the Geocoder
+Emulator</FONT></H2>
+<P>The Geocoder Emulator is a simple servlet deployed on Tomcat. It
+is typically run on a driver machine. The following steps describe
+how to install it :</P>
+<OL>
+	<LI><P>Donwload and install Tomcat (from <A HREF="http://tomcat.apache.org/">http://tomcat.apache.org</A>)
+	on the driver machine. The install directory doesn't matter – we
+	will refer to it as $TOMCAT_HOME. 
+	</P>
+	<LI><P>Copy $OLIO_HOME/geocoder.war file to $TOMCAT_HOME/webapps.</P>
+	<LI><P>Start Tomcat using $TOMCAT_HOME/bin/startup.sh.</P>
+	<LI><P>Edit $APP_DIR/etc/config.php parameter geocoderURL and
+	replace <I>GEOCODER_HOST:8080</I> with the host and port where
+	Tomcat is running.</P>
+</OL>
+<H2><FONT SIZE=4>Setting up memcached</FONT></H2>
+<P><FONT SIZE=3>The Olio application uses memcached for caching the
+home page which dramatically reduces the load on the database. If you
+are running Olio to stress MySQL, you may not want to have the
+caching tier. In this case, set the <I>CacheSystem</I> to <I>NoCache</I>
+in $APP_DIR/etc/config.php. This will eliminate the use of memcached
+and all requests will directly go to the database. However, if you do
+want to use memcached (scaling will be very difficult without it),
+you need to setup an instance of memcached. This can typically run on
+the same system as the web server. </FONT>
+</P>
+<OL>
+	<LI><P><FONT SIZE=3>Download and install memcached on the system you
+	plan to use.</FONT></P>
+	<LI><P><FONT SIZE=3>Start memcached : “memcached -u mysql &amp;”</FONT></P>
+	<LI><P><FONT SIZE=3>Edit $APP_DIR/etc/config.php and replace
+	MEMCACHED_HOST with the host name where memcached is running. </FONT>
+	</P>
+</OL>
+<H2><A NAME="testWebApp"></A><FONT SIZE=4>Testing the web application</FONT></H2>
+<OL>
+	<LI><P><FONT SIZE=3>Start apache. This can be done by executing
+	“$APACHE_HOME/bin/apachectl start”. Check that you can connect
+	to it from your browser at the port apache is listening on
+	(http://<I>host</I>:80).</FONT></P>
+	<LI><P><FONT SIZE=3>Check the home page (HomePage) . If there are no
+	error messages and all images get loaded, that's a great start ! If
+	instead, the server does not display anything or the images don't
+	get loaded, check the apache error_log and double-check that the
+	application's etc/config.php file has been edited correctly.
+	Remember that you will need to re-start apache after any edits to
+	this file for them to take effect.</FONT></P>
+	<LI><P><FONT SIZE=3>Click on an event (EventDetail). Make sure the
+	whole page looks OK. </FONT>
+	</P>
+	<LI><P><FONT SIZE=3>Click on an attendee (PersonDetail) to see a
+	person's profile. </FONT>
+	</P>
+	<LI><P><FONT SIZE=3>Go back to the home page and click on a tag in
+	the tag cloud. Choose a big tag and check that we have good results
+	and images get loaded OK. </FONT>
+	</P>
+	<LI><P><FONT SIZE=3>Click on the sign up tab. Fill in the form and
+	create a user. Make sure you find some jpeg images to upload. If
+	not, take them from $FABAN_HOME/benchmarks/olio/resources. <BR>Submit
+	the form. Make sure the form goes through. This completes the
+	AddPerson transaction. </FONT>
+	</P>
+	<LI><P><FONT SIZE=3>Login using your new login name you just
+	created. The top right of the screen should show that you're logged
+	on. </FONT>
+	</P>
+	<LI><P><FONT SIZE=3>Select an event, go back to the EventDetail page
+	but this time as a logged on user. <BR>Add yourself as an attendee.
+	This is the EventDetail transaction with attendee added (about 8-9%
+	of all EventDetail views). </FONT>
+	</P>
+	<LI><P><FONT SIZE=3>Click on the add event tab and add an event.
+	Make sure to include an image and some literature. You can also use
+	the files from <BR>$FABAN_HOME/benchmarks/olio/resources. Fill in
+	the form and submit. This is the AddEvent transaction. </FONT>
+	</P>
+</OL>
+<H2><A NAME="startRun"></A><FONT SIZE=4>Starting a performance test</FONT></H2>
+<P STYLE="margin-bottom: 0in">Now that we know that the web
+application is running and the faban harness is up, it is time to
+kick off a test. 
+</P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL>
+	<LI><P STYLE="margin-bottom: 0in">Shutdown apache and kill
+	memcached. Memcached is always started by the driver before the run
+	to ensure a clean cache and will cause port conflicts if it is
+	already running. The apache server is also automatically started at
+	the start of a run and shutdown at the end of a run.</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=2>
+	<LI><P>Point your browser at http://<I>&lt;driver_machine&gt;</I>:9980</P>
+	<LI><P>Click on the <SPAN STYLE="font-style: normal"><B>Schedule Run</B></SPAN>
+	link.</P>
+	<LI><P>Under the JAVA tab, set the JAVA_HOME. You can accept the
+	default value for JVM options. <B>DO NOT</B> click on the OK button
+	yet!</P>
+	<LI><P>Select the Driver tab. 
+	</P>
+	<P STYLE="margin-bottom: 0in">Enter a Description for the run (say
+	'First test run' for this case). In general, the Description field
+	is very useful to get a quick idea of what a particular run is
+	testing. 
+	</P>
+	<P STYLE="margin-bottom: 0in">Enter the name of your driver(s)
+	machine for Host (when using more than one machine, simply separate
+	them by a space). 
+	</P>
+	<P STYLE="margin-bottom: 0in">Enter 10 for 'Concurrent Users' (we
+	want to start small).</P>
+	<P STYLE="margin-bottom: 0in">Enter 'vmstat 10' for Tools. This
+	indicates the measurement tools that will be run on the driver
+	machine. It's a good idea to keep an eye on the driver cpu
+	utilization.</P>
+	<P STYLE="margin-bottom: 0in">Now enter 30, 30, 30 for the Ramp up,
+	Steady State and Ramp down times. This is a very short test run. For
+	normal runs, you may need a ramp up of 200 seconds and a steady
+	state of at least 600 seconds during which measurements are made.</P>
+	<P STYLE="margin-bottom: 0in">For current systems, the time between
+	client startup of 200 milliseconds is good enough. Some web servers
+	or slower systems may not be able to accept connections very
+	frequently. In that case we may want to increase this value to 1000
+	milliseconds.</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=6>
+	<LI><P>Select the Web Server tab.</P>
+</OL>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">The number of
+Agents is best the same or multiple the number of driver machines –
+we start with 1. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">The Host:Port Pairs
+field takes the host port pairs where the web applications are
+running. The host and port is separated by a colon. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Each pair is
+separated by space. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">For the Webserver
+type field, enter either &quot;apache&quot; or &quot;lighttpd&quot;
+depending on which web server you're using.</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Leave the field
+blank if you're using servers other than these two. Only these two
+servers are supported at this time. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Enter the
+webserver's bin, log, and config directories, and the directory
+containing the php.ini file in the respective fields. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">Next, choose the
+server type to be PHP. 
+</P>
+<P STYLE="text-indent: 0.5in; margin-bottom: 0in">In the tools box,
+type the tools you want to run. Here are the tools we typically run :
+vmstat 10; mpstat 10; iostat -x 10</P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=7>
+	<LI><P STYLE="margin-bottom: 0in">Select the Data Servers tab.</P>
+</OL>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=7>
+	<P STYLE="margin-bottom: 0in">For the database server, enter the
+	Host name. (Olio also supports multiple hostnames if MySQL
+	replication is being used). 
+	</P>
+</OL>
+<P STYLE="text-indent: 0.49in; margin-bottom: 0in">Edit the hostname
+part of the JDBC Connection URL. This is used by the loader program
+to reload the database before a run. 
+</P>
+<P STYLE="text-indent: 0.49in; margin-bottom: 0in">Set the 'Load for
+Concurrent Users' to 25 (this is the minimum number of users we can
+load for and is good for up to 25 concurrent users). 
+</P>
+<OL START=7>
+	<P STYLE="margin-bottom: 0in">Set the Data Storage server. For local
+	storage this is the same host as the web server.</P>
+	<P STYLE="margin-bottom: 0in">Set the memcached server instances to
+	the servers you've configured in config.php of the web application. 
+	</P>
+</OL>
+<P STYLE="text-indent: 0.48in; margin-bottom: 0in">The memcached
+server instances are given as host:port pairs, separated by space. If
+a port is not given, the default port of 11211 is assumed.</P>
+<P STYLE="margin-bottom: 0in"><BR>
+</P>
+<OL START=8>
+	<LI><P>That's it. Click OK and the run should be scheduled. You can
+	click on the View Results link on the left to monitor the run.</P>
+</OL>
+</BODY>
+</HTML>
\ No newline at end of file