Скорость чтения и записи HDD

Недавно купил 2 жестких диска Western Didital RE4 WD2003FYYS 2 Tb, описание: http://www.wdc.com/wdproducts/library/SpecSheet/ENG/2879-701338.pdf
Подключил через контроллер Promise SATA300 TX4, описание: http://www.promise.com/support/download_file.aspx?rsn=758&m=93&region=en-global
Материнская плата Intel DP67BA: http://www.intel.ru/content/www/ru/ru/motherboards/desktop-motherboards/desktop-board-dp67ba.html

В результате имею проблемы с скоростью линейного чтения и записи. Например поставил собираться RAID1 из этих 2-х дисков - показывает скорость синхронизации speed=32400K/sec. Скорости чтения более 70 мб/c мне не удалось добиться, хотя в описании диска указано Host to/from drive (sustained) 138 Mb/s.

Как выяснить в чём затык?

$ hdparm -I /dev/sde
/dev/sde:

ATA device, with non-removable media
	Model Number:        WD2003FYYS-02W0B1                   
	Serial Number:           WD-WMAY05219489
	Firmware Revision:  
Standards:
	Supported: 8 7 6 5 
	Likely used: 8
Configuration:
	Logical		max	current
	cylinders	16383	16383
	heads		16	16
	sectors/track	63	63
	--
	CHS current addressable sectors:   16514064
	LBA    user addressable sectors:  268435455
	LBA48  user addressable sectors: 3907029168
	device size with M = 1024*1024:     1907729 MBytes
	device size with M = 1000*1000:     2000398 MBytes (2000 GB)
Capabilities:
	LBA, IORDY(can be disabled)
	Queue depth: 32
	Standby timer values: spec'd by standard, with device specific minimum
	R/W multiple sector transfer: Max = 16	Current = 0
	AdvancedPM level: unknown setting (0x0080)
	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
		Cycle time: min=120ns recommended=120ns
	PIO: pio0 pio1 pio2 pio3 pio4 
		Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
	Enabled	Supported:
	   *	NOP cmd
	   *	READ BUFFER cmd
	   *	WRITE BUFFER cmd
	   *	Host Protected Area feature set
	   *	Look-ahead
	   *	Write cache
	   *	Power Management feature set
		Security Mode feature set
	   *	SMART feature set
	   *	FLUSH CACHE EXT cmd
	   *	Mandatory FLUSH CACHE cmd 
	   *	Device Configuration Overlay feature set 
	   *	48-bit Address feature set 
		SET MAX security extension
	   *	SET FEATURES subcommand required to spinup after power up
		Power-Up In Standby feature set
	   *	Adv. Power Management feature set
	   *	DOWNLOAD MICROCODE cmd
	   *	General Purpose Logging feature set
	   *	SMART self-test 
	   *	SMART error logging 
Security:
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	310min for SECURITY ERASE UNIT. 310min for ENHANCED SECURITY ERASE UNIT. 
Checksum: correct

Можеть быть в этом:Drakon

Глянь, что там с шум/производительность: hdparm -M /dev/sde

Или может быть в этом дело:

Drakon написал(а):
R/W multiple sector transfer: Max = 16 Current = 0

Замерь после: hdparm -E 16 /dev/sde --yes-i-know-what-i-am-doing

Оказалось у меня стояла

Оказалось у меня стояла старая версия hdparm... Вот результат работы последней версии, более детально получилось:

# hdparm -I /dev/sde

/dev/sde:

ATA device, with non-removable media
	Model Number:       WDC WD2003FYYS-02W0B1                   
	Serial Number:      WD-WMAY05219489
	Firmware Revision:  01.01D02
	Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
	Supported: 8 7 6 5 
	Likely used: 8
Configuration:
	Logical		max	current
	cylinders	16383	16383
	heads		16	16
	sectors/track	63	63
	--
	CHS current addressable sectors:   16514064
	LBA    user addressable sectors:  268435455
	LBA48  user addressable sectors: 3907029168
	Logical/Physical Sector size:           512 bytes
	device size with M = 1024*1024:     1907729 MBytes
	device size with M = 1000*1000:     2000398 MBytes (2000 GB)
	cache/buffer size  = unknown
	Nominal Media Rotation Rate: 7200
Capabilities:
	LBA, IORDY(can be disabled)
	Queue depth: 32
	Standby timer values: spec'd by Standard, with device specific minimum
	R/W multiple sector transfer: Max = 16	Current = 0
	Advanced power management level: 128
	DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
	     Cycle time: min=120ns recommended=120ns
	PIO: pio0 pio1 pio2 pio3 pio4 
	     Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
	Enabled	Supported:
	   *	SMART feature set
	    	Security Mode feature set
	   *	Power Management feature set
	   *	Write cache
	   *	Look-ahead
	   *	Host Protected Area feature set
	   *	WRITE_BUFFER command
	   *	READ_BUFFER command
	   *	NOP cmd
	   *	DOWNLOAD_MICROCODE
	   *	Advanced Power Management feature set
	    	Power-Up In Standby feature set
	   *	SET_FEATURES required to spinup after power up
	    	SET_MAX security extension
	   *	48-bit Address feature set
	   *	Device Configuration Overlay feature set
	   *	Mandatory FLUSH_CACHE
	   *	FLUSH_CACHE_EXT
	   *	SMART error logging
	   *	SMART self-test
	   *	General Purpose Logging feature set
	   *	WRITE_{DMA|MULTIPLE}_FUA_EXT
	   *	64-bit World wide name
	   *	IDLE_IMMEDIATE with UNLOAD
	   *	WRITE_UNCORRECTABLE_EXT command
	   *	{READ,WRITE}_DMA_EXT_GPL commands
	   *	Segmented DOWNLOAD_MICROCODE
	    	unknown 119[7]
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)
	   *	Native Command Queueing (NCQ)
	   *	Phy event counters
	   *	Idle-Unload when NCQ is active
	   *	NCQ priority information
	    	DMA Setup Auto-Activate optimization
	   *	Software settings preservation
	   *	SMART Command Transport (SCT) feature set
	   *	SCT Long Sector Access (AC1)
	   *	SCT LBA Segment Access (AC2)
	   *	SCT Error Recovery Control (AC3)
	   *	SCT Features Control (AC4)
	   *	SCT Data Tables (AC5)
	    	unknown 206[12] (vendor specific)
	    	unknown 206[13] (vendor specific)
Security: 
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
	not	frozen
	not	expired: security count
		supported: enhanced erase
	310min for SECURITY ERASE UNIT. 310min for ENHANCED SECURITY ERASE UNIT. 
Logical Unit WWN Device Identifier: 50014ee2b1a52635
	NAA		: 5
	IEEE OUI	: 0014ee
	Unique ID	: 2b1a52635
drakon / # hdparm -M /dev/sde

/dev/sde:
 acoustic      = not supported

-

hdparm -tT /dev/sde давай

hdparm -tT /dev/sde давай посмотрим.
И поправлю себя: hdparm --yes-i-know-what-i-am-doing -m 16 /dev/sde

drakon sphinx # hdparm -tT

drakon sphinx # hdparm -tT /dev/sde

/dev/sde:
 Timing cached reads:   20350 MB in  2.00 seconds = 10185.29 MB/sec
 Timing buffered disk reads: 266 MB in  3.00 seconds =  88.60 MB/sec
drakon sphinx # hdparm -tT /dev/sdf

/dev/sdf:
 Timing cached reads:   19568 MB in  2.00 seconds = 9793.29 MB/sec
 Timing buffered disk reads: 270 MB in  3.00 seconds =  89.89 MB/sec

А как потом отменить действие команды hdparm -m 16?

-

И ещё тесты дискового

И ещё тесты дискового массива.

Запись сначала на один диск потом на другой

drakon / # dd if=/dev/zero of=/dev/sde bs=100M count=20 conv=fsync
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 44,6547 c, 47,0 MB/c

drakon  # dd if=/dev/zero of=/dev/sdf bs=100M count=20 conv=fsync
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 44,5697 c, 47,1 MB/c

А теперь на 2 одновременно:

drakon  # dd if=/dev/zero of=/dev/sdf bs=100M count=20 conv=fsync
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 82,5194 c, 25,4 MB/c
drakon / # dd if=/dev/zero of=/dev/sde bs=100M count=20 conv=fsync
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 82,7536 c, 25,3 MB/c

Получается что всё-таки на контроллере затык, потому через него не проходит больше 47 мб/c.

Чтение:

drakon / # dd if=/dev/sde of=/dev/null bs=100M count=20 skip=20
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 22,6652 c, 92,5 MB/c

drakon / # dd if=/dev/sdf of=/dev/null bs=100M count=20 skip=20
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 22,6526 c, 92,6 MB/c

Чтение одновременно:

drakon / # dd if=/dev/sde of=/dev/null bs=100M count=20 skip=40
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 41,798 c, 50,2 MB/c
drakon / # dd if=/dev/sdf of=/dev/null bs=100M count=20 skip=40
20+0 записей считано
20+0 записей написано
 скопировано 2097152000 байт (2,1 GB), 41,7795 c, 50,2 MB/c

Опять одновременно скорость чтения почти в 2 раза ниже чем если с одного диска...

-

Если посмотреть lspci,

Если посмотреть lspci, показывает:

03:00.0 Mass storage controller: Promise Technology, Inc. PDC40718 (SATA 300 TX4) (rev 02)
	Subsystem: Promise Technology, Inc. PDC40718 (SATA 300 TX4)
	Flags: bus master, 66MHz, medium devsel, latency 72, IRQ 16
	I/O ports at d200 [=128]
	I/O ports at d100 [=256]
	Memory at f7228000 (32-bit, non-prefetchable) [=4K]
	Memory at f7200000 (32-bit, non-prefetchable) [=128K]
	Expansion ROM at f7220000 [disabled] [=32K]
	Capabilities: [60] Power Management version 2
	Kernel driver in use: sata_promise

Т. е. висит на канале 66 Mhz - 266 мб/c - и соответственно больше чем 133 мб/с на диск не получить.

Шина на которой висит контроллер - http://downloadmirror.intel.com/19489/eng/DP67BA_TechProdSpec05.pdf - PCI Local Bus Specification Revision 2.2 - http://ru.wikipedia.org/wiki/PCI#PCI_2.1.C2.A0.E2.80.94_3.0 - также рассчитана на 266 мб/с. Но на этой шине и конкретно на этом 16-ом прерывании висит ещё куча устройств:

~ $ cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       
  0:        723          0          0          0   IO-APIC-edge      timer
  1:          2          0          0          0   IO-APIC-edge      i8042
  8:        107          0          0          0   IO-APIC-edge      rtc0
  9:          0          0          0          0   IO-APIC-fasteoi   acpi
 12:          4          0          0          0   IO-APIC-edge      i8042
 16:   18526656          0          0          0   IO-APIC-fasteoi   sata_promise, ehci_hcd:usb1, hda_intel, nvidia
 23:         30          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb2
 43:    9743021          0          0          0   PCI-MSI-edge      ahci
 44:    9527555          0          0          0   PCI-MSI-edge      eth2
 45:    8423172          0          0          0   PCI-MSI-edge      hda_intel
NMI:          0          0          0          0   Non-maskable interrupts
LOC:   77154508   70594695   37590186   24640200   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0   Performance monitoring interrupts
IWI:          0          0          0          0   IRQ work interrupts
RES:   50459367   46490561   26089464   17639142   Rescheduling interrupts
CAL:     254489     225556     285471     313862   Function call interrupts
TLB:    3890415    4105622    3915543    3706730   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:        601        601        601        601   Machine check polls
ERR:          0

Т. е. здесь получается и видео и usb-контроллер и звук... Может быть что все эти устройства отнимают пропускную способность и ещё есть доп. тормоза за счёт того что всё на одном прерывании? И возможно-ли перенести SATA контроллер на другое прерывание?

-

У mdadm может быть предел по

У mdadm может быть предел по скорости на сборку/синхронизацию. Смотри параметры из /proc/sys/dev/raid/speed_limit_m*

Не грусти, товарищ! Всё хорошо, beautiful good!

drakon / # cat

drakon / # cat /proc/sys/dev/raid/speed_limit_max
200000
drakon / # cat /proc/sys/dev/raid/speed_limit_min
1000

У меня в системе ещё стоят 4 диска Western Digital RE3 750 Gb - на них скорость сборки RAID была где-то 150 мб/c. И скорость чтения оттуда сейчас очень большая.

А может-ли быть что скорость ограничивается физически на самом диске из-за того что диск стоит не совсем горизонтально?

-

А они отфораматированы с

А они отфораматированы с учётом advanced format'a который в них скорее всего есть?

Это что? И как проверить? А

Это что? И как проверить?
А вообще скорость чтения и записи я замерял через dd ещё до создания файловой системы.

-

Это в вики можно почитать

Это в вики можно почитать http://ru.wikipedia.org/wiki/Advanced_Format.

Сомнительно так же что одним винтом можно забить контроллер.

drakon drakon # fdisk -l

drakon drakon # fdisk -l /dev/sde

Disk /dev/sde: 2000.4 GB, 2000398934016 bytes
81 heads, 63 sectors/track, 765633 cylinders, всего 3907029168 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4be10a48

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sde1            2048  3907029167  1953513560   fd  Автоопределение Linux raid

Получается использует секторы 512 байт, а не 4096... Это может так сильно влиять на производительность?

-

Да нет, у вас всё нормально.

Да нет, у вас всё нормально. У вас раздел начинается с 2048 сектора, номер которого кратен 8.

PCI - больше из нее не выжмите

Если нужна линейная скорость - используйте контроллер встроенные в материнскую плату
Если портов не хватает - внешний на PCI-Express, причем 4х и выше (для версии PCI-e 1.x). Для PCI-e 2.0 - можно и 2x.

Сейчас у вас скорее всего PCI 32битный на 33MHz, с пиковой пропускной способностью в 133МБ/с. За вычетом накладных расходов самой шины и других устройств на ней - скорости чтения 70МБ/с - вполне здравая.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".