Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Есть огромное количество файлов (нескольк десятков миилонов) размером 40-90 байт. Программа которая с ними работает умеет работать только с файлами (тоесть их не запихнёшь в базу данных или архив). Получается два неприятных момента: 1) огромная потеря пространства (кластер ведь 4кб), в файлы всего по несколько байт 2) очешь большое количество самих файлов (и винда начинает очень медленнл работать с ними) Размер кластера конечно можно уменьшеить до 512, но и это не панацея, ведь файлы в 10 раз меньше кластера. Да и диск 4Тб с кластерами 512 байтов съест ещё больше пространства для таблицы размещения (за счёт десятикратного увеличения маленьких кластеров). Если попытаться заархивировать этот объём, он пространства становится почти в 1000 раз больше. Это логично, потому что пока кластер в 100 раз больше самих файлов и потом ещё сама архивация (а файлы текстовые и одинаковой структуры). Но чтобы заархивировать такое количество - надо больше суток... Может есть какие-то виртуальные хранилища (виртуальные диски) которые расчитаны именно на хранение большого количества мелких файлов? Или работающие с архивом как с диском? (пусть даже в ущерб скорости) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 16:32 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSky1) огромная потеря пространства (кластер ведь 4кб), в файлы всего по несколько байтФайлы размером до, примерно, полутора килобайт NTFS хранит прямо в каталожной записи.2) очешь большое количество самих файлов (и винда начинает очень медленнл работать с ними)Только разбрасывать по подкаталогам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 16:39 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyвинда начинает очень медленнл работать с ними Какие именно операции с ними становятся медленными? Уж не вывод ли на экран полного списка?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 16:41 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Может подойдет сжатие папки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:02 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКакие именно операции с ними становятся медленными? Уж не вывод ли на экран полного списка?..Создание файлов - тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:07 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovФайлы размером до, примерно, полутора килобайт NTFS хранит прямо в каталожной записи. Я первый раз такое слышу. Но если глянуть на параметры папки скажем из 8000 таких файлов, то видим: Размер: 508 КБ (520 678 байт) На диске: 34.0 МБ (35 753 984 байт) Ну ведь наверняка есть какие-то виртуальные хранилища под такие задачи? Уже даже подумывал о компрессирующихся ISO образах (но там только для чтения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:08 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovInterSkyвинда начинает очень медленнл работать с ними Какие именно операции с ними становятся медленными? Уж не вывод ли на экран полного списка?.. После появления такого количества файлов на компьютере считай что он стал недееспособным: Антивирусу надо 52 часа чтобы проверить диск. Заход в папку где около 10 тысячь файлов - занимает около 5 секунд. Конечно когда у тебя есть путь до файла - то файл откроешь моментально, но ведь чтобы получить путь - программе надо открыть папку (хоть всё и так разнесено на папаки по несколько тысячь файлов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:13 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyЯ первый раз такое слышу. Но если глянуть на параметры папки скажем из 8000 таких файлов, то видим: Размер: 508 КБ (520 678 байт) На диске: 34.0 МБ (35 753 984 байт)Это эвристика. Спросите чекиста - он лучше разбирается, что чем занято. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:14 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
k-nikeМожет подойдет сжатие папки? Нет! Файл даже если и сожмётся - всё равно будет занимать по 1 кластеру на файл (ни одного байта не выигрыешь из-за сжатия). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:14 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovСоздание файлов - тоже. За счёт чего? ЕМНИП, в NTFS каталог это двоичное дерево, стоимость операции log2(N). InterSkyФайл даже если и сожмётся - всё равно будет занимать по 1 кластеру на файл Да щаззз же. Винда не дура, она объедки в один кластер свалит. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:28 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovСпросите чекиста - он лучше разбирается, что чем занято. Не совсем понял. Это ведь не про CHKDSK говорите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:36 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Разница в свободном месте - менее девяти мегабайт, а вовсе не сорок. Из этих "менее девяти" - два мегабайта на подросшие индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:41 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovInterSkyФайл даже если и сожмётся - всё равно будет занимать по 1 кластеру на файл Да щаззз же. Винда не дура, она объедки в один кластер свалит. Я проверил перед тем как писать! Нету выигрыша ни на 1 байт! С какого перепуга она вдруг должна несколько файлов в один кластер сваливать? Просто компрессирует файлы, но хранятся они как прежде... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:44 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЗа счёт чего? ЕМНИП, в NTFS каталог это двоичное дерево, стоимость операции log2(N).Короткие имена тоже не должны совпадать, а это уже полное сканирование. P.S. Даже если создание коротких имён отключено на уровне файловой системы, они всё равно могут и (уже) быть и (дополнительно) создаваться. "fsutil file setshortname", например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:45 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyЭто ведь не про CHKDSK говорите?Про него, родимого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:45 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyПросто компрессирует файлы, но хранятся они как прежде...Не как прежде - пространство под сжатые файлы выделяется посекторно. Что, собственно, и приводит к бешеной фрагментации. Не помню только - выравнивается ли сжатый файл на границу кластера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 17:50 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Разница в свободном месте - менее девяти мегабайт, а вовсе не сорок. Из этих "менее девяти" - два мегабайта на подросшие индексы. Не совсем понял как получить такую интересную информацию? У меня получилось только: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 18:01 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyНе совсем понял как получить такую интересную информацию?Я же сказал - чекист. Просто убрал из вывода chkdsk несущественные подробности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 18:06 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНе как прежде - пространство под сжатые файлы выделяется посекторно. Посекторно или покластерно? Сектор-то 512 байт, а кластер 4кб. Но ещё раз повторюсь - я реально компресанул несколько папок - и не освободился ни один байт (если берёшь папки где файлы размером по 20-30кб - там сразу идёт увеличение свободного дискового пространства). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 18:08 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyПосекторно или покластерно?Посекторно.Сектор-то 512 байт, а кластер 4кбМожет быть и четыре на четыре :)Но ещё раз повторюсь - я реально компресанул несколько папок - и не освободился ни один байтИ не мог - мелкий файл уже "упакован" в (собственную) каталожную запись. P.S Другой пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. "Ноль байт" заняли более ста мегабайт :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 18:24 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Интересно, а в Windows нет способа примонтировать файл архива как диск/каталог? В линуксе такое с оговорками, но достижимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 18:25 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
InterSkyМожет есть какие-то виртуальные хранилища (виртуальные диски) которые расчитаны именно на хранение большого количества мелких файлов? Или работающие с архивом как с диском? (пусть даже в ущерб скорости) hadoop-based решения не рассматриваете? hdfs как распределенную файловую систему или другие аналоги? Но это будет за пределами одного хоста. Что вы делаете с этими файлами? Осуществляется ли по ним поиск и т п? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 18:26 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
miksoftИнтересно, а в Windows нет способа примонтировать файл архива как диск/каталог? В линуксе такое с оговорками, но достижимо.Есть. Тоже с оговорками ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 18:28 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
miksoftИнтересно, а в Windows нет способа примонтировать файл архива как диск/каталог? В линуксе такое с оговорками, но достижимо.ZIP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 20:47 |
|
||
|
Как хранить миллионы файлов размером меньше 40-90 байт?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovP.S Другой пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. "Ноль байт" заняли более ста мегабайт :) По большому счёту тут нет ничего удивительного - ведь файл это не только РАЗМЕР, но и название, и атрибуты... Я тут потестировал и получилось следующее: Мои 8000 файлов размером 40-90 байт уменьшают свободное место на диске на 10290Кб, грубо говоря на 10Мб (проверял через CHKDSK). Эти цифры практически совпали с тем эксперементом когда Basil A. Sidorov создал 10001 файл размером 1 байи (у него свободное место уменьшилось на 9Мб) Напомню что Проводник говорил: Размер: 508 КБ (520 678 байт) На диске: 34.0 МБ (35 753 984 байт) Хотя дальше я наткнулся на необъяснимую ситуацию: Я написал небольшой скрипт, который увеличил размер каждого файла в 2 раз (просто открывал файл и два раза копировал его в самого себя). В результате мои 8000 стали весить не 508 КБ, а 0.99 МБ (так написал Проводник, ведь в одном Мб у нас 1024Кб) Я ожидал что такая папку будет занимать не 10Мб, а на пол мегабайта больше (так как имя файла и атрибуты не изменились, а объём вырос на пол мегабайта. Однако чекдиск показал мне что дисковое пространство уменьшилось всего на 3928Кб (4Мб). Я удивился и для чистоты экперемента даже форматнул диск. Но и повторная проверка (запускаю чекдиск, копирую, запускаю чекдиск) опять показала такие же цифры - 3928Кб. Почему увеличение файлов в 2 раза привело к УМЕНЬШЕНИЮ занимаемого пространства - я не полнял. Ну и ещё раз подтвержу: сжатие файлов средством операционной системы не изменило свободное место ни на 1 байт. Пытался и директорию сжимать (это моментально происходило), и выделял в ней все файлы (тогда в течении минуты он визуально как бы каждый файл сжимал). Разници небыло никакой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2013, 20:57 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=38334540&tid=1495432]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 367ms |

| 0 / 0 |
