Page 16 of 20

Re: NTFS

Posted: Sat Jan 07, 2017 12:43 am
by Siemargl
Siemargl wrote:Думаю, что если копировать 1Гб файлов будет тот же эффект.
Подтверждаю. Копирование пары 1Гб фалов (на разные диски) приводит к общему замедлению всех процессов записи на диск.

Re: NTFS

Posted: Sat Jan 07, 2017 3:01 pm
by Pathoswithin
... только к ФС это не относится.

Re: NTFS

Posted: Sat Jan 07, 2017 4:03 pm
by 0CodErr
Pathoswithin wrote:Говоришь, разделы примерно по 8Гб?
Да.
Pathoswithin wrote:А 512 КБ кластер ты специально выбираешь?
Байтов же! Ну так экономнее будет, если файлы небольшие. Или сейчас есть какие-то ограничения на размер кластера?
Siemargl wrote:Копирование пары 1Гб фалов (на разные диски) приводит к общему замедлению всех процессов записи на диск.
Это может вот почему
[b]Serge[/b] wrote:Вспомни как у нас файловая система работает - открыла кошёлку, достала сумочку, закрыла кошёлку, открыла сумочку, достала кошелёк, закрыла сумочку и т.д.

Re: NTFS

Posted: Sat Jan 07, 2017 5:41 pm
by Pathoswithin
Просто если бы ты сразу сказал, что создаёшь нестандартные разделы, я бы нашёл ошибку уже давно. Кстати, проверяй. А всё из-за этого viewtopic.php?f=31&t=659&start=120
Там же аргумент по второму вопросу. Кстати, до недавнего времени в драйвере EXT такой подход был помножен на 1000.

Re: NTFS

Posted: Sat Jan 07, 2017 5:58 pm
by 0CodErr
А, интересно, какие разделы были у Siemargl? Ведь у него тоже были ошибки.

Re: NTFS

Posted: Sat Jan 07, 2017 7:42 pm
by Siemargl
Pathoswithin wrote:... только к ФС это не относится.
Да, как и писал ранее
0CodErr wrote:
Pathoswithin wrote:А 512 КБ кластер ты специально выбираешь?
Байтов же! Ну так экономнее будет, если файлы небольшие. Или сейчас есть какие-то ограничения на размер кластера?
Siemargl wrote:Копирование пары 1Гб фалов (на разные диски) приводит к общему замедлению всех процессов записи на диск.
Это может вот почему
[b]Serge[/b] wrote:Вспомни как у нас файловая система работает - открыла кошёлку, достала сумочку, закрыла кошёлку, открыла сумочку, достала кошелёк, закрыла сумочку и т.д.
а) Если файл меньше чем 662 байта, NTFS хранит его в MFT. Ты таким образом гробишь производительность, не экономя (ну только на хвостиках больших файлов)

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

У меня стандартные размеры кластера - размер есть в выводе chkdsk --- 2Kb

Re: NTFS

Posted: Sat Jan 07, 2017 11:22 pm
by 0CodErr
Да, теперь стало лучше. В не корневые папки сейчас тоже копируется.

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

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

Pathoswithin, напиши, какие сейчас ограничения в KolibriOS для NTFS. И что уже должно точно работать.

Re: NTFS

Posted: Sun Jan 08, 2017 1:14 am
by 0CodErr
Siemargl wrote:У меня стандартные размеры кластера - размер есть в выводе chkdsk --- 2Kb
Pathoswithin wrote:Если раздел меньше 2 ГБ, то винда делает кластер 2 Кб.
Это ещё смотря какая винда. Судя по https://support.microsoft.com/en-us/kb/140365 у Siemargl Windows NT 3.51.

Re: NTFS

Posted: Sun Jan 08, 2017 3:29 am
by Siemargl
Врут, как ни странно. Вот тут вернее
http://www.ntfs.com/ntfs_optimization.htm

У меня в виртуалке XP Pro 2002 SP3
http://clip2net.com/s/3GbcOQd

Re: NTFS

Posted: Sun Jan 08, 2017 4:40 pm
by 0CodErr
Да, это странно, конечно.
Они там ссылаются на https://support.microsoft.com/en-us/kb/314878 а оно, получается, что противоречит https://support.microsoft.com/en-us/kb/140365

Re: NTFS

Posted: Sun Jan 08, 2017 9:43 pm
by Pathoswithin
viewtopic.php?f=31&t=659&start=214
При попытке создать 10000 файлов в корневой папке создаётся только 4068 -> Пункт 4, привет кластер на 512 байт.
Ошибок не обнаружено, но и зайти в корневую папку раздела из-под винды не получается -> Пункт 1, не видит служебные файлы.
Пробовал копировать файл 4,23 ГБ с /hd на /usbhd, но скопировалось только 1,29 ГБ -> Возможно, пункт 5, у меня не проявляется. Попробуй файл меньше 4 ГБ (а ещё на КФМ).

Re: NTFS

Posted: Sun Jan 08, 2017 10:36 pm
by 0CodErr
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 — будут тормоза из-за частого обращения к диску.

Re: NTFS

Posted: Sun Jan 08, 2017 11:01 pm
by 0CodErr
Pathoswithin wrote:Возможно, пункт 5, у меня не проявляется. Попробуй файл меньше 4 ГБ (а ещё на КФМ).
А я вот хотел тот же самый файл(4,23 ГБ), но только KFM для этого не годится
Spoiler:
0.PNG
0.PNG (4.27 KiB)
Viewed 8504 times
Однако, при попытке копирования он завис примерно на 1 минуту. Ну и соответственно скопировал гораздо меньше(но завис на 1 минуту).
Ладно, в ближайшие пару дней я выложу промежуточную версию fNav с поддержкой файлов >4Gb.

Re: NTFS

Posted: Sun Jan 08, 2017 11:43 pm
by 0CodErr
Pathoswithin, а у тебя может там AHCI? Или ты всё же перепроверь, на всякий случай контрольную сумму.

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

Re: NTFS

Posted: Mon Jan 09, 2017 12:08 am
by Pathoswithin
FAR под винду - такое же дерьмо мамонта что и наш, TotalCommander тоже. Они так работают ещё со времён LBA28, в котором было максимум 256 секторов на операцию.

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

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

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

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