Как увеличить скорость записи на жестком диске

Вопрос или проблема

У меня есть 2x Seagate Barracuda 1TB 1000GB 7200RPM 64MB SATA3 жестких диска на сервере с ubuntu 16.04 (Dell Poweredge 400SC).

При копировании файлов с одного диска на другой с помощью rsync я получаю скорость 25-30 Мб/с. Судя по тому, что я читал, я должен быть в состоянии достичь двойной скорости.

Как оптимизировать эту настройку, чтобы увеличить скорость передачи?

// 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

Я читал о включении DMA, но, похоже, я не могу сделать это в системе.

// hdparm -Tt /dev/sdb

/dev/sdb:
 Время чтения из кэша:   1098 MB за  2.00 секунды = 548.31 MB/с
 Время чтения с диска: 346 MB за  3.02 секунды = 114.69 MB/с

Попытка включить DMA на sdb дает следующее.

// hdparm -d1 /dev/sdb

/dev/sdb:
 установка using_dma на 1 (включено)
 HDIO_SET_DMA не удалась: Неправильный ioctl для устройства
 HDIO_GET_DMA не удалась: Неправильный ioctl для устройства

// hdparm -i /dev/sdb

/dev/sdb:

 Модель=ST1000DM003-1SB102, RevFw=CC43, Серийный номер=Z9A4EEL4
 Конфигурация={ 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=вкл/выкл, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 Режимы PIO:  pio0 pio1 pio2 pio3 pio4 
 Режимы DMA:  mdma0 mdma1 mdma2 
 Режимы UDMA: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=yes: неизвестная настройка WriteCache=включено
 Диск соответствует: неизвестно:  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 Хост-мост: Intel Corporation 82875P/E7210 Memory Controller Hub (rev 02)
00:01.0 PCI-мост: Intel Corporation 82875P Processor to AGP Controller (rev 02)
00:06.0 Системный периферийный контроллер: Intel Corporation 82875P/E7210 Processor to I/O Memory Interface (rev 02)
00:1d.0 USB контроллер: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
00:1d.1 USB контроллер: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)
00:1d.2 USB контроллер: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02)
00:1d.3 USB контроллер: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02)
00:1d.7 USB контроллер: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)
00:1e.0 PCI-мост: Intel Corporation 82801 PCI Bridge (rev c2)
00:1f.0 ISA-мост: Intel Corporation 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)
00:1f.1 IDE интерфейс: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
00:1f.2 IDE интерфейс: 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 Мультимедийный аудиоконтроллер: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
02:00.0 VGA совместимый контроллер: Advanced Micro Devices, Inc. [AMD/ATI] Rage XL PCI (rev 27)
02:0c.0 Ethernet контроллер: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)

// Версия SATA

// smartctl -a /dev/sdb | grep SATA
Версия SATA:  SATA 3.0, 6.0 Gb/s (текущая: 1.5 Gb/s)

Я представляю, что этот вопрос может вызвать множество различных ответов.

Первое, что приходит в голову, это сэкономить часть записей, отключив atime. Это время последнего доступа к файлу, по умолчанию оно обычно установлено на relatime, что лучше с точки зрения производительности, чем atime. Но вы можете еще больше улучшить это, отключив полностью через опцию noatime. Например:

$ grep noatime /etc/fstab                  
UUID=9b5e4b95-46b1-4f54-aa07-9de91e01cbf2 /             ext4            rw,noatime,data=ordered 0 0

Ответ или решение

Увеличение скорости записи на жестких дисках (HDD) – важная задача для повышения общей производительности системы, особенно в средах, где требуется работа с большими объемами данных. Рассмотрим несколько подходов к оптимизации скорости записи на ваших жестких дисках Seagate Barracuda 1TB, установленных в сервере Ubuntu 16.04.

1. Аппаратные настройки

Проверка интерфейса SATA:
Ваши жесткие диски поддерживают SATA 3.0 (6.0 Gb/s), однако текущая скорость, согласно информации из smartctl, составляет 1.5 Gb/s. Это означает, что диски работают на более низкой скорости, чем теоретически возможная. Убедитесь, что кабели SATA и SATA-контроллер, к которым подключены ваши диски, поддерживают SATA 3.0. Возможно, необходимо проверить сервер на модернизацию контроллера.

Обновление оборудования:
Если ваш сервер использует старый контроллер SATA, рассмотреть возможность замены его на более современный, который поддерживает более высокие скорости передачи данных.

2. Оптимизация настройки файловой системы

Деинсталляция atime:
Как вы уже упомянули, отключение atime – это хорошая практика. Это может уменьшить количество операций записи и, следовательно, улучшить производительность. Убедитесь, что в вашем файле /etc/fstab для ваших разделов установлены параметры:

UUID=XXXX-XXXX-XXXX-XXXX /  ext4  rw,noatime,data=ordered 0 0

3. Исполнение команд rsync

Параметры rsync:
Оптимизируйте использование rsync, например, используя параметр -z для сжатия данных. Это может особенно помочь при передаче большого количества текстовых файлов.

rsync -az source/ destination/

Если вы работаете с большим количеством небольших файлов, рассмотрите использование параметра --inplace, чтобы избежать создания временных файлов.

4. Настройка кэша записи

Включение кэша записи:
Убедитесь, что кэш записи на жестких дисках включен. Вы можете проверить и включить его с помощью команды hdparm (если поддерживается на вашем контроллере):

hdparm -W1 /dev/sda
hdparm -W1 /dev/sdb

Важно: Будьте осторожны, так как отключение кэша (если это необходимо) может привести к потере данных в случае сбоя питания.

5. Операционная система и драйвера

Обновите ядро и драйвера:
Обратите внимание на то, что версии программного обеспечения (ядро, драйвера) могут повлиять на производительность. Проверьте наличие обновлений для Ubuntu и установите последние версии.

6. Использование режима ускоренной записи

Если ваш сервер поддерживает режимы работы с высокой производительностью, такие как режим "performance" в hdparm, вы можете его активировать:

hdparm -A /dev/sda
hdparm -A /dev/sdb

При этом, обратите внимание на возможное снижение надежности при использовании этого параметра.

Заключение

Увеличение скорости записи на HDD может требовать комплексного подхода, включающего в себя аппаратные обновления, настройку системы и оптимизацию процессов. Помните, что результаты могут варьироваться в зависимости от конфигурации вашей системы и конкретных условий работы. Следуя вышеописанным рекомендациям, вы можете ожидать улучшения скорости передачи данных между вашим жесткими дисками.

Оцените материал
Добавить комментарий

Капча загружается...