Автор Тема: AHCI и IDE  (Прочитано 31827 раз)

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
AHCI и IDE
« : 09.05.2019 18:00:42 »
1 Сильно ли отличается производительность HDD AHCI от IDE?
2 Есть ли различия для SSD ?
3 Если Альт установлен с IDE, то с AHCI он не стартанет?
4 Если Альт установлен на USB флешку с IDE, влиляют ли переключения режимов AHCI и IDE?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: AHCI и IDE
« Ответ #1 : 09.05.2019 23:43:26 »
1 Сильно ли отличается производительность HDD AHCI от IDE?
Сильно. Но подозреваю, что вопрос неправильный вообще, точнее не о том. А вот если стравнивать старый драйвер SATA и AHCI, то с последним может работать NCQ, что полезно.
2 Есть ли различия для SSD ?
NCQ для SSD смысла не имеет, но, может, какие-то отличия ещё есть.
3 Если Альт установлен с IDE, то с AHCI он не стартанет?
https://www.altlinux.org/FAQ#Как_переставить_hdd/ssd_с_системой_в_другой_компьютер?
4 Если Альт установлен на USB флешку с IDE, влиляют ли переключения режимов AHCI и IDE?
В каком месте связь между USB и IDE? В остальном ответ тот же, что и на предыдущий вопрос.

Оффлайн Yasno

  • Завсегдатай
  • *
  • Сообщений: 203
Re: AHCI и IDE
« Ответ #2 : 10.05.2019 00:02:33 »
старый драйвер SATA и AHCI, то с последним может работать NCQ, что полезно
тоесть тут уже сильной разницы нет?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: AHCI и IDE
« Ответ #3 : 10.05.2019 00:10:26 »
старый драйвер SATA и AHCI, то с последним может работать NCQ, что полезно
тоесть тут уже сильной разницы нет?
Как раз наоборот. Если HDD поддерживает NCQ, то с AHCI выигрыш может быть в разы в зависимости от того, как данные на HDD лежат.

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: AHCI и IDE
« Ответ #4 : 10.05.2019 00:41:45 »
NCQ для SSD смысла не имеет, но, может, какие-то отличия ещё есть.
Это почему же?
To moan or to solve -- that is the question!

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: AHCI и IDE
« Ответ #5 : 10.05.2019 11:13:11 »
NCQ для SSD смысла не имеет, но, может, какие-то отличия ещё есть.
Это почему же?
Ну так штука придумана для чтения секторов в порядке, отличном от заданного, чтобы отдать запрос за минимальное число оборотов шпинделя. А у SSD какой шпиндель? Там и так великолепно отдаётся последовательно из произвольного места.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 223
Re: AHCI и IDE
« Ответ #6 : 10.05.2019 11:33:19 »
NCQ для SSD смысла не имеет, но, может, какие-то отличия ещё есть.
Это почему же?
Ну так штука придумана для чтения секторов в порядке, отличном от заданного, чтобы отдать запрос за минимальное число оборотов шпинделя. А у SSD какой шпиндель? Там и так великолепно отдаётся последовательно из произвольного места.
ещё на AHCI бывает завязана поддержка TRIM, что для SSD мегаважно.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: AHCI и IDE
« Ответ #7 : 10.05.2019 11:40:55 »
ещё на AHCI бывает завязана поддержка TRIM, что для SSD мегаважно.
Это вот может быть. Но мне кажется ata_piix тоже про trim знает. Точнее даже не так: это просто одна из команд для SSD, а передаётся через любой интерфейс, и драйвер сам по себе тут не при чём. Проверить вот только негде.

Оффлайн Kalt

  • Завсегдатай
  • *
  • Сообщений: 996
Re: AHCI и IDE
« Ответ #8 : 10.05.2019 18:25:33 »
Проверить вот только негде.
...Проверить что? SSD смонтирован как здесь: https://forum.altlinux.org/index.php?topic=41526.msg327617#msg327617. IDE, AHCI пробовал, не понравилось, уж больно стучит HDD словно град по крыше. Без него спокойнее...
Intel Xeon X3440 2,53GHz, MSI H55- G43, DDR3- 4x2GB, GF GT710

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: AHCI и IDE
« Ответ #9 : 10.05.2019 18:35:33 »
Проверить вот только негде.
...Проверить что?
Что trim работает с piix.

Оффлайн Kalt

  • Завсегдатай
  • *
  • Сообщений: 996
Re: AHCI и IDE
« Ответ #10 : 10.05.2019 22:13:54 »
Но мне кажется ata_piix тоже про trim знает.
Конечно знает и работает.
Спойлер
[root@host-210 ~]# fstrim / -v
/: 9,1 GiB (9783779328 bytes) trimmed
[root@host-210 ~]# systemctl status fstrim.service   
● fstrim.service - Discard unused blocks
   Loaded: loaded (/lib/systemd/system/fstrim.service; static; vendor preset: disabled)
   Active: inactive (dead)
[root@host-210 ~]# grep -i discard /etc/fstab     
UUID=2f80deb0-c349-4ae0-b92a-f44615195158       /       ext4    relatime,nodiratime,discard,commit=20,delalloc,nobarrier        1       1
[root@host-210 ~]#  mount | grep -i discard
/dev/sdc6 on / type ext4 (rw,nodiratime,relatime,discard,nobarrier,commit=20)
[root@host-210 ~]#  parted -l
Модель: ATA 120GB SSD (scsi)
Диск /dev/sdc: 120GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Флаги диска:
Номер  Начало  Конец   Размер  Тип       Файловая система  Флаги
 1     1049kB  50,7GB  50,7GB  primary   ntfs
 2     50,7GB  120GB   69,4GB  extended
 5     50,7GB  72,2GB  21,5GB  logical   ext4              загрузочный
 6     72,2GB  95,0GB  22,8GB  logical   ext4
 7     95,0GB  120GB   25,1GB  logical   ext4 
Уже и не помню, что то ещё для подтверждения работоспособности было...
Спойлер
[root@host-210 ~]# smartctl -a /dev/sde | grep Erase_Fail_Count
[root@host-210 ~]# lsblk -D
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sdc           0      512B       2G         0
├─sdc1        0      512B       2G         0
├─sdc2        0      512B       2G         0
├─sdc5        0      512B       2G         0
├─sdc6        0      512B       2G         0
└─sdc7        0      512B       2G         0
 [root@host-210 ~]# grep -i discard /etc/fstab
UUID=2f80deb0-c349-4ae0-b92a-f44615195158       /       ext4    relatime,nodiratime,discard,commit=20,delalloc,nobarrier        1       1
[root@host-210 ~]# mount | grep -i discard
/dev/sdc6 on / type ext4 (rw,nodiratime,relatime,discard,nobarrier,commit=20)
Спойлер
cat /etc/fstab
proc            /proc                   proc    nosuid,noexec,gid=proc          0 0
devpts          /dev/pts                devpts  nosuid,noexec,gid=tty,mode=620  0 0
#tmpfs          /tmp                    tmpfs   nosuid                          0 0
UUID=15ca1af6-8391-4fb0-8c0e-df020f1c1a56       /       ext4    relatime,nodiratime,discard,commit=20,delalloc,nobarrier        1       1
UUID=89e7185b-dec5-48a8-a7e9-2208da7096b3       /home   ext4    nosuid,relatime,nodiratime,nodev,discard,commit=20,delalloc,nobarrier   1       2
/home/tmp       /tmp    auto    bind,rw,nosuid,nodev    0       0
[root@host-210 ~]# fdisk -l -u   
Диск /dev/ram0: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram1: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram2: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram3: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram4: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram5: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram6: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram7: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram8: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram9: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram10: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram11: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram12: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram13: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram14: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/ram15: 16 MiB, 16777216 байт, 32768 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт

Тип метки диска: dos
Идентификатор диска: 0xac57c736

Устр-во    Загрузочный    начало     Конец   Секторы Размер Идентификатор Тип
/dev/sdc1                   2048  98934783  98932736  47,2G            87 NTFS набор томов
/dev/sdc2               98934784 234440703 135505920  64,6G             5 Расширенный
/dev/sdc5  *            98936832 140943359  42006528    20G            83 Linux
/dev/sdc6              140945408 185450495  44505088  21,2G            83 Linux
/dev/sdc7              185452544 234440703  48988160  23,4G            83 Linux
[root@host-210 ~]# hdparm -I /dev/sdc | grep "TRIM supported"
           *    Data Set Management TRIM supported (limit 8 blocks)

Спойлер
[root@host-210 ~]# systemctl status fstrim.service
● fstrim.service - Discard unused blocks
   Loaded: loaded (/lib/systemd/system/fstrim.service; static; vendor preset: disabled)
   Active: inactive (dead) since Fri 2019-05-10 23:54:43 MSK; 35min ago
  Process: 533 ExecStart=/sbin/fstrim -av (code=exited, status=0/SUCCESS)
 Main PID: 533 (code=exited, status=0/SUCCESS)

май 10 23:54:36 host-210.localdomain systemd[1]: Starting Discard unused blocks...
май 10 23:54:43 host-210.localdomain fstrim[533]: /home: 22 GiB (23602425856 bytes) trimmed
май 10 23:54:43 host-210.localdomain fstrim[533]: /: 10,2 GiB (10992324608 bytes) trimmed
май 10 23:54:43 host-210.localdomain systemd[1]: Started Discard unused blocks.
...Запустил тест на W- 10 РЕ, взято из сети. Видно как "пострадал" наиболее активный корневой раздел. SSD работает где то с середины января...
« Последнее редактирование: 11.05.2019 21:06:24 от Kalt »
Intel Xeon X3440 2,53GHz, MSI H55- G43, DDR3- 4x2GB, GF GT710

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: AHCI и IDE
« Ответ #11 : 13.05.2019 01:45:11 »
NCQ для SSD смысла не имеет, но, может, какие-то отличия ещё есть.
Это почему же?
Ну так штука придумана для чтения секторов в порядке, отличном от заданного, чтобы отдать запрос за минимальное число оборотов шпинделя. А у SSD какой шпиндель? Там и так великолепно отдаётся последовательно из произвольного места.
Эта штука придумана для оптимизации выполнения параллельно поступающих запросов, что особо заметно на серверах и на задачах, где есть хорошее распараллеливание обращений к диску. NCQ для SSD имеет смысл очень даже не только из-за TRIM. Без него (и глубины очереди хотя бы в 32 команды) все современные SSD превратятся в весьма заурядный накопитель. Проверяется по IOPs'ам довольно легко: если не обеспечить хорошую параллельную нагрузку, максимума по скорости из них не выжать. Причём разница в скорости будет как раз в районе 30.
To moan or to solve -- that is the question!

Оффлайн Kalt

  • Завсегдатай
  • *
  • Сообщений: 996
Re: AHCI и IDE
« Ответ #12 : 13.05.2019 10:43:22 »
Проверяется по IOPs'ам довольно легко: если не обеспечить хорошую параллельную нагрузку, максимума по скорости из них не выжать. Причём разница в скорости будет как раз в районе 30.
...Разница в скорости конечно есть, однако и потери за столь короткий промежуток времени значительные. Похоже что этот раздел может и не дожить до конца этого года...
Intel Xeon X3440 2,53GHz, MSI H55- G43, DDR3- 4x2GB, GF GT710

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: AHCI и IDE
« Ответ #13 : 13.05.2019 13:50:39 »
NCQ для SSD имеет смысл очень даже не только из-за TRIM.
NCQ и TRIM вообще из разных областей.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: AHCI и IDE
« Ответ #14 : 14.05.2019 23:05:53 »
NCQ для SSD смысла не имеет, но, может, какие-то отличия ещё есть.
Это почему же?
Ну так штука придумана для чтения секторов в порядке, отличном от заданного, чтобы отдать запрос за минимальное число оборотов шпинделя. А у SSD какой шпиндель? Там и так великолепно отдаётся последовательно из произвольного места.
Эта штука придумана для оптимизации выполнения параллельно поступающих запросов,

:-) Эта штука придумана для минимизации перемещения БМГ и снижения затрат времени на их перемещение.
Но в ext4fs низкая степень фрагментации:
# e4defrag -c /dev/sda8
e4defrag 1.44.6 (5-Mar-2019)
<Fragmented files>                             now/best       size/ext
1. /mnt/sda8/var/log/auth/all                   14/1              4 KB
2. /mnt/sda8/var/log/cron/info                   9/1              4 KB
3. /mnt/sda8/var/log/kdm.log.1                   7/1              4 KB
4. /mnt/sda8/var/log/auth/secure                13/1              4 KB
5. /mnt/sda8/root/.kde/share/apps/amarok/collection.db
                                                17/1              4 KB

 Total/best extents 268930/266098
 Average size per extent 212 KB
 Fragmentation score 0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This device (/dev/sda8) does not need defragmentation.
 Done.
# e4defrag -c /dev/sda9
e4defrag 1.44.6 (5-Mar-2019)
<Fragmented files>                             now/best       size/ext
1. /mnt/sda9/user/.Skype/DataRv/offline-storage.data
                                                96/1              4 KB
2. /mnt/sda9/user/.config/chromium/Default/Session Storage/000028.log
                                                15/1              4 KB
3. /mnt/sda9/user/.local/share/0ad/replays/0.0.20/2018-04-19_0001/commands.txt
                                                11/1              4 KB
4. /mnt/sda9/user/.config/opera-developer/Extension State/000003.log
                                                17/1              4 KB
5. /mnt/sda9/user/.config/chromium/Default/Cookies
                                                 5/1              4 KB

 Total/best extents 121352/102150
 Average size per extent 1244 KB
 Fragmentation score 0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This device (/dev/sda9) does not need defragmentation.
 Done.

При чтении большого количества мелких файлов, перемещение БМГ может быть оптимизировано.
ИМХО: Основное применение NCQ, это серверное применение на высоконагруженых. Здесь прирост производительности дисковой на шпиндельных может быть процентов до 30-ти.
« Последнее редактирование: 14.05.2019 23:26:12 от Speccyfighter »