Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Накопители (SSD, HDD, USB Flash) (http://forum.oszone.net/forumdisplay.php?f=53)
-   -   Размер кластера. (http://forum.oszone.net/showthread.php?t=244060)

Balancer 06-10-2012 13:27 2000401

Размер кластера.
 
Здравствуйте, если я выставлю размер кластера - 1мб, то сколько будет весить файл размером 1ГБ?

rover_61eg 06-10-2012 18:32 2000507

1024 мбайта, не?

AMDBulldozer 06-10-2012 19:05 2000515

Balancer, какой бы размер кластера у Вас ни был, объем данных, занимаемых файлом любого размера будет равен размеру файла с округлением до размера кластера в бОльшую сторону. То есть, если кластер равен 4096 байт, то любой файл размером 1-4096 байт займет 1 кластер (4096 байт). А файл размером 4097 байт займет два кластера - 8192 байта.
Правда, необходимо учитывать, что кроме данных файловая система содержит также метаданные - данные о расположении, названии, времени создания/доступа/модификации, атрибутах и т.д. файла (конкретный список зависит от типа файловой системы).
Понятно, что при большем размере кластера, файлы одного и того же размера занимают меньшее количество кластеров, поэтому накладные расходы на хранение метаданных обычно уменьшаются.

Balancer 07-10-2012 02:42 2000727

Спасибо, понятно.

А если у меня кластер 1мб, то 500 файлов по 1кб будут весить 500 мб я правильно понял?

AMDBulldozer 07-10-2012 04:29 2000738

Цитата:

Цитата Balancer
если у меня кластер 1мб, то 500 файлов по 1кб будут весить 500 мб я правильно понял? »

Честно признаться, именно этот момент я намеренно опустил в своём предыдущем сообщении. На самом деле, некоторые файловые системы (в том числе, насколько мне известно, NTFS) поддерживают "упаковку хвостов"). То есть, если имеется большое количество мелких файлов, эти системы могут паковать их по несколько штук в один кластер. Либо, упаковать туда "хвост" файла - ту его часть, которая должна была бы не полностью занять последний кластер.
Поскольку поддержка такой возможности в некоторых ФС не реализована вообще (FAT), а в других реализована совершенно по-разному (Reiserfs, NTFS), то, не зная типа файловой системы, невозможно предсказать какой объем дискового пространства займут файлы в Вашем случае.

P.S. Вообще, если персонально Вы не занимаетесь разработкой драйверов файловых систем, разумнее всего не рассчитывать на то, что ФС за Вас упакует несколько файлов в один кластер. Пользоваться такими большими кластерами особого смысла нет (скорость ввода вывода они Вам не только существенно не увеличат, но, как мы увидим далее, могут даже уменьшить). Кстати, у всех известных мне ФС предельный размер кластера строго ограничен. ФС ext2/3/4 имеют фиксированную величину блока 1, 2 или 4кБ (термин "блок" для файловых систем Unix имеет то же значение, что термин "кластер" для MS-DOS/Windows). Максмальный размер блока для Reiserfs - 8 кБ, UFS - 32кБ, XFS и NTFS - 64 кБ, JFS и ZFS - 128 кБ. Мегабайтные блоки не поддерживает ни одна из известных мне ФС (может быть какая-то и позволяет их создавать, но мне она неизвестна). Не поддерживает именно потому, что, по мнению разработчиков, они не нужны.
Но, если, по каким-то причинам, уже возникла ситуация, когда Вам необходимо хранить много маленьких файлов в ФС с огромными кластерами, сами организуйте их в архивы размером в несколько кластеров (можно без сжатия).
Вы скажете, что это повлияет на скорость выполнения файловых операций? Так "упаковка хвостов" на них влияет точно так же.

Balancer 07-10-2012 05:44 2000744

Большое спасибо за помощь, но у меня ещё один вопрос: Жёсткий диск в 700Гб я собираюсь разбить на 2 раздела - 1ый для ОС и программ (100 ГБ), 2ой для всего остального (сериалы, игры, и т.д.). Какой оптимальный размер кластера стоит установить для 1ого раздела и какой посоветуете для 2ого?

Ment69 07-10-2012 06:27 2000750

Balancer, Если я правильно понял AMDBulldozer, в вашем случае забивать себе голову размерами кластера не стоит, ничего от их изменения вы не получите!

fd4tvk 07-10-2012 15:13 2000862

Цитата:

Цитата Balancer
Какой оптимальный размер кластера стоит установить »

4 Kb

yurfed 07-10-2012 16:14 2000891

Цитата:

Цитата Ment69
ничего от их изменения вы не получите! »

Немного не так.
Допустим имеем базу из файликов около 4 КБ, тогда оптимальным будет ставить размер сектора именно 4 КБ, если база имеет размер в среднем 512Кб, то естественно и размер кластера, должен соответствовать размерам файлов.
В этих примерах скорость и распределение диска будут самыми оптимальными.
Однако в действительности, всё далеко не так, и в настоящей жизни, мы имеем самый разнообразный софт, с самым разным размером файлов. Поэтому забивать себе голову размером сектора не стОит, если не имеются из ряда вон конкретные задачи.

Цитата:

Цитата AMDBulldozer
"упаковка хвостов" »

Какая упаковка, какие хвосты? Если в FC записан какой то байт, значит сектор занят и ни какие действия с ним дальше не производятся.
Может я не правильно понял и имелось ввиду сжатие томов?

ЗЫ Всем остальным - не морочить себе голову и форматировать как предлагает система.

minos66 07-10-2012 17:29 2000919

Цитата:

Цитата AMDBulldozer
Честно признаться, именно этот момент я намеренно опустил в своём предыдущем сообщении. На самом деле, некоторые файловые системы (в том числе, насколько мне известно, NTFS) поддерживают "упаковку хвостов"). »

А вы не скромничайте. Дайте ссылочки где про это почитать. Но насколько мне известно NTFS такими извращениями не занимается... честно говоря, лично я уверен, что это
Цитата:

Цитата AMDBulldozer
То есть, если имеется большое количество мелких файлов, эти системы могут паковать их по несколько штук в один кластер. Либо, упаковать туда "хвост" файла »

или неправильно истолковано, или какая то побасенка :sorry:
Цитата:

Цитата AMDBulldozer
если имеется большое количество мелких файлов, »

Если размер файла не превышает размер записи в $MFT (~1 Кб), то он в MFT и хранится. Почитайте про резидентные файлы NTFS.
Цитата:

Цитата Balancer
Какой оптимальный размер кластера »

Присоединяюсь к yurfed, fd4tvk, Ment69 - По выбору системы (в NTFS это 4Kб)....

WSonic 07-10-2012 18:08 2000938

Цитата:

Цитата AMDBulldozer
На самом деле, некоторые файловые системы (в том числе, насколько мне известно, NTFS) поддерживают "упаковку хвостов") »

Насколько мне известно ntfs такого делать не умеет!

Цитата:

В некоторых файловых системах Linux (ReiserFS, Reiser4, Btrfs), BSD (FreeBSD UFS2) последний блок файла может быть поделен на подфрагменты, в которые могут быть помещены «хвосты» других файлов. В NTFS маленькие файлы могут быть записаны в Master File Table (MFT). В файловой же системе FAT из-за примитивного алгоритма степень фрагментации постоянно растёт и требуется периодическая дефрагментация.

-Diablo- 07-10-2012 18:16 2000947

Цитата:

Цитата Balancer
Какой оптимальный размер кластера стоит установить »

Равный физическому размеру сектора жесткого диска, т.е либо 512байт, либо 4кб (для дисков Advanced Format).
Лично у меня на всех разделах размер кластера 4 кб, хотя физический размер секторов 512 байт.
Я с выбором не напрягался, виндоус сама знает, на чем ей лучше работать (стандартный размер кластера).

Вышесказанное является актуальным, если у вас нет специфических требований к файловой системе.

Ment69 07-10-2012 19:02 2000980

Цитата:

Цитата yurfed
Допустим имеем базу из файликов около 4 КБ, »

Дык, клиент говорит
Цитата:

Цитата Balancer
700Гб я собираюсь разбить на 2 раздела - 1ый для ОС и программ (100 ГБ), 2ой для всего остального (сериалы, игры, и т.д.). Какой оптимальный размер кластера стоит установить »


AMDBulldozer 07-10-2012 19:30 2001000

Цитата:

Цитата minos66
Дайте ссылочки где про это почитать. »

Я могу сделать проще. Чтобы не могло возникнуть претензий к источнику, сделайте запрос к любой поисковой системе "tail packing" ("упаковка хвостов"). Та же техника, в ограниченной степени реализованная в NTFS, в терминологии Microsoft называется "block suballocation".
Не волнуйтесь, если у Вас нет желания читать иностранный текст - ссылок на русском будет более, чем достаточно.

P.S. Не зря я не хотел этой темы касаться! За первое сообщение поблагодарили, а за второе накинулись. :wink:

Ment69 07-10-2012 20:24 2001039

Не вижу смысла развивать эту тему! AMDBulldozer, Ты прав!


Время: 16:26.

Время: 16:26.
© OSzone.net 2001-