iPerf and DD tests

Status
Not open for further replies.

junior466

Explorer
Joined
Mar 26, 2018
Messages
79
I am having a bit of hard time understanding the different between both. As far as I know, iPerf will test the total throughput of the network while dd will test write/read performance. I am mainly interested in knowing the performance of my FreeNAS host while serving SMB/NFS shares and research has led me to these tools.

My iPerf results:

Code:
iperf -c 192.168.139.5 -p 5001 -f m

------------------------------------------------------------

Client connecting to 192.168.139.5, TCP port 5001

TCP window size: 0.08 MByte (default)

------------------------------------------------------------

[  3] local 192.168.140.11 port 33040 connected with 192.168.139.5 port 5001

[ ID] Interval	   Transfer	 Bandwidth

[  3]  0.0-10.0 sec  1084 MBytes   909 Mbits/sec


Code:
dd results:

dd if=/dev/zero of=/media/FreeNAS/Myshare/tempfile bs=1M count=5000 conv=fdatasync

5000+0 records in

5000+0 records out

5242880000 bytes (5.2 GB, 4.9 GiB) copied, 55.0537 s, 95.2 MB/s


My pool consists of a pair of mirrors and my system specs are as follow:

Build FreeNAS-11.1-U6
Platform Intel(R) Xeon(R) CPU E5-2403 0 @ 1.80GHz
Memory 16GB

My questions are how do these results help me understand the performance of the shares mounted on the client computers? I ran the iperf test on each client with FreeNAS in server mode and they all reliably report a steady 900mbps result.

The dd test above was ran on the mounted share currently on the client. Is this the correct way to test the speed in which the client will write on the share? Is this basically a network test as well as a write test since its on a mounted share?
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
iperf tests the network. dd can be used to test local disk I/O.

You say you're running dd on a client, on a mounted share? Sure, that's possible, but it doesn't tell you anything you wouldn't know from normal use with whatever tools you use.

By the way, 95.2 MB/s is perfectly reasonable for a 1GbE connection.
 

junior466

Explorer
Joined
Mar 26, 2018
Messages
79
iperf tests the network. dd can be used to test local disk I/O.

You say you're running dd on a client, on a mounted share? Sure, that's possible, but it doesn't tell you anything you wouldn't know from normal use with whatever tools you use.

By the way, 95.2 MB/s is perfectly reasonable for a 1GbE connection.

So I think I completely misinterpreted the idea behind dd test. I was under the impression that I could run it by pointing it towards the mounted share and the results would be the equivalent of the client making a transfer to the NAS. If that's not the case, then what is the best way to test the performance of the mounted share on the client? Is that what iPerf does?
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
was under the impression that I could run it by pointing it towards the mounted share and the results would be the equivalent of the client making a transfer to the NAS.
They are a transfer to/from the NAS, depending on what you're doing. Here you're sending zeros to the server. Zeros compress really well and are a pretty horrible way of testing ZFS with compression enabled (as it should be). Thing is, you have a server, so you must have something you want it to do. How fast is that something?
 

junior466

Explorer
Joined
Mar 26, 2018
Messages
79
They are a transfer to/from the NAS, depending on what you're doing. Here you're sending zeros to the server. Zeros compress really well and are a pretty horrible way of testing ZFS with compression enabled (as it should be).

That makes sense. I understand it now.

Thing is, you have a server, so you must have something you want it to do. How fast is that something?

I am mainly looking for max transfer speeds from my computers to their mounted share. To simplify my question, what is the best way for me to test SMB/NFS transfer speed from a linux server to FreeNAS? Ideally, I would like to run a test that would simply transfer a file to the share and show me the speed it was transferred. I know I can achieve that using a gui (by just watching the transfer window) but my computers are all Ubuntu 16.04.

That is why I thought that running
Code:
dd if=/dev/zero of=/path/to/freenas/mountedshare/ bs=1M count=5000
from the client computer was the way to go.
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
You'll want to use something big and uncompressible, like a video, as the source, regardless of what you use.
 
Status
Not open for further replies.
Top