Setting up OMV on a Rock64 1GB board using the precompiled image. Setup went fine and configured a USB drive w/ shares, users, and access. Connecting to share w/ Win 10 PC works as expected. Moved a 2GB file to the share and write speeds start at around 75MBps and after 1GB or so of the file transferring the speeds drops to about 15MBps for the rest of the file. Reading files from the drive gives me a steady 75MBps the whole way through. Thought it might be a SAMBA issue so I tried the suggestions in the SAMBA tuning threads but it did not help. I tried moving the file over w/ FTP and saw the same issue. The drop off was slower but after about 1GB of the file moving it get slower and slower until it ended up at around 20MBps when the file finished. Any thoughts on what I could be looking for?
File transfers to OMV drop in speed after ~1GB
-
- OMV 4.x
- Munkee915
-
-
I've experienced something similar with my Rock64 4GB via AFP.
My transfer speed also seems to drop with time:
~300 MB @ 50 MB/s
~1.000 MB @ 20 MB/s
~5.000 MB @ 10 MB/sMaybe it's an MacOS issue but it's interesting that you have a Rock64 too.
-
Can you look at memory usage during copy? Maybe its just your drive speed and the first gb gets cached.
-
Maybe it's an MacOS issue
It's not. And to nail the problem down the procedure is always the same: test storage and network individually. If you search the forum for 'iperf iozone' or 'iperf3 iozone3' you most probably find some posts by my elaborating on this.
If the storage is the bottleneck then writes through the network will be fast until filesystem caches/buffers fill up and then the storage performance bottlenecks.
On the ARM images both tools are installed by default, no idea about x86. And on macOS for iperf3 all you do is to install homebrew and then a sudo brew install iperf3.
-
iperf test to and from
Code
Alles anzeigenConnecting to host 192.168.1.123, port 5201 [ 4] local 192.168.1.238 port 60277 connected to 192.168.1.123 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 112 MBytes 112 MBytes/sec [ 4] 1.00-2.00 sec 112 MBytes 112 MBytes/sec [ 4] 2.00-3.00 sec 113 MBytes 113 MBytes/sec [ 4] 3.00-4.00 sec 113 MBytes 113 MBytes/sec [ 4] 4.00-5.00 sec 113 MBytes 113 MBytes/sec [ 4] 5.00-6.00 sec 113 MBytes 113 MBytes/sec [ 4] 6.00-7.00 sec 113 MBytes 113 MBytes/sec [ 4] 7.00-8.00 sec 113 MBytes 113 MBytes/sec [ 4] 8.00-9.00 sec 113 MBytes 113 MBytes/sec [ 4] 9.00-10.00 sec 113 MBytes 113 MBytes/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 1.10 GBytes 113 MBytes/sec sender [ 4] 0.00-10.00 sec 1.10 GBytes 113 MBytes/sec receiver iperf Done. Accepted connection from 192.168.1.238, port 60276 [ 5] local 192.168.1.123 port 5201 connected to 192.168.1.238 port 60277 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 110 MBytes 110 MBytes/sec [ 5] 1.00-2.00 sec 111 MBytes 111 MBytes/sec [ 5] 2.00-3.00 sec 113 MBytes 113 MBytes/sec [ 5] 3.00-4.00 sec 113 MBytes 113 MBytes/sec [ 5] 4.00-5.00 sec 113 MBytes 113 MBytes/sec [ 5] 5.00-6.00 sec 113 MBytes 113 MBytes/sec [ 5] 6.00-7.00 sec 113 MBytes 113 MBytes/sec [ 5] 7.00-8.00 sec 113 MBytes 113 MBytes/sec [ 5] 8.00-9.00 sec 113 MBytes 113 MBytes/sec [ 5] 9.00-10.00 sec 113 MBytes 113 MBytes/sec [ 5] 10.00-10.02 sec 2.72 MBytes 113 MBytes/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.02 sec 0.00 Bytes 0.00 MBytes/sec sender [ 5] 0.00-10.02 sec 1.10 GBytes 113 MBytes/sec receiver Server listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.1.123, port 39638 [ 5] local 192.168.1.238 port 5201 connected to 192.168.1.123 port 39640 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 96.4 MBytes 96.4 MBytes/sec [ 5] 1.00-2.00 sec 100 MBytes 100 MBytes/sec [ 5] 2.00-3.00 sec 96.2 MBytes 96.2 MBytes/sec [ 5] 3.00-4.00 sec 100 MBytes 100 MBytes/sec [ 5] 4.00-5.00 sec 98.4 MBytes 98.4 MBytes/sec [ 5] 5.00-6.00 sec 100 MBytes 100 MBytes/sec [ 5] 6.00-7.00 sec 100 MBytes 100 MBytes/sec [ 5] 7.00-8.00 sec 101 MBytes 101 MBytes/sec [ 5] 8.00-9.00 sec 100 MBytes 100 MBytes/sec [ 5] 9.00-10.00 sec 100 MBytes 100 MBytes/sec [ 5] 10.00-10.03 sec 3.45 MBytes 99.9 MBytes/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.03 sec 0.00 Bytes 0.00 MBytes/sec sender [ 5] 0.00-10.03 sec 997 MBytes 99.4 MBytes/sec receiver Connecting to host 192.168.1.238, port 5201 [ 4] local 192.168.1.123 port 39640 connected to 192.168.1.238 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 102 MBytes 102 MBytes/sec 1 212 KBytes [ 4] 1.00-2.00 sec 100 MBytes 101 MBytes/sec 0 212 KBytes [ 4] 2.00-3.00 sec 96.2 MBytes 96.1 MBytes/sec 94 212 KBytes [ 4] 3.00-4.00 sec 100 MBytes 100 MBytes/sec 0 212 KBytes [ 4] 4.00-5.00 sec 98.0 MBytes 98.2 MBytes/sec 111 212 KBytes [ 4] 5.00-6.00 sec 101 MBytes 101 MBytes/sec 0 212 KBytes [ 4] 6.00-7.00 sec 101 MBytes 100 MBytes/sec 0 212 KBytes [ 4] 7.00-8.00 sec 101 MBytes 100 MBytes/sec 0 212 KBytes [ 4] 8.00-9.00 sec 100 MBytes 100 MBytes/sec 0 212 KBytes [ 4] 9.00-10.00 sec 100 MBytes 100 MBytes/sec 0 212 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 1000 MBytes 100 MBytes/sec 206 sender [ 4] 0.00-10.00 sec 997 MBytes 99.7 MBytes/sec receiver iperf Done.
Still trying to figure out how to use iozone though. I found a command in another thread but not sure this is what you need? It's supposed to be writing to a usb 3.0 thumb drive.
Code
Alles anzeigenAuto Mode Using maximum file size of 8192000 kilobytes. File size set to 8192000 kB Record Size 1024 kB Command line used: iozone -a -g 8000m -s 8000m -i 0 -i 1 -r 1024K Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 8192000 1024 207891 122426 254448 277796 iozone test complete.
EDIT: Found another thread where you said to do cd $share first then run iozone. Did that and here are the results. Still not sure if this is what you need though. not sure im using iozone correctly.
Code
Alles anzeigenAuto Mode Using maximum file size of 8192000 kilobytes. File size set to 8192000 kB Record Size 1024 kB Command line used: iozone -a -g 8000m -s 8000m -i 0 -i 1 -r 1024K Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 8192000 1024 194685 128177 276941 266232 iozone test complete.
-
Thanks @tkaiser!
Code
Alles anzeigeniperf3 -c 192.168.0.64 Connecting to host 192.168.0.64, port 5201 [ 5] local 192.168.0.84 port 50191 connected to 192.168.0.64 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 111 MBytes 933 Mbits/sec [ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec [ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec [ 5] 3.00-4.00 sec 112 MBytes 941 Mbits/sec [ 5] 4.00-5.00 sec 112 MBytes 940 Mbits/sec [ 5] 5.00-6.00 sec 112 MBytes 940 Mbits/sec [ 5] 6.00-7.00 sec 112 MBytes 941 Mbits/sec [ 5] 7.00-8.00 sec 112 MBytes 941 Mbits/sec [ 5] 8.00-9.00 sec 112 MBytes 941 Mbits/sec [ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec sender [ 5] 0.00-10.00 sec 1.09 GBytes 939 Mbits/sec receiver iperf Done.
Code
Alles anzeigenServer listening on 5201 ----------------------------------------------------------- Accepted connection from 192.168.0.84, port 50190 [ 5] local 192.168.0.64 port 5201 connected to 192.168.0.84 port 50191 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 109 MBytes 917 Mbits/sec [ 5] 1.00-2.00 sec 112 MBytes 942 Mbits/sec [ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec [ 5] 3.00-4.00 sec 112 MBytes 941 Mbits/sec [ 5] 4.00-5.00 sec 112 MBytes 939 Mbits/sec [ 5] 5.00-6.00 sec 112 MBytes 941 Mbits/sec [ 5] 6.00-7.00 sec 112 MBytes 939 Mbits/sec [ 5] 7.00-8.00 sec 112 MBytes 941 Mbits/sec [ 5] 8.00-9.00 sec 112 MBytes 942 Mbits/sec [ 5] 9.00-10.01 sec 112 MBytes 931 Mbits/sec [ 5] 10.01-10.01 sec 0.00 Bytes 0.00 bits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.01 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-10.01 sec 1.09 GBytes 937 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 -----------------------------------------------------------
I'm not sure how to interpret htop though...
connected via AFP, as user rocky while copying 7 GB files. -
Did I understand correctly, that the target medium is a thumb drive? This would be totally expected speeds with long copies than.
Your network seems fine.
You can test the drive using dd.
dd if=/dev/zero of=path/inside/thumdrive/test.img bs=100M count=20 oflag=direct
I am confident this will output the write speeds in which you saturated in long copies. This will create a 2gb file test.img, you can delete it after. -
It's supposed to be writing to a usb 3.0 thumb drive
These things can start to throttle based on access pattern. Your two iozone tests both seemed to test an USB drive since reported values are a bit too high for SD card or eMMC (or maybe you run off a really good high capacity eMMC module)?
Anyway: the mode to test with iozone is
This will test sequential transfer speeds with three different block sizes (128KB, 1MB, 16MB) and will also show throttling effects if an USB thumb drives starts to heat up and then slows down after some time. That's why we test with several block sizes of increasing size since normally the larger the block size the higher the transfer speeds. If performance decreases you know the thumb drive throttles to prevent overheating.
-
I'm not sure how to interpret htop though...
CPU utilization of the afpd task seems ok to me but on average every CPU core is utilized with 40% which seems to indicate that there's a lot of kernel background activity. As suggested in your other thread I would call iostat 10 in the background to get the bigger picture (armbianmonitor -m 10 should also suffice but that's not available on x86 installations)
-
@getName()
No, the target drive is a shared folder on a Western Digital HD 3 TB WD30EZRX SATA II 5400rpm. -
the target drive
In another thread you mentioned several disks connected to your Rock64? Is this really the case and if yes using which topology (an external hub? One disk connected to USB3, others to the USB2 ports)?
-
Yes there are 3 disks (each Western Digital 3 TB WD30EZRX Hard Disc HDD SATA II 5400rpm 3,5") in a FANTEC QB-X8US3 case. Connected via USB3.
-
Well, try iozone or dd in in please.
-
FANTEC QB-X8US3
O well, those unreliable external USB3 disk graveyards. Are you able to access all your disks via SMART (it works via eSATA but with USB3 it's always gambling)?
-
Did I understand correctly, that the target medium is a thumb drive? This would be totally expected speeds with long copies than.
Your network seems fine.
You can test the drive using dd.
dd if=/dev/zero of=path/inside/thumdrive/test.img bs=100M count=20 oflag=direct
I am confident this will output the write speeds in which you saturated in long copies. This will create a 2gb file test.img, you can delete it after. -
O well, those unreliable external USB3 disk graveyards. Are you able to access all your disks via SMART (it works via eSATA but with USB3 it's always gambling)?
When I tried to activate SMART monitoring on Device /dev/sda and dev/sdb, I get "communication failure" for each.
However at the next attempt it suddenly worked:FANTEC has an eSATA port.
Do you think an eSATA to USB cable would make any sense? -
These things can start to throttle based on access pattern. Your two iozone tests both seemed to test an USB drive since reported values are a bit too high for SD card or eMMC (or maybe you run off a really good high capacity eMMC module)?
Anyway: the mode to test with iozone isThis will test sequential transfer speeds with three different block sizes (128KB, 1MB, 16MB) and will also show throttling effects if an USB thumb drives starts to heat up and then slows down after some time. That's why we test with several block sizes of increasing size since normally the larger the block size the higher the transfer speeds. If performance decreases you know the thumb drive throttles to prevent overheating.
cd /srv/dev-disk-by-label-HD01
Code
Alles anzeigeniozone -e -I -a -s 1000M -r 128k -r 1024k -r 16384k -i 0 -i 1 Iozone: Performance Test of File I/O Version $Revision: 3.429 $ Compiled for 32 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner, Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone, Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root, Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer, Vangel Bojaxhi, Ben England, Vikentsi Lapa. Run began: Sun May 5 17:16:00 2019 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 1024000 kB Record Size 128 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 1000M -r 128k -r 1024k -r 16384k -i 0 -i 1 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 128 33658 36342 36771 37017 1024000 1024 38906 38972 38676 38955 1024000 16384 39763 39877 39832 39767 iozone test complete.
-
That smells like USB 2.0 (less than 40 MB/s). You could provide output of armbianmonitor -u but since you're using an ayufan image and not an Armbian based OMV image amount of information may be limited. At least you should check lsusb and lsusb -t
Do you think an eSATA to USB cable would make any sense?
Nope. In those eSATA/USB drive enclosures there's one SATA port multiplier (with USB3 usually a JMicron JMB575) combined with one USB3-to-SATA bridge (most probably a JMS567). So all you would do is exchanging one USB3-to-SATA bridge with another which usually makes things even worse.
-
Do you think an eSATA to USB cable would make any sense?
No! You need an eSATA-port or at least an SATA-port on the other side. And if you want to address more than one disk in the enclosure the sata/esata-port on the motherboard must support port-multiplier. It´s a game of luck to find a combination that works.
Edit: time overlap
-
Code
lsusb Bus 005 Device 002: ID 152d:0551 JMicron Technology Corp. / JMicron USA Technology Corp. Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Codelsusb -t /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!