<?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>SoftLayer Blog &#187; client</title>
	<atom:link href="http://blog.softlayer.com/tag/client/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.softlayer.com</link>
	<description>A Behind the Scenes Look at the Best Hosting Provider in the World</description>
	<lastBuildDate>Wed, 15 May 2013 15:33:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>Using SoftLayer Object Storage to Back Up Your Server</title>
		<link>http://blog.softlayer.com/2012/using-softlayer-object-storage-to-back-up-your-server/</link>
		<comments>http://blog.softlayer.com/2012/using-softlayer-object-storage-to-back-up-your-server/#comments</comments>
		<pubDate>Thu, 27 Dec 2012 21:40:01 +0000</pubDate>
		<dc:creator>Ronald Steelman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[SoftLayer]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[object storage]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[SolusVM]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.softlayer.com/?p=9795</guid>
		<description><![CDATA[Before I came to my senses and moved my personal servers to SoftLayer, I was one of many victims of a SolusVM exploit that resulted in the wide-scale attack of many nodes in my previous host&#8217;s Chicago data center. While I&#8217;m a firm believer in backing up my data, I could not have foreseen the [...]]]></description>
			<content:encoded><![CDATA[<p>Before I came to my senses and moved my personal servers to SoftLayer, I was one of many victims of a SolusVM exploit that resulted in the wide-scale attack of many nodes in my previous host&#8217;s Chicago data center. While I&#8217;m a firm believer in backing up my data, I could not have foreseen the situation I was faced with: Not only was my server in one data center compromised with all of its data deleted, but my backup server in one of the host&#8217;s other data centers was also attacked &#8230; This left me with old, stale backups on my local computer and not much else. I quickly relocated my data and decided that I should use <a href="http://www.softlayer.com/cloudlayer/storage/">SoftLayer Object Storage</a> to supplement and improve upon my backup and disaster recovery plans.</p>
<p>With <a href="https://github.com/softlayer/softlayer-object-storage-python">SoftLayer Object Storage Python Client</a> set up and the SoftLayer Object Storage Backup script &mdash; <a href="http://sldn.softlayer.com/blog/klandreth/Deglazing-slbackuppy-Usage-Object-Storage-Kitchen">slbackup.py</a> &mdash; in hand, I had the tools I needed to build a solid backup infrastructure easily. On Linux.org, I contributed an article about how to <a href="http://www.linux.org/article/view/mysql-backups-using-softlayer-object-storage">perform MySQL backups</a> with those resources, so the database piece is handled, but I also need to back up my web files, so I whipped up another quick <code>bash</code> script to run:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># The path the backups will be dumped to</span>
<span style="color: #007800;">DUMP_DIR</span>=<span style="color: #ff0000;">&quot;/home/backups/&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Path to the web files to be backed up</span>
<span style="color: #007800;">BACKUP_PATH</span>=<span style="color: #ff0000;">&quot;/var/www/sites /&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Back up folder name (mmddyyyy)</span>
<span style="color: #007800;">BACKUP_DIR</span>=<span style="color: #ff0000;">&quot;<span style="color: #780078;">`date +%m%d%Y`</span>&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Backup File Name</span>
<span style="color: #007800;">DUMP_FILE</span>=<span style="color: #ff0000;">&quot;<span style="color: #780078;">`date +%m_%d_%Y_%H_%M_%S`</span>_site_files&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SL container name</span>
<span style="color: #007800;">CONTAINER</span>=<span style="color: #ff0000;">&quot;site_backups&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Create backup dir if doesn't exist</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> <span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> <span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-zcvpf</span> <span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$DUMP_FILE</span>.tar.gz <span style="color: #007800;">$BACKUP_PATH</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Make sure the archive exists</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$DUMP_FILE</span>.tar.gz <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>slbackup.py <span style="color: #660033;">-s</span> <span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span><span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$CONTAINER</span>&quot;</span> <span style="color: #660033;">-r</span> <span style="color: #000000;">30</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Remove the backup stored locally</span>
        <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> <span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Success</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">else</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span>/<span style="color: #007800;">$DUMP_FILE</span>.tar.gz does not exist.&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>It&#8217;s not the prettiest <code>bash</code> script, but it gets the job done. By tweaking a few variables, you can easily generate backups for any important directory of files and push them to your SoftLayer Object Storage account. If you want to change the retention time of your backups to be longer or shorter, you can change the <code>30</code> after the <code>–r</code> in the line below to the number of days you want to keep each backup:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>slbackup.py <span style="color: #660033;">-s</span> <span style="color: #007800;">$DUMP_DIR</span><span style="color: #007800;">$BACKUP_DIR</span><span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$CONTAINER</span>&quot;</span> <span style="color: #660033;">-r</span> <span style="color: #000000;">30</span></pre></div></div>

<p>I created a script for each website on my server, and I set a CRON (crontab –e) entry to run each one on Sundays staggered by 5 minutes:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">5</span> <span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">0</span>  <span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cron<span style="color: #000000; font-weight: bold;">/</span>CRON-site1.com_web_files <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null
<span style="color: #000000;">10</span> <span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">0</span>  <span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cron<span style="color: #000000; font-weight: bold;">/</span>CRON-site2.com_web_files <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null
<span style="color: #000000;">15</span> <span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">0</span>  <span style="color: #000000; font-weight: bold;">/</span>root<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>cron<span style="color: #000000; font-weight: bold;">/</span>CRON-site3.com_web_files <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null</pre></div></div>

<p>If you&#8217;re looking for an easy way to automate and solidify your backups, this little bit of code could make life easier on you. Had I taken the few minutes to put this script together prior to the attack I experienced at my previous host, I wouldn&#8217;t have lost any of my data. It&#8217;s easy to get lulled into &#8220;backup apathy&#8221; when you don&#8217;t <em>need</em> your backups, but just because nothing *has* happened to your data doesn&#8217;t mean nothing *can* happen to your data.</p>
<p>Take it from me &#8230; Be over-prepared and save yourself a lot of trouble.</p>
<p>-Ronald</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softlayer.com/2012/using-softlayer-object-storage-to-back-up-your-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using iPerf to Troubleshoot Speed/Throughput Issues</title>
		<link>http://blog.softlayer.com/2011/using-iperf-to-troubleshoot-speedthroughput-issues/</link>
		<comments>http://blog.softlayer.com/2011/using-iperf-to-troubleshoot-speedthroughput-issues/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 15:45:17 +0000</pubDate>
		<dc:creator>Andrew Tyler</dc:creator>
				<category><![CDATA[Customer Service]]></category>
		<category><![CDATA[SoftLayer]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[engineer]]></category>
		<category><![CDATA[iPerf]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[NOC]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[throughput]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://blog.softlayer.com/?p=6751</guid>
		<description><![CDATA[Two of the most common network characteristics we look at when investigating network-related concerns in the NOC are speed and throughput. You may have experienced the following scenario yourself: You just provisioned a new bad-boy server with a gigabit connection in a data center on the opposite side of the globe. You begin to upload [...]]]></description>
			<content:encoded><![CDATA[<p>Two of the most common network characteristics we look at when investigating network-related concerns in the NOC are speed and throughput. You may have experienced the following scenario yourself: You just provisioned a new bad-boy server with a gigabit connection in a data center on the opposite side of the globe. You begin to upload your data and to your shock, you see &#8220;Time Remaining: 10 Hours.&#8221; &#8220;What&#8217;s wrong with the network?&#8221; you wonder. The traceroute and MTR look fine, but where&#8217;s the performance and bandwidth I&#8217;m paying for? </p>
<p>This issue is all too common and it has nothing to do with the network, but in fact, the culprits are none other than TCP and the laws of physics.</p>
<p>In data transmission, TCP sends a certain amount of data then pauses. To ensure proper delivery of data, it doesn&#8217;t send more until it receives an acknowledgement from the remote host that all data was received. This is called the &#8220;TCP Window.&#8221; Data travels at the speed of light, and typically, most hosts are fairly close together. This &#8220;windowing&#8221; happens so fast we don&#8217;t even notice it. But as the distance between two hosts increases, the speed of light remains constant. Thus, the further away the two hosts, the longer it takes for the sender to receive the acknowledgement from the remote host, reducing overall throughput. This effect is called &#8220;Bandwidth Delay Product,&#8221; or BDP.</p>
<p>We can overcome BDP to some degree by sending more data at a time. We do this by adjusting the &#8220;TCP Window&#8221; &ndash; telling TCP to send more data per flow than the default parameters. Each OS is different and the default values will vary, but most all operating systems allow tweaking of the TCP stack and/or using parallel data streams. So what is iPerf and how does it fit into all of this?</p>
<p style="margin-bottom:0; padding-bottom:0;"><strong>What is iPerf?</strong></p>
<p style="margin-top:0; padding-top:0;"><a href="http://sourceforge.net/projects/iperf/">iPerf</a> is simple, open-source, command-line, network diagnostic tool that can run on Linux, BSD, or Windows platforms which you install on two endpoints. One side runs in a &#8216;server&#8217; mode listening for requests; the other end runs &#8216;client&#8217; mode that sends data. When activated, it tries to send as much data down your pipe as it can, spitting out transfer statistics as it does. What&#8217;s so cool about iPerf is you can test in real time any number of TCP window settings, even using parallel streams. There&#8217;s even a Java based GUI you can install that runs on top of it called, JPerf (JPerf is beyond the scope of this article, but I recommend looking into it). What&#8217;s even cooler is that because iPerf resides in memory, there are no files to clean up.</p>
<p><span id="more-6751"></span></p>
<p style="margin-bottom:0; padding-bottom:0;"><strong>How do I use iPerf?</strong></p>
<p style="margin-top:0; padding-top:0;">iPerf can be quickly downloaded from <a href="http://sourceforge.net/projects/iperf/">SourceForge</a> to be installed. It uses port 5001 by default, and the bandwidth it displays is from the client to the server. Each test runs for 10 seconds by default, but virtually every setting is adjustable. Once installed, simply bring up the command line on both of the hosts and run these commands.</p>
<p>On the server side:<br />
<code>iperf -s</code></p>
<p>On the client side:<br />
<code>iperf -c [server_ip]</code></p>
<p>The output on the client side will look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#iperf -c 10.10.10.5</span>
<span style="color: #660033;">------------------------------------------------------------</span>
Client connecting to 10.10.10.5, TCP port <span style="color: #000000;">5001</span>
TCP window <span style="color: #c20cb9; font-weight: bold;">size</span>: <span style="color: #000000;">16.0</span> KByte <span style="color: #7a0874; font-weight: bold;">&#40;</span>default<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #660033;">------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">local</span> 0.0.0.0 port <span style="color: #000000;">46956</span> connected with 168.192.1.10 port <span style="color: #000000;">5001</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> ID<span style="color: #7a0874; font-weight: bold;">&#93;</span> Interval       Transfer     Bandwidth
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">10.0</span> sec  <span style="color: #000000;">10.0</span> MBytes  <span style="color: #000000;">1.00</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec</pre></div></div>

<p>There are a lot of things we can do to make this output better with more meaningful data. For example, let&#8217;s say we want the test to run for 20 seconds instead of 10 (<code>-t 20</code>), and we want to display transfer data every 2 seconds instead of the default of 10 (<code>-i 2</code>), and we want to test on port 8000 instead of 5001 (<code>-p 8000</code>). For the purposes of this exercise, let&#8217;s use those customization as our baseline. This is what the command string would look like on both ends:</p>
<div style="margin-left:20px;">
<p style="margin-bottom:0;padding-bottom:0;">Client Side:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#iperf -c 10.10.10.5 -p 8000 -t 20 -i 2</span>
<span style="color: #660033;">------------------------------------------------------------</span>
Client connecting to 10.10.10.5, TCP port <span style="color: #000000;">8000</span>
TCP window <span style="color: #c20cb9; font-weight: bold;">size</span>: <span style="color: #000000;">16.0</span> KByte <span style="color: #7a0874; font-weight: bold;">&#40;</span>default<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #660033;">------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">local</span> 10.10.10.10 port <span style="color: #000000;">46956</span> connected with 10.10.10.5 port <span style="color: #000000;">8000</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> ID<span style="color: #7a0874; font-weight: bold;">&#93;</span> Interval       Transfer     Bandwidth
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">6.00</span> MBytes  <span style="color: #000000;">25.2</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">2.0</span>- <span style="color: #000000;">4.0</span> sec  <span style="color: #000000;">7.12</span> MBytes  <span style="color: #000000;">29.9</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">4.0</span>- <span style="color: #000000;">6.0</span> sec  <span style="color: #000000;">7.00</span> MBytes  <span style="color: #000000;">29.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">6.0</span>- <span style="color: #000000;">8.0</span> sec  <span style="color: #000000;">7.12</span> MBytes  <span style="color: #000000;">29.9</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">8.0</span>-<span style="color: #000000;">10.0</span> sec  <span style="color: #000000;">7.25</span> MBytes  <span style="color: #000000;">30.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">10.0</span>-<span style="color: #000000;">12.0</span> sec  <span style="color: #000000;">7.00</span> MBytes  <span style="color: #000000;">29.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">12.0</span>-<span style="color: #000000;">14.0</span> sec  <span style="color: #000000;">7.12</span> MBytes  <span style="color: #000000;">29.9</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">14.0</span>-<span style="color: #000000;">16.0</span> sec  <span style="color: #000000;">7.25</span> MBytes  <span style="color: #000000;">30.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">16.0</span>-<span style="color: #000000;">18.0</span> sec  <span style="color: #000000;">6.88</span> MBytes  <span style="color: #000000;">28.8</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">7.25</span> MBytes  <span style="color: #000000;">30.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">70.1</span> MBytes  <span style="color: #000000;">29.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec</pre></div></div>

<p style="margin-bottom:0;padding-bottom:0;">Server Side:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#iperf -s -p 8000 -i 2</span>
<span style="color: #660033;">------------------------------------------------------------</span>
Server listening on TCP port <span style="color: #000000;">8000</span>
TCP window <span style="color: #c20cb9; font-weight: bold;">size</span>: <span style="color: #000000;">8.00</span> KByte <span style="color: #7a0874; font-weight: bold;">&#40;</span>default<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #660033;">------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">852</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">local</span> 10.10.10.5 port <span style="color: #000000;">8000</span> connected with 10.10.10.10 port <span style="color: #000000;">58316</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> ID<span style="color: #7a0874; font-weight: bold;">&#93;</span> Interval Transfer Bandwidth
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">6.05</span> MBytes  <span style="color: #000000;">25.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">2.0</span>- <span style="color: #000000;">4.0</span> sec  <span style="color: #000000;">7.19</span> MBytes  <span style="color: #000000;">30.1</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">4.0</span>- <span style="color: #000000;">6.0</span> sec  <span style="color: #000000;">6.94</span> MBytes  <span style="color: #000000;">29.1</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">6.0</span>- <span style="color: #000000;">8.0</span> sec  <span style="color: #000000;">7.19</span> MBytes  <span style="color: #000000;">30.2</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">8.0</span>-<span style="color: #000000;">10.0</span> sec  <span style="color: #000000;">7.19</span> MBytes  <span style="color: #000000;">30.1</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">10.0</span>-<span style="color: #000000;">12.0</span> sec  <span style="color: #000000;">6.95</span> MBytes  <span style="color: #000000;">29.1</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">12.0</span>-<span style="color: #000000;">14.0</span> sec  <span style="color: #000000;">7.19</span> MBytes  <span style="color: #000000;">30.2</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">14.0</span>-<span style="color: #000000;">16.0</span> sec  <span style="color: #000000;">7.19</span> MBytes  <span style="color: #000000;">30.2</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">16.0</span>-<span style="color: #000000;">18.0</span> sec  <span style="color: #000000;">6.95</span> MBytes  <span style="color: #000000;">29.1</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">7.19</span> MBytes  <span style="color: #000000;">30.1</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">70.1</span> MBytes  <span style="color: #000000;">29.4</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec</pre></div></div>

</div>
<p>There are many, many other parameters you can set that are beyond the scope of this article, but for our purposes, the main use is to prove out our bandwidth. This is where we&#8217;ll use the TCP window options and parallel streams. To set a new TCP window you use the <code>-w</code> switch and you can set the parallel streams by using <code>-P</code>.</p>
<p>Increased TCP window commands:</p>
<p>Server side:<br />
<code>#iperf -s -w 1024k -i 2</code></p>
<p>Client side:<br />
<code>#iperf -i 2 -t 20 -c 10.10.10.5 -w 1024k</code></p>
<p>And here are the iperf results from two Softlayer file servers &ndash; one in Washington, D.C., acting as Client, the other in Seattle acting as Server:</p>
<div style="margin-left:20px;">
<p style="margin-bottom:0;padding-bottom:0;">Client Side:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># iperf -i 2 -t 20 -c 10.10.10.5 -p 8000 -w 1024k</span>
<span style="color: #660033;">------------------------------------------------------------</span>
Client connecting to 10.10.10.5, TCP port <span style="color: #000000;">8000</span>
TCP window <span style="color: #c20cb9; font-weight: bold;">size</span>: <span style="color: #000000;">1.00</span> MByte <span style="color: #7a0874; font-weight: bold;">&#40;</span>WARNING: requested <span style="color: #000000;">1.00</span> MByte<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #660033;">------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">local</span> 10.10.10.10 port <span style="color: #000000;">53903</span> connected with 10.10.10.5 port <span style="color: #000000;">5001</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> ID<span style="color: #7a0874; font-weight: bold;">&#93;</span> Interval       Transfer     Bandwidth
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.9</span> MBytes   <span style="color: #000000;">109</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">2.0</span>- <span style="color: #000000;">4.0</span> sec  <span style="color: #000000;">28.5</span> MBytes   <span style="color: #000000;">120</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">4.0</span>- <span style="color: #000000;">6.0</span> sec  <span style="color: #000000;">28.4</span> MBytes   <span style="color: #000000;">119</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">6.0</span>- <span style="color: #000000;">8.0</span> sec  <span style="color: #000000;">28.9</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">8.0</span>-<span style="color: #000000;">10.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">10.0</span>-<span style="color: #000000;">12.0</span> sec  <span style="color: #000000;">29.0</span> MBytes   <span style="color: #000000;">122</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">12.0</span>-<span style="color: #000000;">14.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">14.0</span>-<span style="color: #000000;">16.0</span> sec  <span style="color: #000000;">29.0</span> MBytes   <span style="color: #000000;">122</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">16.0</span>-<span style="color: #000000;">18.0</span> sec  <span style="color: #000000;">27.9</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">29.0</span> MBytes   <span style="color: #000000;">122</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>-<span style="color: #000000;">20.0</span> sec   <span style="color: #000000;">283</span> MBytes   <span style="color: #000000;">118</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec</pre></div></div>

<p style="margin-bottom:0;padding-bottom:0;">Server Side:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#iperf -s -w 1024k -i 2 -p 8000</span>
<span style="color: #660033;">------------------------------------------------------------</span>
Server listening on TCP port <span style="color: #000000;">8000</span>
TCP window <span style="color: #c20cb9; font-weight: bold;">size</span>: <span style="color: #000000;">1.00</span> MByte
<span style="color: #660033;">------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">local</span> 10.10.10.5 port <span style="color: #000000;">8000</span> connected with 10.10.10.10 port <span style="color: #000000;">53903</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> ID<span style="color: #7a0874; font-weight: bold;">&#93;</span> Interval       Transfer     Bandwidth
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.9</span> MBytes   <span style="color: #000000;">109</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">2.0</span>- <span style="color: #000000;">4.0</span> sec  <span style="color: #000000;">28.6</span> MBytes   <span style="color: #000000;">120</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">4.0</span>- <span style="color: #000000;">6.0</span> sec  <span style="color: #000000;">28.3</span> MBytes   <span style="color: #000000;">119</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">6.0</span>- <span style="color: #000000;">8.0</span> sec  <span style="color: #000000;">28.9</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">8.0</span>-<span style="color: #000000;">10.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">10.0</span>-<span style="color: #000000;">12.0</span> sec  <span style="color: #000000;">29.0</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">12.0</span>-<span style="color: #000000;">14.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">14.0</span>-<span style="color: #000000;">16.0</span> sec  <span style="color: #000000;">29.0</span> MBytes   <span style="color: #000000;">122</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">16.0</span>-<span style="color: #000000;">18.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">29.0</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>-<span style="color: #000000;">20.0</span> sec   <span style="color: #000000;">283</span> MBytes   <span style="color: #000000;">118</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec</pre></div></div>

</div>
<p>We can see here, that by increasing the TCP window from the default value to 1MB (1024k) we achieved around a 400% increase in throughput over our baseline. Unfortunately, this is the limit of this OS in terms of Window size. So what more can we do? Parallel streams! With multiple simultaneous streams we can fill the pipe close to its maximum usable amount.</p>
<p>Parallel Stream Command:<br />
<code>#iperf -i 2 -t 20 -c -p 8000 10.10.10.5 -w 1024k -P 7</code></p>
<div style="margin-left:20px;">
<p style="margin-bottom:0;padding-bottom:0;">Client Side:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#iperf -i 2 -t 20 -c -p 10.10.10.5 -w 1024k -P 7</span>
<span style="color: #660033;">------------------------------------------------------------</span>
Client connecting to 10.10.10.5, TCP port <span style="color: #000000;">8000</span>
TCP window <span style="color: #c20cb9; font-weight: bold;">size</span>: <span style="color: #000000;">1.00</span> MByte <span style="color: #7a0874; font-weight: bold;">&#40;</span>WARNING: requested <span style="color: #000000;">1.00</span> MByte<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #660033;">------------------------------------------------------------</span>
 <span style="color: #7a0874; font-weight: bold;">&#91;</span> ID<span style="color: #7a0874; font-weight: bold;">&#93;</span> Interval       Transfer     Bandwidth
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">24.9</span> MBytes   <span style="color: #000000;">104</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">24.9</span> MBytes   <span style="color: #000000;">104</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">7</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.6</span> MBytes   <span style="color: #000000;">107</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">8</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">24.9</span> MBytes   <span style="color: #000000;">104</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.8</span> MBytes   <span style="color: #000000;">108</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.9</span> MBytes   <span style="color: #000000;">109</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.9</span> MBytes   <span style="color: #000000;">109</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>SUM<span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec   <span style="color: #000000;">178</span> MBytes   <span style="color: #000000;">746</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#40;</span>output omitted <span style="color: #000000; font-weight: bold;">for</span> brevity on server <span style="color: #000000; font-weight: bold;">&amp;</span> client<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">7</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.2</span> MBytes   <span style="color: #000000;">118</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">8</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.8</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">117</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">3</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.9</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.8</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.9</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>SUM<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec   <span style="color: #000000;">200</span> MBytes   <span style="color: #000000;">837</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>SUM<span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">1.93</span> GBytes   <span style="color: #000000;">826</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec</pre></div></div>

<p style="margin-bottom:0;padding-bottom:0;">Server Side:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#iperf -s -w 1024k -i 2 -p 8000</span>
<span style="color: #660033;">------------------------------------------------------------</span>
Server listening on TCP port <span style="color: #000000;">8000</span>
TCP window <span style="color: #c20cb9; font-weight: bold;">size</span>: <span style="color: #000000;">1.00</span> MByte
<span style="color: #660033;">------------------------------------------------------------</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">local</span> 10.10.10.10 port <span style="color: #000000;">8000</span> connected with 10.10.10.5 port <span style="color: #000000;">53903</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span> ID<span style="color: #7a0874; font-weight: bold;">&#93;</span> Interval       Transfer     Bandwidth
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.7</span> MBytes   <span style="color: #000000;">108</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">8</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">24.9</span> MBytes   <span style="color: #000000;">104</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">24.9</span> MBytes   <span style="color: #000000;">104</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">24.9</span> MBytes   <span style="color: #000000;">104</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000;">10</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.9</span> MBytes   <span style="color: #000000;">108</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">7</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.9</span> MBytes   <span style="color: #000000;">109</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec  <span style="color: #000000;">25.9</span> MBytes   <span style="color: #000000;">109</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>SUM<span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>- <span style="color: #000000;">2.0</span> sec   <span style="color: #000000;">178</span> MBytes   <span style="color: #000000;">747</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.8</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.3</span> MBytes   <span style="color: #000000;">119</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">7</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.8</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000;">10</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.1</span> MBytes   <span style="color: #000000;">118</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.0</span> MBytes   <span style="color: #000000;">118</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">8</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">28.8</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>  <span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec  <span style="color: #000000;">29.0</span> MBytes   <span style="color: #000000;">121</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>SUM<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000;">18.0</span>-<span style="color: #000000;">20.0</span> sec   <span style="color: #000000;">200</span> MBytes   <span style="color: #000000;">838</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec
<span style="color: #7a0874; font-weight: bold;">&#91;</span>SUM<span style="color: #7a0874; font-weight: bold;">&#93;</span>  <span style="color: #000000;">0.0</span>-<span style="color: #000000;">20.1</span> sec  <span style="color: #000000;">1.93</span> GBytes   <span style="color: #000000;">825</span> Mbits<span style="color: #000000; font-weight: bold;">/</span>sec</pre></div></div>

</div>
<p>As you can see from the tests above, we were able to increase throughput from 29MB/s with a single stream and the default TCP Window to 824MB/s using a higher window and parallel streams. On a Gigabit link, this about the maximum throughput one could hope to achieve before saturating the link and causing packet loss. The bottom line is, I was able to prove out the network and verify bandwidth capacity was not an issue. From that conclusion, I could focus on tweaking TCP to get the most out of my network.</p>
<p>I&#8217;d like to point out that we will never get 100% out of any link. Typically, 90% utilization is about the real world maximum anyone will achieve. If you get any more, you&#8217;ll begin to saturate the link and incur packet loss. I should also point out that Softlayer doesn&#8217;t directly support iPerf, so it&#8217;s up to you install and play around with. It&#8217;s such a versatile and easy to use little piece of software that it&#8217;s become invaluable to me, and I think it will become invaluable to you as well!</p>
<p>-Andrew</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.softlayer.com/2011/using-iperf-to-troubleshoot-speedthroughput-issues/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
