Тут уж как повезет - это просто как игральные кости бросить - у меня много лет жил накопитель SSD под Gentoo и за три месяца накрывался накопитель с биркой "премиум, 10 лет гарантии" под Arch. Только вот использовать дорогую оперативную память вместо дисковой не более рационально, чем использовать медленную дисковую память вместо оперативной.
Как правильно пользоваться связкой HDD + SSD?
Модератор: Модераторы разделов
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
Re: Как правильно пользоваться связкой HDD + SSD?
А как вы это сделали?Hephaestus писал: ↑13.07.2018 18:01В итоге я вынес за пределы SSD то, что чаще всего производит запись на диск: логи и журналирование ФС.
Гуглил не нашел как, похоже криво запрос делал
Re: Как правильно пользоваться связкой HDD + SSD?
Ну, свои 100-120 мегабайт спокойно отдаёт практически любой современный SATA "блинный" HDD. Выше - уловки маркетологов и cache.
А совмещать SSD и HDD - вполне нормальная тема. Я сделал себе просто - система на SSD, всякие temp в памяти, тяжелые и малоиспользуемые файлы на HDD. И ссылка на них в SSD.
Кстати, относительно недавно была классная "подстава" от Intel SSD. Когда SSD в совершенно произвольное время решил поспать и отключался без предупреждения. Причём перезагрузка не помогала, приходилось отключать компьютер и снова включать. Intel с какой-то радости посчитал 2.5'' SSD - только для ноутбуков. В результате, примерно через 1.5 года эксплуатации - такая вот фигня.
Решилось загрузочным диском от Intel.
А совмещать SSD и HDD - вполне нормальная тема. Я сделал себе просто - система на SSD, всякие temp в памяти, тяжелые и малоиспользуемые файлы на HDD. И ссылка на них в SSD.
Кстати, относительно недавно была классная "подстава" от Intel SSD. Когда SSD в совершенно произвольное время решил поспать и отключался без предупреждения. Причём перезагрузка не помогала, приходилось отключать компьютер и снова включать. Intel с какой-то радости посчитал 2.5'' SSD - только для ноутбуков. В результате, примерно через 1.5 года эксплуатации - такая вот фигня.
Решилось загрузочным диском от Intel.
Re: Как правильно пользоваться связкой HDD + SSD?
Лень разбирать комп. У меня сейчас стоит. Вторым. Seagate 7200. Вроде SATA2. Скорость чтения 111.31 MB/sec Естественно, некешируемая скорость.
Проверил только сейчас. Тем же способом, что и раньше.
Это я так. Доказывать никому и ничего не собираюсь.
Проверил только сейчас. Тем же способом, что и раньше.
Это я так. Доказывать никому и ничего не собираюсь.
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как правильно пользоваться связкой HDD + SSD?
Извините, SATA3 нет.
Shell
% sudo smartctl -i /dev/sda
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Black
Device Model: WDC WD1002FAEX-00Z3A0
Serial Number: WD-WCATR5838821
LU WWN Device Id: 5 0014ee 2058917c3
Firmware Version: 05.01D05
User Capacity: 1 000 204 886 016 bytes [1,00 TB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 2.6, 6.0 Gb/s
Local Time is: Sat Jul 14 22:00:11 2018 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
% sudo dd if=/dev/sda of=/dev/null bs=64M count=64
64+0 записей получено
64+0 записей отправлено
4294967296 байт (4,3 GB, 4,0 GiB) скопирован, 34,2475 s, 125 MB/s
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
Bizdelnick
У нас с Вами винчестеры одинаковые. Даже версия прошивки совпадает
У нас с Вами винчестеры одинаковые. Даже версия прошивки совпадает
Shell
$sudo smartctl -i /dev/sdc
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.4.132] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Black
Device Model: WDC WD1002FAEX-00Z3A0
Serial Number: WD-WCATR4875328
LU WWN Device Id: 5 0014ee 25aa2eb68
Firmware Version: 05.01D05
User Capacity: 1 000 204 886 016 bytes [1,00 TB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 2.6, 6.0 Gb/s
Local Time is: Sat Jul 14 23:45:13 2018 +04
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
$ dd if=/dev/sdc of=/dev/null bs=64M count=64
64+0 записей получено
64+0 записей отправлено
4294967296 байт (4,3 GB, 4,0 GiB) скопирован, 33,1931 s, 129 MB/s
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как правильно пользоваться связкой HDD + SSD?
Хорошо хоть серийные номера разные.Hephaestus писал: ↑14.07.2018 22:50У нас с Вами винчестеры одинаковые. Даже версия прошивки совпадает
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
Я уже точно не припомню, где именно брал инфу.
Под журнал выделяется отдельный раздел. Размер этого раздела в пределах, указанных в man mk2fs (см. ниже). Данных на этом разделе быть не должно.
Выглядит это примерно так.
Вариант 1.
1. Создаем файловую систему на SSD
mke2fs -t ext4 /dev/sda1
2. Создаем журнал на другом винчестере
mke2fs -O journal_dev /dev/sdb6
3. Отключаем на SSD внутренний журнал
tune2fs -O ^has_journal /dev/sda1
4. И подключаем внешний
tune2fs -o journal_data -j -J device=/dev/sdb6 /dev/sda1
Вариант 2.
Можно сократить число команд, указав нужные опции сразу при создании ФС.
1. Создаем файловую систему на обыном винчестере, указывая, что это будет журнал.
mke2fs -O journal_dev /dev/sdb6
2. Cоздаем файловую систему на SSD, указывая расположение внешнего журнала
mke2fs -t ext4 -J device=/dev/sdb6 /dev/sda1
Взято здесь (с поправкой на имена устройств) и далее по ссылкам здесь (раздел Journaling Device Details)
Если файловая система на SSD уже существует, то действуем в соответствии в вариантом 1, пропуская шаг 1.
Системы должны быть отмонтированы. А поскольку речь идет о корневой ФС, следовательно потребуется загрузка в флешки/установочного носителя и т.п.
Размер журнала, согласно man mk2fs
Это цитата из man-страницы в моей системе. Здесь у меня есть сомнения по поводу максимального размера. В приведенной цитате максимальный размер равен 10240000 блоков, что при размере блока в 4Кб составит 40Гб. В других источниках (в Сети) эта же man-страница содержит цифру 102400 блоков, что при размере блока в 4Кб составит 400Мб. Именно этот размер я использовал у себя.man mk2fs писал(а):The size of the journal must be at least 1024 filesystem blocks (i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) and may be no more than 10,240,000 filesystem blocks or half the total file system size (whichever is smaller)
В результате получим примерно следующее:
Shell
#tune2fs -l /dev/sda1
tune2fs 1.43.1 (08-Jun-2016)
Filesystem volume name: <none>
Last mounted on: /
Filesystem UUID: b0f90a79-9154-4053-8173-fd105beace2f
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: journal_data user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 9175040
Block count: 36700160
Reserved block count: 1835008
Free blocks: 16803958
Free inodes: 8018593
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1015
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
RAID stride: 32742
Flex block group size: 16
Filesystem created: Sun Dec 28 00:20:28 2014
Last mount time: Sat Jul 14 10:47:43 2018
Last write time: Tue Jul 3 08:34:34 2018
Mount count: 29
Maximum mount count: 30
Last checked: Tue Jul 3 08:34:34 2018
Check interval: 0 (<none>)
Lifetime writes: 2882 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal UUID: 85f557f6-d114-4262-b18b-0ff5e5d7ad1d
Journal device: 0x0816
Default directory hash: half_md4
Directory Hash Seed: ceeb18df-5386-41d5-8279-a25cb63ba1e8
Journal backup: inode blocks
Проверяя по UUID, находим, что
Shell
#ls -l /dev/disk/by-uuid/b0f90a79-9154-4053-8173-fd105beace2f
lrwxrwxrwx 1 root root 10 июл 15 00:25 /dev/disk/by-uuid/b0f90a79-9154-4053-8173-fd105beace2f -> ../../sda1
#ls -l /dev/disk/by-uuid/85f557f6-d114-4262-b18b-0ff5e5d7ad1d
lrwxrwxrwx 1 root root 10 июл 15 00:31 /dev/disk/by-uuid/85f557f6-d114-4262-b18b-0ff5e5d7ad1d -> ../../sdb6
Последний раз редактировалось Hephaestus 15.07.2018 10:07, всего редактировалось 1 раз.
Спасибо сказали:
Re: Как правильно пользоваться связкой HDD + SSD?
я ж дилетант, мне надо было напомнить команду.Видимо не поняли моего вопроса в первый раз.
Код: Выделить всё
sudo dd if=/dev/sda of=/dev/null bs=64M count=64
Пароль:
64+0 записей получено
64+0 записей отправлено
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 26.1837 s, 164 MB/s
---
sudo smartctl -i /dev/sdb
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.14.52-calculate] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: SAMSUNG SpinPoint T166
Device Model: SAMSUNG HD160HJ
Serial Number: S0D4JDSP805215
LU WWN Device Id: 5 0000f0 0db805215
Firmware Version: BF100-12
User Capacity: 160,041,885,696 bytes [160 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS T13/1699-D revision 3b
SATA Version is: SATA 2.5, 3.0 Gb/s
Local Time is: Sun Jul 15 06:22:00 2018 +08
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
---
Хочу напомнить, что если на винте hdd будут любые операции чтения - записи -- то скорость солидно упадёт. Особенно по сравнению с ssd. Но этого всё равно хватит, чтобы кино смотреть.
Re: Как правильно пользоваться связкой HDD + SSD?
Я не заморачивался, как правильно или не правильно. Просто купил ССд, на него ОС. Файлы на ЖД. Всё работает.
ССД покупал по большому счёту из за того что в нём нет механики, со всеми вытекающими.
Если в итоге останется один Линукс - то уж точно заморачиваться не буду. ОС на ССД. Остальное на жд - так же.
Я экспериминтировал как то да же. Клонил с ЖД на ССД разделами Линукс. Котики и всё прочее на - жд, автомаунтом. EXT4 везде. Ничем не заморачивался. Было норм.
По ощущениям мой Линь и шустрей так загружался и работал вроде чуть по шустрей. Но я не долго пользовал, чисто эксперимент, на проверить, как оно, что б потом если что - реализовать. А вот под Виндой вначале - шустро, а со временем отклик становится практически как обычный жд.
ССД покупал по большому счёту из за того что в нём нет механики, со всеми вытекающими.
Если в итоге останется один Линукс - то уж точно заморачиваться не буду. ОС на ССД. Остальное на жд - так же.
Я экспериминтировал как то да же. Клонил с ЖД на ССД разделами Линукс. Котики и всё прочее на - жд, автомаунтом. EXT4 везде. Ничем не заморачивался. Было норм.
По ощущениям мой Линь и шустрей так загружался и работал вроде чуть по шустрей. Но я не долго пользовал, чисто эксперимент, на проверить, как оно, что б потом если что - реализовать. А вот под Виндой вначале - шустро, а со временем отклик становится практически как обычный жд.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
А чего же dd без правильного iflag (или, хотя бы, `printf 3 > /proc/sys/vm/drop_caches`)? Или вы пропускную способность RAM тестируете? =)
Спасибо сказали:
Re: Как правильно пользоваться связкой HDD + SSD?
serzh-z а вы не подкажете как правильно тестировать скорость винчестеров на запись и чтение?
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Как правильно пользоваться связкой HDD + SSD?
А данные блочного устройства кешируются? Зачем бы такой перерасход оперативки, когда есть кеш файловой системы?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
На блочном уровне есть свой (буферный) кеш. Который, впрочем, в современном ядре находится в том же страничном кеше.
Хотя бы зачем, чтобы уровень VFS не опускался до блочного уровня и наоборот.Bizdelnick писал: ↑16.07.2018 09:03Зачем бы такой перерасход оперативки, когда есть кеш файловой системы?
dd iflag=direct ..., либо с помощью hdparm --direct ....
Re: Как правильно пользоваться связкой HDD + SSD?
Вопреки всякой логике с этой опцией у меня даже быстрее получилось на 4 MBdd iflag=direct ..., либо с помощью hdparm --direct ....
Код: Выделить всё
sudo dd iflag=direct if=/dev/sda of=/dev/null bs=64M count=64
Пароль:
64+0 записей получено
64+0 записей отправлено
4294967296 байт (4.3 GB, 4.0 GiB) скопирован, 25.4234 s, 169 MB/s
Re: Как правильно пользоваться связкой HDD + SSD?
Исключив влияние кеша на "тест" я ожидаю значительного проседания скорости. Но в любом случае меньших результатов.Почему вопреки?
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
Кеш работает вот так:
А вот так не работает - при каждом запуске одна и та же скорость:
Shell
[u@theta ~]$ sudo dd if=/dev/sdb of=/dev/null count=1000
[000+0 records in
1000+0 records out
512000 bytes (512 kB, 500 KiB) copied, 0.00786264 s, 65.1 MB/s
[u@theta ~]$ sudo dd if=/dev/sdb of=/dev/null count=1000
1000+0 records in
1000+0 records out
512000 bytes (512 kB, 500 KiB) copied, 0.003735 s, 137 MB/s
[u@theta ~]$ sudo dd if=/dev/sdb of=/dev/null count=1000
1000+0 records in
1000+0 records out
512000 bytes (512 kB, 500 KiB) copied, 0.00356747 s, 144 MB/s
Shell
[u@theta ~]$ sudo dd if=/dev/sdb of=/dev/null count=1000 iflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB, 500 KiB) copied, 0.0692124 s, 7.4 MB/s
[u@theta ~]$ sudo dd if=/dev/sdb of=/dev/null count=1000 iflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB, 500 KiB) copied, 0.068439 s, 7.5 MB/s
[u@theta ~]$ sudo dd if=/dev/sdb of=/dev/null count=1000 iflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB, 500 KiB) copied, 0.0742086 s, 6.9 MB/s
Re: Как правильно пользоваться связкой HDD + SSD?
serzh-z я неоднакратно сталкивался с тем, что скорость чтения с hdd всё таки ближе к 100 мега байтам в секунду и выше, а вовсе не 7 мега байт.
Может тут есть какая то ошибка?
Например, который постил на форуме
Решено: обработка большого текстового файла
Может тут есть какая то ошибка?
Например, который постил на форуме
Решено: обработка большого текстового файла
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
В таком случае нужно определиться, что такое "скорость чтения с HDD".
Это скорость доставки данных от ячейки памяти SSD или пластины HDD до контроллера накопителя?
Или скорость доставки данных до ядра?
А может этот процесс включает в себя переключение контекста задачи (системный вызов), чтение, возврат, и обработка данных в приложении? Или как-то ещё?
dd - это средство копирования данных. У него нет задачи измерить скорость. То что он показывает, сколько времени потратил на обработку порции данных, - это просто справочная информация, имеющая очень отдаленное отношение к реальной скорости работы накопителя. Использование O_DIRECT всего лишь устраняет один из дополнительных факторов, влияющих на эту статистику и повышающий энтропию при расчете результата.
Сравнивать статистику dd имеет смысл лишь в контексте относительных значений. Вот в моем случае - один попугай равен 7.5 MB/s. Для sdb скорость чтения - 1 попугай. Для sda будет, кажется, что-то в районе 1,5 попугаев.
Re: Как правильно пользоваться связкой HDD + SSD?
serzh-z я не понимаю.
Вот читаю я grep'ом 50 гб, делаю выборку. В кеш оно всё равно не влазит. И тем не менее по скорости было почти 100 мега байт.
Что показывает dd этим параметром?
Вот читаю я grep'ом 50 гб, делаю выборку. В кеш оно всё равно не влазит. И тем не менее по скорости было почти 100 мега байт.
Что показывает dd этим параметром?
Re: Как правильно пользоваться связкой HDD + SSD?
зы
я не разбираюсь в кешах в линукс ядре и прочих ассемлерах. Но я неоднократно сталкивался и знаю, что чистое чтение с hdd -- это 100-150 мега байт в секунду. Если скорость чтения значительно меньше, значит я растяпа читаю на ЯП не верно, есть более быстрые способы.
я не разбираюсь в кешах в линукс ядре и прочих ассемлерах. Но я неоднократно сталкивался и знаю, что чистое чтение с hdd -- это 100-150 мега байт в секунду. Если скорость чтения значительно меньше, значит я растяпа читаю на ЯП не верно, есть более быстрые способы.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
Не понял, что и в какой кеш не влазит и причем тут grep. И вообще не понял, чем и какую скорость вы замеряли. Прежде, чем измерять, нужно определиться с тем, что и как измерять.
Открывает устройство в режиме, в котором ядро не использует буферный кеш. По сути, используется DMA между контроллером накопителя и приложением. Если не вдаваться в детали и использовать dd как средство бенчмаркинга, то таким способом можно определить какой из двух накопителей быстрее.
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Как правильно пользоваться связкой HDD + SSD?
Да не измерите вы "чистое чтение с hdd", пока не определите условия измерения и не подготовите более или менее стабильную среду. В случае с включенным кешированием - вообще разброс результатов может быть, как в моем случае, в два раза. Тут даже сложно сказать - какой из двух установленных в одной системе накопителей быстрее - sda или sdb. Тут как повезет. Не говоря уж о сравнении накопителей, установленных в разных системах.
Re: Как правильно пользоваться связкой HDD + SSD?
serzh-z я уже ответил, не понимаю, что вы пишите. Если мне в 100 гб текстовом файле понадобится делать выборки из строк, то я буду рассчитывать на скорость чуть меньше 100 мега байт в секунду на hdd. Но точно не в 7.5 мега байт. Напомню, (100000 / 100) / 60 = 16.77 минут.
Будет не верно считать
(100000 / 7.5) / 60 = 222.22 минуты.
А если вспомнить, что мой винт выдал 3,3 мега байта по вашему тесту с параметром, так я ваще не понимаю как я на таком винте живу.
Не думаю, что произошло что то страшное, есть какой то трюк в dd который мне не понятен. Пофиг, кроме меня же все всё поняли.
Будет не верно считать
(100000 / 7.5) / 60 = 222.22 минуты.
А если вспомнить, что мой винт выдал 3,3 мега байта по вашему тесту с параметром, так я ваще не понимаю как я на таком винте живу.
Не думаю, что произошло что то страшное, есть какой то трюк в dd который мне не понятен. Пофиг, кроме меня же все всё поняли.