<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ClusterFunk &#187; Zeus ZTM</title>
	<atom:link href="http://www.clusterfunk.co.uk/category/zeus-ztm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clusterfunk.co.uk</link>
	<description>Stuff I do with Zeus, Microsoft and Virtualisation. Oh and I can&#039;t spell ;)</description>
	<lastBuildDate>Wed, 23 Jun 2010 09:26:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zeus Elastic Application Delivery platform announced</title>
		<link>http://www.clusterfunk.co.uk/zeus-elastic-application-delivery-platform-announced/</link>
		<comments>http://www.clusterfunk.co.uk/zeus-elastic-application-delivery-platform-announced/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 09:23:04 +0000</pubDate>
		<dc:creator>Antony Joyce</dc:creator>
				<category><![CDATA[Industry]]></category>
		<category><![CDATA[Zeus ZTM]]></category>

		<guid isPermaLink="false">http://www.clusterfunk.co.uk/zeus-elastic-application-delivery-platform-announced/</guid>
		<description><![CDATA[

Zeus today announced the forthcoming release of version 7 of the product suite. 
This includes: 
Zeus Traffic Manager 7.0 and the new Zeus Multi-Site Manager 
Click here to access a zipped file that contains briefing documents, presentations and new brochures for you to brief your staff and update your website.    
Click here [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mkto-f0008.com/track?type=click&amp;enid=bWFpbGluZ2lkPXpldXNCZXRhY3VzdC0xMTQwLTcyMS0wLTc0LXByb2QtMjE2Jm1lc3NhZ2VpZD0wJmRhdGFiYXNlaWQ9MjE2JnNlcmlhbD0xMjY0MzMzNzIxJmVtYWlsaWQ9YW50b255LmpveWNlQGlva28uY29tJnVzZXJpZD01Nzg3NCZleHRyYT0mJiY=&amp;&amp;&amp;http://www.zeus.com?mkt_tok=3RkMMJWWfF9wsRonuqjJZKXonjHpfsX97OQqXbHr08Yy0EZ5VunJEUWy34c%3D"><img border="0" alt="Zeus Logo" src="http://www2.zeus.com/rs/zeus/images/email_logo_zeus.gif" width="202" height="52" /></a></p>
<p><a href="http://mkto-f0008.com/track?type=click&amp;enid=bWFpbGluZ2lkPXpldXNCZXRhY3VzdC0xMTQwLTcyMS0wLTc0LXByb2QtMjE2Jm1lc3NhZ2VpZD0wJmRhdGFiYXNlaWQ9MjE2JnNlcmlhbD0xMjY0MzMzNzIxJmVtYWlsaWQ9YW50b255LmpveWNlQGlva28uY29tJnVzZXJpZD01Nzg3NCZleHRyYT0mJiY=&amp;&amp;&amp;http://www.zeus.com?mkt_tok=3RkMMJWWfF9wsRonuqjJZKXonjHpfsX97OQqXbHr08Yy0EZ5VunJEUWy34c%3D" target="_blank"><img border="0" alt="Deliver fast, secure and available web Apps" src="http://www2.zeus.com/rs/zeus/images/banner_campaign_launch7.jpg" width="452" height="118" /></a></p>
<p>Zeus today announced the forthcoming release of version 7 of the product suite. </p>
<p>This includes: </p>
<p>Zeus Traffic Manager 7.0 and the new Zeus Multi-Site Manager </p>
<p><a href="http://mkto-f0008.com/track?type=click&amp;enid=bWFpbGluZ2lkPXpldXNCZXRhY3VzdC0xMTQwLTcyMS0wLTc0LXByb2QtMjE2Jm1lc3NhZ2VpZD0wJmRhdGFiYXNlaWQ9MjE2JnNlcmlhbD0xMjY0MzMzNzIxJmVtYWlsaWQ9YW50b255LmpveWNlQGlva28uY29tJnVzZXJpZD01Nzg3NCZleHRyYT0mJiY=&amp;&amp;&amp;http://knowledgehub.zeus.com/media/Zeus7/Zeus7PartnerContent.zip?mkt_tok=3RkMMJWWfF9wsRonuqjJZKXonjHpfsX97OQqXbHr08Yy0EZ5VunJEUWy34c%3D">Click here</a> to access a zipped file that contains briefing documents, presentations and new brochures for you to brief your staff and update your website.    </p>
<p><a href="http://mkto-f0008.com/track?type=click&amp;enid=bWFpbGluZ2lkPXpldXNCZXRhY3VzdC0xMTQwLTcyMS0wLTc0LXByb2QtMjE2Jm1lc3NhZ2VpZD0wJmRhdGFiYXNlaWQ9MjE2JnNlcmlhbD0xMjY0MzMzNzIxJmVtYWlsaWQ9YW50b255LmpveWNlQGlva28uY29tJnVzZXJpZD01Nzg3NCZleHRyYT0mJiY=&amp;&amp;&amp;http://knowledgehub.zeus.com/media/Zeus7/?mkt_tok=3RkMMJWWfF9wsRonuqjJZKXonjHpfsX97OQqXbHr08Yy0EZ5VunJEUWy34c%3D">Click here</a> to watch a recorded webinar on the new release</p>
<p><a href="http://mkto-f0008.com/track?type=click&amp;enid=bWFpbGluZ2lkPXpldXNCZXRhY3VzdC0xMTQwLTcyMS0wLTc0LXByb2QtMjE2Jm1lc3NhZ2VpZD0wJmRhdGFiYXNlaWQ9MjE2JnNlcmlhbD0xMjY0MzMzNzIxJmVtYWlsaWQ9YW50b255LmpveWNlQGlva28uY29tJnVzZXJpZD01Nzg3NCZleHRyYT0mJiY=&amp;&amp;&amp;http://www.zeus.com/resources/press_releases/10/index.html?mkt_tok=3RkMMJWWfF9wsRonuqjJZKXonjHpfsX97OQqXbHr08Yy0EZ5VunJEUWy34c%3D">Click here</a> to view the press release </p>
<p>For me the key product is the Multi-Site Manager. One of the difficulties of managing a dev, stage, production, DR and regression platform is maintain consistent configuration and code across deployments. Multi-Site manager is the tool you need to manage this.&#160;&#160;&#160; </p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterfunk.co.uk/zeus-elastic-application-delivery-platform-announced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeus ZTM &amp; ZLB Appliance deployment troubleshooting</title>
		<link>http://www.clusterfunk.co.uk/zeus-ztm-zlb-appliance-deployment-troubleshooting/</link>
		<comments>http://www.clusterfunk.co.uk/zeus-ztm-zlb-appliance-deployment-troubleshooting/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 11:04:00 +0000</pubDate>
		<dc:creator>Antony Joyce</dc:creator>
				<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Zeus ZTM]]></category>

		<guid isPermaLink="false">http://www.clusterfunk.co.uk/zeus-ztm-zlb-appliance-deployment-troubleshooting/</guid>
		<description><![CDATA[ 
I recently built out a CMS hosting environment for a UK Airport web site. Whilst doing this I came across some issues deploying ZTM and ZLB appliance which is easy to resolve if you know how. 
VM Nic Bindings 
OR..&#160; Binding VM Nic 1 to eth1 and VM Nic 2 to eth0 
Let’s say [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb.png" width="141" height="49" /></a> </p>
<p>I recently built out a CMS hosting environment for a UK Airport web site. Whilst doing this I came across some issues deploying ZTM and ZLB appliance which is easy to resolve if you know how. </p>
<p><strong><u>VM Nic Bindings</u> </strong></p>
<p>OR..&#160; Binding VM Nic 1 to eth1 and VM Nic 2 to eth0 </p>
<p>Let’s say for arguments sake that the networks are configured as follows&#160; </p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb1.png" width="465" height="281" /></a> </p>
<p>ZTM 1 has following desired config. </p>
<p>The Network adapter 1 is in .76 (VLAN 301 10.0.74.64/27)   <br />The Network adapter 2 is in .108 (VLAN 302 10.0.74.96/27)</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image11.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb11.png" width="461" height="33" /></a> </p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image12.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb12.png" width="471" height="25" /></a> </p>
<p>Notice that eth1 is bound to VM Network adapter 1 and eth0 to VM Network adapter 2. Compare the MAC addresses above with the mappings below.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image19.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb19.png" width="482" height="237" /></a> </p>
<p>This is a problem because the ZTM has the wrong IP config for each NIC. </p>
<p>We could go into the appliance OS and change the nic config as already highlight below the VM ZTM / ZLB Appliance config is managed by the ZTM/ZLB install and you will see messages like below in the config files.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image20.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb20.png" width="463" height="67" /></a>&#160;</p>
<p>I found this out the hard way when I added hosts to the hosts file, only to see them disappear and my application stopped running. Now I know this is done on the appliance via the GUI (System&gt;Network&gt;DNS). <img src='http://www.clusterfunk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p><strong>FIX 1</strong></p>
<p>You can try running <strong>z-set-inital-address</strong> as below.</p>
<p><em><font color="#0000ff">Open the Zeus Virtual Appliance‘s console interface (via VMware management interface)</font></em></p>
<p><em><font color="#0000ff">Press Alt+F2 to switch to tty2. </font></em></p>
<p><em><font color="#0000ff">Logging in as admin with the default password of admin. </font></em></p>
<p><em><font color="#0000ff">Running the z-set-initial-address command. </font></em></p>
<p><em><font color="#0000ff">This will prompt you for an IP address and netmask. Once the command terminates, enter the logout command, and switch back to tty1 by pressing Alt+F1. You should notice that the IP address in the URL for the admin server has changed</font></em></p>
<p>This did not work for me.</p>
<p><strong>FIX 2</strong></p>
<p>This is more of a work round than a fix. It leaves, as a colleague of mine would say&#160; a ‘sub-optimal’ configuration <img src='http://www.clusterfunk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>Open the VM Appliance summary tab </p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image15.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb15.png" width="403" height="270" /></a>&#160; </p>
<p>select Edit Settings and swap the VLAN assignments</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image16.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb16.png" width="426" height="291" /></a> </p>
<p>In this case I configured&#160; </p>
<p>VM Network adapter 1 in VLAN 302 and    <br />VM Network adapter 2 in VLAN 301&#160; </p>
<p>This results in this configuration.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image8.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb8.png" width="386" height="241" /></a> </p>
<p>&#160;</p>
<p><strong><u>No Default Gateway</u></strong></p>
<p>I have already mentioned that there is a command to set the initial IP address for the GUI access to actually configure the appliance.&#160;&#160;&#160; </p>
<p>The command is <strong>z-set-inital-address.</strong> Below is a screenshot that shows the default gateway is left as 0.0.0.0 after running this command. </p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image17.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb17.png" width="456" height="209" /></a> </p>
<p>at the console type netstat –rnv to show the gateway </p>
<p>If the above happens to you type route add default gw <em>&lt;gateway_ip&gt;</em></p>
<p>In my case </p>
<p><strong>route add default gw 10.0.74.65</strong></p>
<p>and then navigate to the GUI to do the initial config as normal. </p>
<p><u><strong>Quick look under the bonnet</strong></u> </p>
<p>The main ZTM files live in /opt/zeus</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image18.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2010/03/image_thumb18.png" width="457" height="195" /></a>&#160;</p>
<p>Nic config is in </p>
<p>/etc/network/interfaces</p>
<p>Hope this helps <img src='http://www.clusterfunk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterfunk.co.uk/zeus-ztm-zlb-appliance-deployment-troubleshooting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rate shaping Traffic with Zeus ZTM v6</title>
		<link>http://www.clusterfunk.co.uk/rate-shaping-traffic-with-zeus-ztm-v6/</link>
		<comments>http://www.clusterfunk.co.uk/rate-shaping-traffic-with-zeus-ztm-v6/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 06:00:00 +0000</pubDate>
		<dc:creator>Antony Joyce</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Zeus ZTM]]></category>
		<category><![CDATA[Zeus ZXTM]]></category>

		<guid isPermaLink="false">http://www.clusterfunk.co.uk/rate-shaping-traffic-with-zeus-ztm-v6/</guid>
		<description><![CDATA[ A couple of weeks ago I built out a rate shaping solution for a client hosting a web site that is very, very, very popular at the moment.
So what is this rate shaping all about?&#160; Well for a kick off it is in fact simplicity itself to implement using Zeus ZTM v6 (or indeed [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image.png"><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb.png" width="98" height="34" /></a> A couple of weeks ago I built out a rate shaping solution for a client hosting a web site that is very, very, very popular at the moment.</p>
<p>So what is this rate shaping all about?&#160; Well for a kick off it is in fact simplicity itself to implement using Zeus ZTM v6 (or indeed previous ZXTM versions) SLM capabilities.</p>
<p><strong>Solution Components </strong></p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb1.png" width="187" height="222" /></a>ZTM provides two technologies that are useful to in service monitoring/protection. The first is the SLM class and the second is the Rate class.</p>
<p><strong>SLM</strong>&#160; <strong>Class</strong></p>
<p>An SLM or Service Level Monitoring class is a mechanism for monitoring the response times of the site/service you provide. The SLM class provides the facility through TrafficScript to report on the percentage of requests that confirms to the threshold configured in the SLM class that the response arrives back within </p>
<p><strong>Rate Class</strong></p>
<p>The Rate Class is like a pipe with a definable capacity down which requests against your service flow. The pipe can only allow its maximum capacity and no more. The Rate Class (via TrafficScript) provides a overflow queue (lets think of it as a bucket catching the excess flow that isn’t getting through the pipe) that can be processed once requests have dropped below maximum capacity.</p>
<p><strong>Put it all together: Step by Step</strong></p>
<p>So lets set up a service that uses SLM and Rate Shaping.</p>
<p>I’m using the ZTM r6.02 virtual Appliance on my home lab and built this config as I wrote this blog (its that intuitive <img src='http://www.clusterfunk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb2.png" width="381" height="105" /></a></p>
<p><strong>Create a Virtual Service</strong></p>
<p>I’ve created one called “HTTP Service”</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb3.png" width="244" height="111" /></a></p>
<p>and a Pool called “HTTP Servers”</p>
<p>for the purpose of this post I have used Google to provide the web servers by simply adding the node www.google.com:80</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb4.png" width="244" height="228" /></a></p>
<p><strong>Set Up a SLM</strong></p>
<p>Click catalogue and then SLM tab</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb5.png" width="415" height="204" /></a>&#160; </p>
<p>In this case I have called the Class “Subscription”</p>
<p>The SLM class offers several values to modify but I am only interested in the millisecond response time as I am going to use TrafficScript to test the other values.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb6.png" width="244" height="189" /></a></p>
<p>That’s the SLM class created <img src='http://www.clusterfunk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Now apply it to the Virtual Service</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image7.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb7.png" width="450" height="78" /></a>&#160; </p>
<p>Click Edit next to the Classes tab in the “HTTP Service” Virtual Service configuration summery.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb8.png" width="244" height="80" /></a></p>
<p>select Subscription and click update</p>
<p>&#160;</p>
<p>The Virtual service is now been monitored against the response_time value set in the SLM Class. In this case 40 milliseconds. </p>
<p>Now we need to check the value and do something with it.</p>
<p><strong>Rate Class</strong></p>
<p>From the Catalogue tab select Rate and create a new Rate Class</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image9.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb9.png" width="244" height="117" /></a></p>
<p>I’ve called mine “Premium” you can have many rate classes and as is typical with ZTM the value used to determine which class to apply are numerous and highly configurable via TrafficScript.&#160; E.G. it could be the host name, referrer, GeoIP check, username, cookie value etc etc etc that determines which class to apply.&#160; </p>
<p>The values to configure in a rate class are simple and represent a volume of requests that your service can handle measured in requests per second and requests per minute. There are two values so that you can provide a quantification of what is sustainable by your service. If for example we could only configure 10,000 requests per minute in theory these could be delivered in the first ten seconds leaving 50 seconds where the rate class will not allow any additional connections.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image10.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb10.png" width="244" height="160" /></a></p>
<p><strong>Putting it all together</strong></p>
<p><strong>TrafficScript: </strong></p>
<p>You need to do something if your service incredibly popular.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image11.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb11.png" width="458" height="112" /></a></p>
<p>This TrafficScript checks if the service is conforming to our agreed SLA (Service Level Agreement) This is for you to decide what is acceptable. In this example its 95% of transactions been completed within the millisecond response time configured in the SLM Class “Subscription”. If our service drops below 95% the Rate Class is utilised to limit the number of connections that the service will handle.&#160; This is a simple TrafficScript that achieves this:</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image12.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb12.png" width="455" height="211" /></a>&#160;</p>
<p><font color="#0000ff">connection.setServiceLevelClass( &quot;Subscription&quot; );      <br />$conforming = slm.conforming( &quot;Subscription&quot; );</font></p>
<p><font color="#0000ff">log.info(&quot;Percentage Conforming is : &quot;. $conforming);</font></p>
<p><font color="#0000ff"><font color="#8080c0"># Test our SLM threshold. If response times are degrading        <br /># apply rate shaping class to protect service</font> </font></p>
<p><font color="#0000ff">if( $conforming &lt; 95 ) {      <br />rate.use(&quot;Premium&quot;);       <br />}</font></p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image13.png"><img style="border-right-width: 0px; margin: 0px 0px 0px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb13.png" width="168" height="135" /></a>The Rate Class is applied while the SLM Class detects that the service is performing below 95% conforming (to the configured 40 millisecond response).</p>
<p>The Rate Class limits the number of connections that will be processed and also provides a mechanism for queuing excess connection attempts. This queue will be held until the level of activity drops below the per second threshold OR the TCP connection times out (which is bad for user experience if left unhandled).</p>
<p>To handle the excess traffic a second TrafficScript is required to manage this:</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image14.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb14.png" width="457" height="129" /></a></p>
<p><font color="#0000ff"><font color="#8080c0"># How many queued requests are allowed before we track users.        <br /></font>$shapeQueue = 10;       <br />$backlog = rate.getbacklog(&quot;Premium&quot;);       <br />if ( $backlog &gt; $shapeQueue )       <br />{       <br />http.sendResponse( 503, &quot;text/html&quot;, resource.get( &quot;busy.html&quot;), &quot;&quot; );       <br />}</font></p>
<p>This script sets a value as an acceptable queue length( $shapeQueue ). While the Rate Class is applied, each request is checked to see if the number of connections in the queue is greater than the desired maximum queue length.</p>
<p align="justify">If it is then we can handle the connection in a number of ways. In this example I have configured the ZTMs to server a busy page and importantly used the <em>HTTP</em> Error <em>503</em> &#8211; Service unavailable in the response. The reason I have configure this is to prevent upstream servers from caching this response.&#160;&#160;&#160; </p>
<p><strong>Testing the configuration</strong></p>
<p>The key to a successful deployment is making sure that millisecond response value is realistic and the number of connections configured in the Rate Class accurately reflect the threshold that the service can deliver – a small margin of error. </p>
<p>In many cases this can be difficult to establish without sufficiently complex load testing. If you have a very module architecture with well established performance characteristics then simply plug in the values and go home for the weekend safe in the knowledge that everything is well with the world. </p>
<p>If you are not so luck there is a nice way to monitor in real-time performance activity of your service in relation to the SLM and Rate Class configuration.</p>
<p>Example Interactive</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image15.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb15.png" width="244" height="194" /></a></p>
<p>I use Apache JMeter to create load. And that&#8217;s my next blog article <img src='http://www.clusterfunk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image16.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb16.png" width="244" height="143" /></a></p>
<p>and use the ZTM current activity monitors</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image17.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb17.png" width="387" height="117" /></a>&#160;</p>
<p>To get real-time feedback.</p>
<p><a href="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image18.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.clusterfunk.co.uk/wp-content/uploads/2009/12/image_thumb18.png" width="282" height="297" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.clusterfunk.co.uk/rate-shaping-traffic-with-zeus-ztm-v6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
