<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: TCP Trace Analysis for NFS</title>
	<atom:link href="/2013/02/26/tcp-trace-analysis-for-nfs/feed/" rel="self" type="application/rss+xml" />
	<link>http://dboptimizer.com/2013/02/26/tcp-trace-analysis-for-nfs/</link>
	<description>database performance, SQL tuning and data visualizatoin</description>
	<lastBuildDate>Sat, 03 Mar 2018 05:02:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6</generator>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://dboptimizer.com/2013/02/26/tcp-trace-analysis-for-nfs/#comment-153669</link>
		<dc:creator>Kyle Hailey</dc:creator>
		<pubDate>Tue, 16 Jul 2013 18:13:15 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2593#comment-153669</guid>
		<description><![CDATA[Hi Mimmus, check out a previous blog post http://dboptimizer.com/2011/07/19/nfs-throughput-testing-trick-solaris/ on using dd with ramdisk and/or memory mapped files to cut out the file system. For dd and caching, on Linux you can use flags like

write
dd if=/dev/zero of=toto bs=8k count=100 oflag=direct
read
dd of=/dev/null if=toto bs=8k count=100 iflag=direct]]></description>
		<content:encoded><![CDATA[<p>Hi Mimmus, check out a previous blog post <a href="/2011/07/19/nfs-throughput-testing-trick-solaris/" rel="nofollow">http://dboptimizer.com/2011/07/19/nfs-throughput-testing-trick-solaris/</a> on using dd with ramdisk and/or memory mapped files to cut out the file system. For dd and caching, on Linux you can use flags like</p>
<p>write<br />
dd if=/dev/zero of=toto bs=8k count=100 oflag=direct<br />
read<br />
dd of=/dev/null if=toto bs=8k count=100 iflag=direct</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mimmus</title>
		<link>http://dboptimizer.com/2013/02/26/tcp-trace-analysis-for-nfs/#comment-153609</link>
		<dc:creator>mimmus</dc:creator>
		<pubDate>Tue, 16 Jul 2013 07:17:28 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2593#comment-153609</guid>
		<description><![CDATA[I understand.
I think that cache on the NFS server (an EMC filer) distorts these simplistic tests.]]></description>
		<content:encoded><![CDATA[<p>I understand.<br />
I think that cache on the NFS server (an EMC filer) distorts these simplistic tests.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://dboptimizer.com/2013/02/26/tcp-trace-analysis-for-nfs/#comment-153123</link>
		<dc:creator>Kyle Hailey</dc:creator>
		<pubDate>Thu, 11 Jul 2013 23:11:53 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2593#comment-153123</guid>
		<description><![CDATA[@mimmus:
Have you tried using netio, netsurf or iperf instead of dd?
Have you tried bs=32768? 
A bs=1024 is small.  
if &quot;mmm&quot; is a location on an NFS server and 
NFS transfers are going to take around 200us on the fast side.
and if a transfer is 1024 that is 1K then that&#039;s 5k/ms or 5M/sec   300MB/min  which is even slower than you are seeing.
In this case I would guess there is some aggregation going on already to hit 1GB/m
If your NFS exchanges are 12ms then the transfer sizes have to be around 200K
So in that case why not increase your bs explicitly?

For transfer rates it depends on the layers :
program, dd in this case
os,  nfs client
tcp nfs client
nic, nfs client
network
nic nfs server
tcp nfs server
os nfs server
nfs  on nfs server
I/O nfs server
you want to see which layer the time is being spent

you are doing a dd write from nfs client to nfs server so first big question is how fast is the I/O write speed on the NFS server.
The script on this blog post isolates latency at the nfs client tcp layer to the nfs server tcp layer 
if both those layers are slow then the problem is on the nfs server at either the nfs server os, nfs code path or I/O
The script on this blog post doesn&#039;t look at transfer sizes. It should for cases like this. In my case I knew the transfer sizes were 8K. In your case the transfer size has to be bigger than 1K if you are seeing 1GB/min with 12-13ms NFS exchanges.]]></description>
		<content:encoded><![CDATA[<p>@mimmus:<br />
Have you tried using netio, netsurf or iperf instead of dd?<br />
Have you tried bs=32768?<br />
A bs=1024 is small.<br />
if &#8220;mmm&#8221; is a location on an NFS server and<br />
NFS transfers are going to take around 200us on the fast side.<br />
and if a transfer is 1024 that is 1K then that&#8217;s 5k/ms or 5M/sec   300MB/min  which is even slower than you are seeing.<br />
In this case I would guess there is some aggregation going on already to hit 1GB/m<br />
If your NFS exchanges are 12ms then the transfer sizes have to be around 200K<br />
So in that case why not increase your bs explicitly?</p>
<p>For transfer rates it depends on the layers :<br />
program, dd in this case<br />
os,  nfs client<br />
tcp nfs client<br />
nic, nfs client<br />
network<br />
nic nfs server<br />
tcp nfs server<br />
os nfs server<br />
nfs  on nfs server<br />
I/O nfs server<br />
you want to see which layer the time is being spent</p>
<p>you are doing a dd write from nfs client to nfs server so first big question is how fast is the I/O write speed on the NFS server.<br />
The script on this blog post isolates latency at the nfs client tcp layer to the nfs server tcp layer<br />
if both those layers are slow then the problem is on the nfs server at either the nfs server os, nfs code path or I/O<br />
The script on this blog post doesn&#8217;t look at transfer sizes. It should for cases like this. In my case I knew the transfer sizes were 8K. In your case the transfer size has to be bigger than 1K if you are seeing 1GB/min with 12-13ms NFS exchanges.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mimmus</title>
		<link>http://dboptimizer.com/2013/02/26/tcp-trace-analysis-for-nfs/#comment-152935</link>
		<dc:creator>mimmus</dc:creator>
		<pubDate>Wed, 10 Jul 2013 08:37:40 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2593#comment-152935</guid>
		<description><![CDATA[Hi, the test command is:
 dd if=/dev/zero of=mmm bs=1024 count=1000000

The transfer occurs on a 10 Gbps network but it lasts +60 secs!!! On another server with same setup, it lasts 4-5 secs!
Mount options are:
 rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3
(Oracle suggests these).

I tested network using iperf and I can achieve almost 10 Gbps full, the bottleneck is elsewhere.]]></description>
		<content:encoded><![CDATA[<p>Hi, the test command is:<br />
 dd if=/dev/zero of=mmm bs=1024 count=1000000</p>
<p>The transfer occurs on a 10 Gbps network but it lasts +60 secs!!! On another server with same setup, it lasts 4-5 secs!<br />
Mount options are:<br />
 rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3<br />
(Oracle suggests these).</p>
<p>I tested network using iperf and I can achieve almost 10 Gbps full, the bottleneck is elsewhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://dboptimizer.com/2013/02/26/tcp-trace-analysis-for-nfs/#comment-152639</link>
		<dc:creator>Kyle Hailey</dc:creator>
		<pubDate>Sun, 07 Jul 2013 23:38:11 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2593#comment-152639</guid>
		<description><![CDATA[@mimmus: what exactly is taking 12-13ms? Is that the total transfer time at the TCP level or is that the transfer time of NFS request? and if it&#039;s the tranfer time of one NFS request then the question is, what  is the size of the NFS request.
what is the syntax of the dd command you are running? The  important is the block size, ie &quot;bs=&quot; part. Also are you doing a dd that is writing to the NFS server or reading from the NFS server.
A dd  1 GB of a 1 GbE should be around 100 MB/s thus around 10 secs, but if I change the bs size to something small, I can end up slowing the transfer time. The NFS I/O request size can be up to 1MB if the mount options are set the high and the OS supports it (HP and LINUX support 1MB, Solaris does too but you have to change a kernel parameter and AIX only supports 64K unless you use a patch to increase it)
If you just want to see what the throughput is across the wire then it might be better to use a tool like netio or netsurf which will test the throughput at different I/O transfer sizes over TCP.
In the above example I know the NFS request size is one database datablock size which is 8K]]></description>
		<content:encoded><![CDATA[<p>@mimmus: what exactly is taking 12-13ms? Is that the total transfer time at the TCP level or is that the transfer time of NFS request? and if it&#8217;s the tranfer time of one NFS request then the question is, what  is the size of the NFS request.<br />
what is the syntax of the dd command you are running? The  important is the block size, ie &#8220;bs=&#8221; part. Also are you doing a dd that is writing to the NFS server or reading from the NFS server.<br />
A dd  1 GB of a 1 GbE should be around 100 MB/s thus around 10 secs, but if I change the bs size to something small, I can end up slowing the transfer time. The NFS I/O request size can be up to 1MB if the mount options are set the high and the OS supports it (HP and LINUX support 1MB, Solaris does too but you have to change a kernel parameter and AIX only supports 64K unless you use a patch to increase it)<br />
If you just want to see what the throughput is across the wire then it might be better to use a tool like netio or netsurf which will test the throughput at different I/O transfer sizes over TCP.<br />
In the above example I know the NFS request size is one database datablock size which is 8K</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mimmus</title>
		<link>http://dboptimizer.com/2013/02/26/tcp-trace-analysis-for-nfs/#comment-152366</link>
		<dc:creator>mimmus</dc:creator>
		<pubDate>Fri, 05 Jul 2013 14:47:45 +0000</pubDate>
		<guid isPermaLink="false">http://dboptimizer.com/?p=2593#comment-152366</guid>
		<description><![CDATA[I&#039;m trying to use this script to understand why simply &quot;dd&quot;-ing a 1 GB file lasts more than 60 seconds. If write latency match on server and client and it&#039;s about 12-13 ms, where can be the problem???]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m trying to use this script to understand why simply &#8220;dd&#8221;-ing a 1 GB file lasts more than 60 seconds. If write latency match on server and client and it&#8217;s about 12-13 ms, where can be the problem???</p>
]]></content:encoded>
	</item>
</channel>
</rss>
