NTFS

Drive subsystem, filesystem drivers
  • ... только к ФС это не относится.
  • Pathoswithin wrote:Говоришь, разделы примерно по 8Гб?
    Да.
    Pathoswithin wrote:А 512 КБ кластер ты специально выбираешь?
    Байтов же! Ну так экономнее будет, если файлы небольшие. Или сейчас есть какие-то ограничения на размер кластера?
    Siemargl wrote:Копирование пары 1Гб фалов (на разные диски) приводит к общему замедлению всех процессов записи на диск.
    Это может вот почему
    [b]Serge[/b] wrote:Вспомни как у нас файловая система работает - открыла кошёлку, достала сумочку, закрыла кошёлку, открыла сумочку, достала кошелёк, закрыла сумочку и т.д.
  • Просто если бы ты сразу сказал, что создаёшь нестандартные разделы, я бы нашёл ошибку уже давно. Кстати, проверяй. А всё из-за этого viewtopic.php?f=31&t=659&start=120
    Там же аргумент по второму вопросу. Кстати, до недавнего времени в драйвере EXT такой подход был помножен на 1000.
  • А, интересно, какие разделы были у Siemargl? Ведь у него тоже были ошибки.
  • Pathoswithin wrote:... только к ФС это не относится.
    Да, как и писал ранее
    0CodErr wrote:
    Pathoswithin wrote:А 512 КБ кластер ты специально выбираешь?
    Байтов же! Ну так экономнее будет, если файлы небольшие. Или сейчас есть какие-то ограничения на размер кластера?
    Siemargl wrote:Копирование пары 1Гб фалов (на разные диски) приводит к общему замедлению всех процессов записи на диск.
    Это может вот почему
    [b]Serge[/b] wrote:Вспомни как у нас файловая система работает - открыла кошёлку, достала сумочку, закрыла кошёлку, открыла сумочку, достала кошелёк, закрыла сумочку и т.д.
    а) Если файл меньше чем 662 байта, NTFS хранит его в MFT. Ты таким образом гробишь производительность, не экономя (ну только на хвостиках больших файлов)

    б) Это очень похоже на проблему стратегии кеширования - когда кэш забивается ненужными данными и перестает использоваться.

    У меня стандартные размеры кластера - размер есть в выводе chkdsk --- 2Kb
  • Да, теперь стало лучше. В не корневые папки сейчас тоже копируется.

    Но вот что осталось:
    При попытке создать 10000 файлов в корневой папке создаётся только 4068.
    Spoiler:
    0.PNG
    0.PNG (63.88 KiB)
    Viewed 8330 times
    chkdsk пишет
    Ошибок не обнаружено
    Но и зайти в корневую папку раздела из-под винды не получается
    Файл или папка повреждены. Чтение невозможно.
    Если удалить под KolibriOS эти файлы, то из-под винды снова заходит.

    Из-под винды 10000 файлов на том же разделе успешно создаётся. И из-под KolibriOS их видно
    Spoiler:
    1.PNG
    1.PNG (49.09 KiB)
    Viewed 8330 times
    Пробовал копировать на реальной системе файл 4,23 ГБ с /hd на /usbhd, но скопировалось только 1,29 ГБ. Здесь размер кластера был 4 Кб.

    Pathoswithin, напиши, какие сейчас ограничения в KolibriOS для NTFS. И что уже должно точно работать.
  • Siemargl wrote:У меня стандартные размеры кластера - размер есть в выводе chkdsk --- 2Kb
    Pathoswithin wrote:Если раздел меньше 2 ГБ, то винда делает кластер 2 Кб.
    Это ещё смотря какая винда. Судя по https://support.microsoft.com/en-us/kb/140365 у Siemargl Windows NT 3.51.
  • Врут, как ни странно. Вот тут вернее
    http://www.ntfs.com/ntfs_optimization.htm

    У меня в виртуалке XP Pro 2002 SP3
    http://clip2net.com/s/3GbcOQd
  • Да, это странно, конечно.
    Они там ссылаются на https://support.microsoft.com/en-us/kb/314878 а оно, получается, что противоречит https://support.microsoft.com/en-us/kb/140365
  • viewtopic.php?f=31&t=659&start=214
    При попытке создать 10000 файлов в корневой папке создаётся только 4068 -> Пункт 4, привет кластер на 512 байт.
    Ошибок не обнаружено, но и зайти в корневую папку раздела из-под винды не получается -> Пункт 1, не видит служебные файлы.
    Пробовал копировать файл 4,23 ГБ с /hd на /usbhd, но скопировалось только 1,29 ГБ -> Возможно, пункт 5, у меня не проявляется. Попробуй файл меньше 4 ГБ (а ещё на КФМ).
  • Pathoswithin wrote:Пункт 4, привет кластер на 512 байт
    Ну это надо фиксить тогда. В винде же работает.
    Pathoswithin wrote:Возможно, пункт 5, у меня не проявляется.
    Это ведь проблема реализации именно в KolibriOS? И тогда ещё сюда из соседней темы
    Pathoswithin wrote:На реальном компе с 2 ГБ оперативы он скопировал с ext4 на ntfs файл размером 1600 МБ за 45 секунд, операции на 5 секунд вполне приемлемы. А fNav мучился минут 5.
    Насколько я знаю, в Far(под винду который) по умолчанию CopyBufferSize = 64 K. Также для примера TotalCommander, там 32 K. И вот из справки по Copy/Delete
    Use default method only
    The default method is relatively slow, but also reliable. A larger block size may speed up the copying. When copying within the same drive, a larger buffer size should be chosen than when copying between two drives, so the read/write head doesn't have to jump between source and target all the time.

    Also use big file copy mode
    The copy method for large files is meant to copy very large files like films or CD-ROM images. It bypasses the Windows disk cache. This works very well with harddisks, but can slow down copying to special drives a lot (e.g. to USB sticks). Recommended are at least 10240 k within the same disk, and 32 k between two disks. Warning: Some disk drivers written by drive manufacturers may have bugs which prevent them from working in this mode!
    Не забываем, что с кешем в KolibriOS проблемы(если никто ещё не правил). В той теме viewtopic.php?f=42&t=2660 есть про это. Надо бы попробовать для эксперимента увеличить его и сравнить. А то сейчас в винде работает гораздо шустрее. Можно, например, попробовать полистать картинки в KIV — будут тормоза из-за частого обращения к диску.
  • Pathoswithin wrote:Возможно, пункт 5, у меня не проявляется. Попробуй файл меньше 4 ГБ (а ещё на КФМ).
    А я вот хотел тот же самый файл(4,23 ГБ), но только KFM для этого не годится
    Spoiler:
    0.PNG
    0.PNG (4.27 KiB)
    Viewed 8260 times
    Однако, при попытке копирования он завис примерно на 1 минуту. Ну и соответственно скопировал гораздо меньше(но завис на 1 минуту).
    Ладно, в ближайшие пару дней я выложу промежуточную версию fNav с поддержкой файлов >4Gb.
  • Pathoswithin, а у тебя может там AHCI? Или ты всё же перепроверь, на всякий случай контрольную сумму.

    Вот мои результаты:
    Копировался файл 1,36 ГБ (1 465 528 320 байт)
    с FAT32 /hd на NTFS /usbhd
    KFM — 6:08 минут
    fNav — 7:00 минут
    Но разница не в разы как у тебя! Она менее 15%.
    Ну так КФМ прогресс показывает.
    Он зависает на время файловых операций чтения\записи. Попробуй переместить его окно во время копирования.
    Потому я и сказал
    Пусть лучше пользователь видит прогресс и понимает, что программа не зависла, а идёт копирование.
    А сжатие в NTFS у нас и для чтения не работает? А то вылетает, если копируемый файл сжатый.
  • FAR под винду - такое же дерьмо мамонта что и наш, TotalCommander тоже. Они так работают ещё со времён LBA28, в котором было максимум 256 секторов на операцию.

    При первом чтении кэш не поможет. Той теме уже больше двух лет, тогда ещё дисковая система находилась в жалком состоянии viewtopic.php?f=31&t=3056

    Ну ты ж на флешку копируешь. И то есть разница...

    Такая у КФМ реализация. Если сделать работу с файлами в отдельном потоке, не будет зависать.

    Весь пункт 6 не поддерживается вообще.
  • Who is online

    Users browsing this forum: No registered users and 4 guests