John Smith
Мыслитель
(5032)
8 лет назад
Как один из вариантов - скорость может плавать от фрагментированности копируемой информации. Большой файл - будет скачок до 10, как пошли мелкие - падает до 0,1, т. к. при переходе от файла к файлу происходит смена адреса. В случае классического HDD - будет происходить перемещение считывающей головки, на что соответственно будет тратиться время и как следствие падать скорость.
Дофига еще причин может быть. Некоторые файлы может антивирус проверять, что также замедлит копирование и т. д.
John SmithМыслитель (5032)
8 лет назад
"и от файловой системы (что одна быстрее обрабатывает крупные, а другая мелкие файлы)"
Так я про одну файловую систему и писал. Ставите вы вот на копирование 1 файл размером 10Гб и 10000 файлов по 10Кб: большой файл копируется быстро, а как начались мелкие - скорость сразу упала. Заметьте, ни процессор, ни диск, ни файловая система естественно не поменялись при этом.
Кстати зависимость скорости копирования от процессора вообще минимальна, технологии подобные DMA (direct memory access), придуманы очень давно.
John SmithМыслитель (5032)
8 лет назад
Кстати, на одном большом фале скорость тоже может плавать, потому как нифига не факт что он непрерывен, иначе не было бы таких сервисных процедур как дефрагментация
Сергей Казнадей
Мастер
(2216)
8 лет назад
Чем больше в копируемом объеме мелких файлов - тем медленнее. Вызвано это тем, что операционка старается использовать объем диска максимально полезно. При большом файле она пишет его последовательно сектор за сектором - скорость большая. Маленькие файлы ось пытается засунуть в пустые промежутки между уже записанными файлами. Соответственно на поиск таких промежутков уходит дополнительное время. Ну и от размера кластера тоже - чем меньше кластеры, тем больше сегментация, но больше полезный объем.
Подскажите, от чего зависит скорость копирования и почему она изменяется в течении одного процесса?
То есть я начинаю копировать файлы, идет процесс, и во время этого процесса скорость скачет от 0,1 до 10 мб в секунду (это копирование между сервером ubuntu на виртуалке и виндой - чтобы не удивлялись низкой скорости). Почему скорость не примерно одинаковая на промежутке всего процесса? Что влияет на этот показатель?