При наличии множества новых жестких дисков размер физического сектора составляет 4096. Можно ли заставить систему использовать размер логического сектора того же размера, а не размер логического сектора по умолчанию, равный 512?
Это ускорит массовое чтение и запись? Где это можно настроить?
hard-disk
performance
io
Матан
источник
источник
mkfs.*
должны автоматически использовать оптимальный размер сектора. Вы можете выполнить несколькоmkfs.*
тестов и проверить результат (либо в подробном выводе mkfs, либо в связанной с ним служебной программе fs).Ответы:
512 байт на самом деле не является размером сектора по умолчанию. Это зависит от вашего оборудования.
Вы можете отобразить, какие размеры физических / логических секторов сообщает ваш диск через
/sys
псевдофайловую систему, например:В чем разница между этими двумя значениями?
physical_block_size
Является минимальным размером блока привод имеет возможность писать в атомарной операции.logical_block_size
Самый маленький размер диск способен писать (см документации ядра Linux).Таким образом, если у вас есть диск 4k, то имеет смысл, что ваш стек хранения (файловая система и т. Д.) Использует что-то, равное или превышающее размер физического сектора.
Эти значения также отображаются в последних версиях
fdisk
, например:В текущих дистрибутивах Linux программы (которые должны заботиться об оптимальном размере сектора), например
mkfs.xfs
, выберут оптимальный размер сектора по умолчанию (например, 4096 байт).Но вы также можете явно указать его с помощью опции, например:
Или:
В любом случае, большинство
mkfs
вариантов также будет отображать размер используемого блока во время выполнения.Для существующей файловой системы размер блока можно определить с помощью такой команды:
Или:
Или:
При создании файловой системы в разделе еще одна вещь, которую нужно проверить, это то, действительно ли начальный адрес раздела выровнен по размеру физического блока. Например, посмотрите на
fdisk -l
выходные данные, преобразуйте начальные адреса в байты, разделите их на размер физического блока - напоминание должно быть нулевым, если разделы выровнены.источник
fdisk -l
, разделил его на 8, а затем 512. остаток не был 0, поэтому раздел кажется не выровненнымfdisk -l
отчетыUnits = sectors of 1 * 512 = 512 bytes
в одном из моих систем Linux - таким образом, для 512/4096 логического / физического диска с 2 - мя перегородками , начиная с 2048 и 1026048 я вычисляю2048*512%4096
и1026048*512%4096
- например , в оболочке Python. Поскольку оба выражения равны нулю, эти разделы выровнены на 4 КБ.Нет, это не возможно, и не имело бы значения, если бы это было. IO обычно выполняется в единицах, по крайней мере, 4096 байт, и обычно намного больше.
источник
Да, это возможно, однако это приведет к тому, что накопитель заполнится гораздо быстрее, чем должен. Для файлов размером менее 512 КБ каждый файл будет занимать полные 4096 КБ (4 МБ) и заполнит остальную часть сектора нулями из-за невозможности для большинства файловых систем (NTFS и т. П.) Разрешить файлам совместно использовать сектора. Наилучшим вариантом для файловой системы было бы разрешение переменных размеров секторов, однако это увеличивает размер MFT (таблицы основных файлов) и увеличивает риск повреждения данных, одновременно снижая возможность легкого восстановления данных. Другими словами, программное обеспечение для восстановления не будет полностью знать границы. Таким образом, хотя размер логического сектора 4096 Кбайт великолепен для больших файлов, для обычного ПК для повседневного использования это всего лишь набор из 0. Теперь, с этим сказал, есть возможность хранить данные в самом MFT, когда речь идет о данных, меньших, чем размер логического сектора. Это, однако, означает, что ваш MFT становится огромным, и данные будут записываться дважды (на вашем жестком диске две копии MFT). Вам также нужно будет указать максимальный размер MFT, который может вызвать проблемы, когда вы достигнете его максимума или использование накопителя превысит то, что было бы бесплатным для использования MFT. Все это основано на использовании файловой системы NTFS. С другой стороны, NTFS позволяет вам использовать собственное сжатие для файлов на уровне блоков для любого логического сектора размером 4 МБ или меньше. Это ограничение применяется из-за того, как работает сжатие NTFS. Блоки 4 МБ считываются и сжимаются независимо от размера логического сектора. Это, конечно,
Итак, это немного проясняет ситуацию?
источник
источник