Назад | Перейти на главную страницу

Есть ли причина не использовать 512-байтовые кластеры для NTFS?

При создании нового раздела NTFS предлагается выбрать размер кластера. Размер по умолчанию - 4k, но можно выбрать и меньший размер. 512 байт - самый маленький.

Меньший размер приводит к сокращению ненужного пространства. Каждый файл занимает 1 или несколько кластеров в зависимости от размера файла. Если размер файла можно разделить на размер кластера, то по умолчанию пространство не теряется. В противном случае только некоторая часть последнего кластера будет хранить данные файла, а оставшееся пространство будет потрачено впустую. В среднем это примерно половина размера кластера на файл. Учитывая, что в типичном разделе хранятся десятки тысяч файлов, 265 против 2 КБ на файл, для меня это большая проблема.

Я всегда выбираю 512 байт, чтобы уменьшить количество потраченного впустую пространства, но я считаю, что использование меньших кластеров может иметь некоторые негативные последствия. В противном случае по умолчанию будет использоваться 512 байт. Что это за недостатки?

Меньший размер cluser означает, что файл будет распределен между большим количеством кластеров (очевидно). Это означает потенциально большую фрагментацию и, возможно, больше поисков для поиска кластеров. Это обычная оптимизация скорости и размера. Поскольку жесткие диски дешевые, я бы выбрал кластеры большего размера, но в любом случае вы, вероятно, не увидите такой большой разницы ...

NTFS основана на экстентах (например, xfs, ext4 и др. На стороне * nix), поэтому замедление, которое вы получаете от файловых систем, не основанных на экстентах (например, жир, ext3) сокращается.

Тем не менее, накладные расходы все еще есть, и это начинает сказываться на фрагментации. Windows это КАКОЙ УЖАС Что касается фрагментации, попробуйте запустить defraggler, чтобы увидеть, как даже последовательно записанные файлы (например, из установки программы) могут оказаться в 30+ фрагментах.

Я обычно рекомендую 4 КБ как хороший размер, хотя, если диск будет использоваться для больших медиафайлов, 64 КБ или больше могут помочь.

http://www.defraggler.com/

Одна из причин выбрать размер сектора в 512 байт - если вы планируете использовать Microsoft Windows Backup на сервере. Удивительно, если вы используете Windows 2008 (я не знаю, было ли это исправлено в Windows 2012 или более поздних версиях), но резервное копирование не удастся, если вы используете размер сектора по умолчанию 4 КБ на стандартном внешнем жестком диске USB! Я недавно купил новый диск Seagate, поговорив со службой технической поддержки Seagate, чтобы подтвердить, что это возможно, и я мог переформатировать размер сектора 4 КБ обратно до 512 байт, и моя резервная копия сработала. Странно, что ни сайт поддержки Seagate, ни Microsoft не указывают на это.

Предыдущие внешние диски не позволяли переформатировать диск с размером сектора 512 байт; минимум 4к.

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

Да, меньший размер кластера означает меньше свободного места и, следовательно, меньше потраченного впустую места. Однако меньшие размеры кластера также означают, что при каждой операции чтения с диска передается меньше данных, что может привести к снижению производительности чтения. Также вероятно, что при большем размере кластера будет меньше фрагментации, поскольку данные с большей вероятностью будут храниться либо в одном кластере, либо непрерывно.

Согласно Руководство по MySQL, при использовании mysql с механизмом innodb и сжатым форматом строк в Windows рекомендуется использовать размер кластера менее 4 КБ, чтобы вообще извлечь выгоду из сжатого формата строк:

Размер кластера NTFS по умолчанию составляет 4 КБ, для которого размер единицы сжатия составляет 64 КБ. Это означает, что сжатие страниц не имеет преимуществ для нестандартной конфигурации Windows NTFS, поскольку максимальный innodb_page_size также составляет 64 КБ. Чтобы сжатие страниц работало в Windows, файловая система должна быть создана с размером кластера менее 4K, а innodb_page_size должен быть как минимум в два раза больше размера единицы сжатия. Например, чтобы сжатие страниц работало в Windows, вы можете создать файловую систему с размером кластера 512 байт (с единицей сжатия 8 КБ) и инициализировать InnoDB со значением innodb_page_size 16 КБ или больше.