http://xobotun.livejournal.com/ (
xobotun.livejournal.com) wrote in
useless_faq2014-05-31 01:34 pm
![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Производительность жёстких диков
Совершенно случайно возник вопрос: что жесткому диску будет быстрее прочитать: один файл на четыре гигабайта или 4096 файлов по мегабайту? А записать? И при каком количестве файлов наступит "точка вырождения"?
UPD. С чтением разобрались - зависит, как минимум от скорости вращения дисков и движения головокжёстких диков, фрагментации и количества служебной информации.
Похоже, что с записью будет то же самое.
UPD. С чтением разобрались - зависит, как минимум от скорости вращения дисков и движения головок
Похоже, что с записью будет то же самое.
no subject
no subject
no subject
no subject
no subject
no subject
Если этот 1 файл фрагментирован на 4096 кусков, то будет примерно одинаково.
Если 1 файл нефрагментирован, и 4096 файлов расположена на диске друг за другом, то разницы в скорости будет немного.
Записать точно так же.
Вам для ответа нужно всего два параметра, есть линейное чтение - оно быстрое, а есть случайное оно медленное.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
А дома на зеркале приклеена надпись: "другие не лучше". ;)
Ваш ответ игнорирует массу фактров. Например, не учитывается разница между HDD и SSD.
no subject
Вопрос задан вроде бы конкретно по HDD. В принципе при желании я могу насыпать технических терминов и такого прочего как это сделали вы там ниже, но зачем?
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Вот живые синтетические тесты на SSD дисках в каком-то RAID с файловой системой ext4:
Тесты записи: 1 файл размером 1Гб (увы, 4Гб сделать на этом сервере не смогу):
dd if=/dev/zero of=/tmp/testfile.bin bs=1G count=1
1073741824 bytes (1.1 GB) copied, 6.14261 s, 175 MB/s
1073741824 bytes (1.1 GB) copied, 8.30967 s, 129 MB/s
1073741824 bytes (1.1 GB) copied, 4.85202 s, 221 MB/s
1073741824 bytes (1.1 GB) copied, 7.95577 s, 135 MB/s
Тесты записи: 1024 файла размером 1Мб (время в наносекундах):
4.96257e+09
5.85231e+09
4.48971e+09
4.91984e+09
Тесты чтения для 1 файла размером 1Гб:
dd of=/dev/null if=/tmp/testfile.bin bs=1G count=1
1073741824 bytes (1.1 GB) copied, 2.16189 s, 497 MB/s
1073741824 bytes (1.1 GB) copied, 1.68176 s, 638 MB/s
1073741824 bytes (1.1 GB) copied, 2.13345 s, 503 MB/s
1073741824 bytes (1.1 GB) copied, 1.74146 s, 617 MB/s
Тесты чтения для 1024 файла размером 1Мб (время в наносекундах):
3.65431e+09
3.01503e+09
3.07641e+09
3.0315e+09
Т.е. получилось, что скорость записи вышла кое-где выше для файлов размером 1Мб, но чтение быстрее у 1Гб-файла.
no subject
(Хотя как раз за это я и люблю это сообщество)
no subject
На носителе с высокой латентностью (HDD, CD/DVD) всё зависит от фрагментации и системы кэширования (особенно - от "упреждающего чтения" при чтении и "отложенной записи" при записи).
Точка вырождения на латентном носителе наступает примерно при размере файла равном размеру трека диска. Т.е. при количестве данных, которые диск способен передать за удвоенное среднее время доступа. Оценка оченть приблизительная.
no subject