Posts Tagged benchmarking
Samba vs NFS on DNS-323
So far, I was using Samba to share the files stored on my D-Link DNS-323. However, people tend to say that NFS is quicker than Samba. So let’s benchmark those two protocols and figure out which one is actually quicker.
First of all, here is my configuration:
Server | Client |
---|---|
D-Link DNS-323 Linux dlink-5610E5 2.6.12.6-arm1 Samba 3.0.24 UNFS3 0.9.20 |
Raspberry Pi Linux alarmpi 3.6.11-15-ARCH+ CIFS utils 6.1-1 NFS utils 1.2.8-9 |
I used IOzone to benchmark these protocols from the Raspberry Pi. You can find the package for Arch Linux ARM on one of my previous post.
I first mounted the Samba and NFS share drives in the two respective folders /mnt/storage_smb
and /mnt/storage_nfs
.
I then ran the following commands (not at the same time):
iozone -RazcR -U /mnt/storage_smb -f /mnt/storage_smb/testfile -b smb_excel_output.xls iozone -RazcR -U /mnt/storage_nfs -f /mnt/storage_nfs/testfile -b nfs_excel_output.xls
You can download the output files here and here.
Or, you can simply have a look at a summary of these two files in the following table which basically compare the average speed (in Kbytes per second) for both Samba and NFS:
Samba | NFS | |
---|---|---|
Write | 7683 | 6676 |
Re-write | 7544 | 6795 |
Read | 21862 | 50464 |
Re-read | 22383 | 50210 |
Random read | 6348 | 6444 |
Random write | 7603 | 6751 |
Backward read | 5909 | 5246 |
Record rewrite | 80294 | 87225 |
Stride read | 15629 | 11868 |
Fwrite | 7471 | 6700 |
Re-fwrite | 7494 | 6671 |
Fread | 7739 | 7685 |
Re-fread | 7596 | 7639 |
As you can see, it looks like NFS is quicker for read operations but slower for write operations than Samba. But please remember that this is true for this very specific configuration ; It could be completely different for another one.
In conclusion, I personally decided to use both Samba and NFS depending of what I need. If I need a read only access to my data, I use NFS. However, if I need to write data, I use Samba.
NB: Another reason why I didn’t completely stop using Samba is because symbolic links don’t work with NFS. Instead, you need to use binding (mounting a folder inside another folder), but this is kind of incompatible with my use of rsync to backup my data. 🙁
SD Card Benchmark on a Raspberry Pi
Some time ago, I bought a Raspberry Pi. I am not going to describe what it is here, but you can read more about it on this page.
The first thing you need to buy when you’ve got a Raspberry Pi is a SD card. But the question I asked myself is: “Which one?”. Indeed, there are so many models with different type, capacity and speed. 🙁
I first checked the compatibility list found on the Embedded Linux Wiki:
http://elinux.org/RPi_SD_cards#Working_.2F_Non-working_SD_cards
But this list didn’t help me much. Indeed, out of them, which one should I buy?
This is why I decided to test two SD cards with two different speed:
- SanDisk SDSDXPA-008G-X46 8GB 95MB/S Extreme Pro SDHC Class10
- SanDisk SDSDX-032G-FFP 32GB 45MB/S Extreme SDHC Class10
As you can see, the speed of the first one is 95MB/S against 45MB/S for the second one. Does it mean the Raspberry Pi will run twice quicker?
Let’s check it by benchmarking the cards.
I used IOzone to benchmark these cards. Unfortunately, IOzone is not available for ARM on ArchLinux. I wrote a separate article about it.
I ran the exact same command for both cards:
iozone -e -I -a -s 50M -r 4k -r 512k -r 16M -i 0 -i 1 -i 2
Please find below the result for the SD card with a speed of 95MB/S:
random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 51200 4 1422 1502 5841 5838 5688 878 51200 512 20743 20924 22094 22130 22121 8313 51200 16384 20090 21349 22413 22514 22458 21351
The full output can be found here.
And the following is the result for the SD card with a speed of 45MB/S:
random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 51200 4 1653 1858 4566 4716 3996 755 51200 512 20515 19534 21953 22031 21867 4722 51200 16384 15841 21240 22311 22390 22384 21177
The full output can be found here.
So, it looks like the difference is not that big. Indeed, the SD card with a speed of 95MB/S is not twice quicker than the other one. Why is that? In my opinion, this is directly linked to the actual speed of the SD card reader within the Raspberry Pi.
Which means that it doesn’t matter which card you are using, you won’t go further than 22MB/S anyway.
Finally, please find below some other benchmarks on the same topic: