Работая на старом оборудовании, на котором установлена Ubuntu, я заметил, используя top, что огромное количество процессорного времени было потрачено на ожидание операций ввода-вывода (передача данных по сети происходила). Поэтому я проверил состояние DMA с помощью этой команды:
sudo hdparm -d /dev/sdb2
/dev/sdb2:
HDIO_GET_DMA failed: Inappropriate ioctl for device
Означает ли это, что устройство не использует DMA? Я также попытался получить информацию об аппаратном обеспечении и получил следующее:
sudo hdparm -I /dev/sdb2
/dev/sdb2:
ATA device, with non-removable media
Model Number: WDC WD1600JB-00GVA0
Serial Number: WD-WCAL91665091
Firmware Revision: 08.02D08
Standards:
Supported: 6 5 4
Likely used: 8
Configuration:
Logical max current
cylinders 4092 65535
heads 16 1
sectors/track 63 63
--
CHS current addressable sectors: 4128705
LBA user addressable sectors: 66055248
LBA48 user addressable sectors: 312581808
Logical/Physical Sector size: 512 bytes
device size with M = 1024*1024: 152627 MBytes
device size with M = 1000*1000: 160041 MBytes (160 GB)
cache/buffer size = 8192 KBytes (type=DualPortCache)
Capabilities:
LBA, IORDY(can be disabled)
Standby timer values: spec'd by Standard, with device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
Recommended acoustic management value: 128, current value: 254
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
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
* DOWNLOAD_MICROCODE
SET_MAX security extension
Automatic Acoustic Management feature set
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* 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)
Security:
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
HW reset results:
CBLID- above Vih
Device num = 1 determined by the jumper
Checksum: correct
Насколько я понимаю, следует поддерживать DMA. Почему я получаю эту ошибку, и это необычно, что top показывает значения выше 90% для операций "iowait", когда выполняются две передачи по сети?
Я получаю то же сообщение, что и вы, на двух очень разных компьютерах 10.04 и 12.04 соответственно. Добавление делает -d
-d1
говорит, что оно включает его, но я подозреваю, что сообщения говорят нам, что это не очень эффективно.
Однако, я получаю хороший доступ к диску.
Однажды у меня были проблемы с медленным откликом диска, и, если я правильно помню, это было потому, что DMA не работал. Причиной был плохой ленточный кабель, которым манипулировали слишком много раз, поэтому для прямого доступа к памяти использовался сломанный провод управления. Замена ленточного кабеля значительно повысила производительность.
В моем случае я увидел предупреждающее сообщение во время загрузки, которое исчезло после замены кабеля. Я предлагаю вам посмотреть в / var / log / syslog любые подозрительные сообщения о вашем дисковом адаптере или приводе.