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 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,702
  • 1
  • 29
  • 36
  • 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