3

I have 2x Seagate Barracuda 1TB 1000GB 7200RPM 64MB SATA3 HDs in an ubuntu 16.04 server (Dell Poweredge 400SC).

When copying files using rsync from one disk to another I'm getting speeds of 25-30 Mb/s. From reading it would appear I should be able to achieve double that.

How should I go about optimising this setup to increase the transfer speed?

// lsblk

sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0   931G  0 part /
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0   509M  0 part [SWAP]
sdb      8:16   0 931.5G  0 disk 
├─sdb1   8:17   0    20G  0 part 
└─sdb2   8:18   0 910.5G  0 part /mnt

I've read about enabling DMA, but it appears I don't seem to be able to do this on the system.

// hdparm -Tt /dev/sdb

/dev/sdb:
 Timing cached reads:   1098 MB in  2.00 seconds = 548.31 MB/sec
 Timing buffered disk reads: 346 MB in  3.02 seconds = 114.69 MB/sec

Trying to enable DMA on sdb does the following.

// hdparm -d1 /dev/sdb

/dev/sdb:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Inappropriate ioctl for device
 HDIO_GET_DMA failed: Inappropriate ioctl for device

// hdparm -i /dev/sdb

/dev/sdb:

 Model=ST1000DM003-1SB102, FwRev=CC43, SerialNo=Z9A4EEL4
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

// dmesg | grep SATA

[    2.074207] ata3: SATA max UDMA/133 cmd 0xfe00 ctl 0xfe10 bmdma 0xfea0 irq 18
[    2.080635] ata4: SATA max UDMA/133 cmd 0xfe20 ctl 0xfe30 bmdma 0xfea8 irq 18

// lspci

00:00.0 Host bridge: Intel Corporation 82875P/E7210 Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82875P Processor to AGP Controller (rev 02)
00:06.0 System peripheral: Intel Corporation 82875P/E7210 Processor to I/O Memory Interface (rev 02)
00:1d.0 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev c2)
00:1f.0 ISA bridge: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)
00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Rage XL PCI (rev 27)
02:0c.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)

// SATA version

// smartctl -a /dev/sdb | grep SATA
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 1.5 Gb/s)
denden
  • 151
  • 1
  • 2
  • 4
  • I too get max speeds < 50 M/s on similar hardware. Very interested in how to get closer to the 3-6 G/s speeds advertised on the HD. – jc__ Oct 26 '17 at 13:09
  • @jc__ I'd be interested to know what you've tried and what effect it may have had if you had the time to summarize – denden Oct 26 '17 at 13:14
  • 1
    *What file system are you writing to?* I have found that linux file systems are managed in a better way by linux than NTFS and therefore the write speed is much higher. *Is the file system encrypted?* – sudodus Oct 26 '17 at 13:20
  • 2
    Please note that you are using UDMA6 right now, which has a transfer rate of 133 MB/sec, and that the max sustained transfer rate for your disk is 210 MB/s [https://www.seagate.com/www-content/datasheets/pdfs/3-5-barracuda-3tbDS1900-10-1710US-en_US.pdf](https://www.seagate.com/www-content/datasheets/pdfs/3-5-barracuda-3tbDS1900-10-1710US-en_US.pdf) – Charles Green Oct 26 '17 at 13:29
  • @sudodus Not encrypted and it's ext4 – denden Oct 26 '17 at 13:31
  • 3
    Also do a *performance test*. Use gnome-disks or dd, and write a large file (3xRAM for instance). rsync spends a lot of time comparing files, not only transfering! – vidarlo Oct 26 '17 at 13:35
  • 1
    If I had to *make a guess* (which I will) I would guess that both drives are connected to a single bus in the physical system - the bus is capable of speeds of 133 MB/s, but since two drives are sharing the bus, the perceived speed will be half of that as the drives share the bandwidth. Then you add the overhead of rsync... I run rsync to a USBc device, and see speeds of 100 MB/s for large file transfers – Charles Green Oct 26 '17 at 13:41
  • @CharlesGreen thanks again I've included the output of `lspci`, `dmesg | grep SATA` and `smartctl -a /dev/sdb | grep SATA` for reference – denden Oct 26 '17 at 13:50
  • [An answer with some more advices](https://askubuntu.com/a/2101/266507). – Hi-Angel Nov 03 '17 at 06:25

1 Answers1

0

I imagine this question might attract many different answers.

Out of top of my head, one trick is to save some writes by disabling atime. It's the time of last access to a file, by default it's usually set to relatime, which is better in terms of performance than atime. But, you can further improve it by disabling completely through noatime option. E.g.:

$ grep noatime /etc/fstab                  
UUID=9b5e4b95-46b1-4f54-aa07-9de91e01cbf2 /             ext4            rw,noatime,data=ordered 0 0
Hi-Angel
  • 3,612
  • 1
  • 29
  • 35
  • Thanks: for records i mounted the drive with `noatime` using the following `mount -o remount,noatime /dev/sdb2 /mnt`. I tried editing `/etc/fstab` as above and using my UUID but it didn't work. – denden Oct 26 '17 at 13:38
  • 1
    To add it appears to have made a slight increase in speed to `±30Mb/s` – denden Oct 26 '17 at 13:39