Olej писал(а):можно наблюдать прелюбопытнейшие результаты (рекомендую
):
1. вот запись примерно одинакового (относительно небольшого) объёма:
Код: Выделить всё
[olej@notebook 28]$ ./w 512 200000
записано 102400000 байт (102 MB), 1,29574 c, 79,0 MB/c
[olej@notebook 28]$ ./w 512 200000
записано 102400000 байт (102 MB), 1,27213 c, 80,5 MB/c
[olej@notebook 28]$ ./w 1K 100000
записано 102400000 байт (102 MB), 0,806875 c, 127 MB/c
[olej@notebook 28]$ ./w 2K 50000
записано 102400000 байт (102 MB), 0,546489 c, 187 MB/c
[olej@notebook 28]$ ./w 4K 25000
записано 102400000 байт (102 MB), 0,417041 c, 246 MB/c
[olej@notebook 28]$ ./w 8K 12500
записано 102400000 байт (102 MB), 0,3769 c, 272 MB/c
[olej@notebook 28]$ ./w 8K 16000
записано 131072000 байт (131 MB), 0,474187 c, 276 MB/c
[olej@notebook 28]$ ./w 16K 8000
записано 131072000 байт (131 MB), 0,445585 c, 294 MB/c
[olej@notebook 28]$ ./w 32K 4000
записано 131072000 байт (131 MB), 0,449369 c, 292 MB/c
[olej@notebook 28]$ ./w 64K 2000
записано 131072000 байт (131 MB), 0,444849 c, 295 MB/c
[olej@notebook 28]$ ./w 128K 1000
записано 131072000 байт (131 MB), 0,453105 c, 289 MB/c
- как я понимаю, здесь вся запись идёт в дисковый кэш, и только на очень частой записи маленьких блоков кэш начинает захлёбываться...
2. а вот большие объёмы, когда, предполагаю, дисковый кэш уже не спасает:
Код: Выделить всё
[olej@notebook 28]$ ./w 8K 10000
записано 81920000 байт (82 MB), 0,29871 c, 274 MB/c
[olej@notebook 28]$ ./w 8K 20000
записано 163840000 байт (164 MB), 0,820993 c, 200 MB/c
[olej@notebook 28]$ ./w 8K 21000
записано 172032000 байт (172 MB), 1,04277 c, 165 MB/c
[olej@notebook 28]$ ./w 8K 22000
записано 180224000 байт (180 MB), 1,52944 c, 118 MB/c
[olej@notebook 28]$ ./w 8K 25000
записано 204800000 байт (205 MB), 2,19758 c, 93,2 MB/c
[olej@notebook 28]$ ./w 8K 30000
записано 245760000 байт (246 MB), 4,2402 c, 58,0 MB/c
[olej@notebook 28]$ ./w 8K 40000
записано 327680000 байт (328 MB), 7,0826 c, 46,3 MB/c
[olej@notebook 28]$ ./w 8K 50000
записано 409600000 байт (410 MB), 10,0855 c, 40,6 MB/c
[olej@notebook 28]$ ./w 8K 70000
записано 573440000 байт (573 MB), 18,4304 c, 31,1 MB/c
[olej@notebook 28]$ ./w 8K 100000
записано 819200000 байт (819 MB), 38,9842 c, 21,0 MB/c
- резкий обвал (на порядок) скорости ... особенно резко где-то между 160 и 250 Mb
3. а теперь последний здоровенный файл (819 MB) почитаем с разным блоком:
Код: Выделить всё
[olej@notebook 28]$ ./r 1M
прочитано 819200000 байт (819 MB), 29,7555 c, 27,5 MB/c
[olej@notebook 28]$ ./r 256K
прочитано 819200000 байт (819 MB), 30,0496 c, 27,3 MB/c
[olej@notebook 28]$ ./r 64K
прочитано 819200000 байт (819 MB), 29,5051 c, 27,8 MB/c
[olej@notebook 28]$ ./r 16K
прочитано 819200000 байт (819 MB), 29,9829 c, 27,3 MB/c
[olej@notebook 28]$ ./r 4K
прочитано 819200000 байт (819 MB), 30,0607 c, 27,3 MB/c
[olej@notebook 28]$ ./r 1K
прочитано 819200000 байт (819 MB), 30,0939 c, 27,2 MB/c
[olej@notebook 28]$ ./r 512
прочитано 819200000 байт (819 MB), 29,8275 c, 27,5 MB/c
- и кэш на таком объёме не помогает, это тот диск для которого:
Код: Выделить всё
[olej@notebook 28]$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1644 MB in 2.00 seconds = 822.41 MB/sec
Timing buffered disk reads: 96 MB in 3.07 seconds = 31.24 MB/sec
27 очень похоже на 31
, с учётом что здесь ещё есть издержки на ext4.
4. ну и последняя группа замеров - чтение, но умеренного объёма файла, когда кэш должен бы работать:
Код: Выделить всё
[olej@notebook 28]$ ./r 5M
прочитано 51200000 байт (51 MB), 0,0737785 c, 694 MB/c
[olej@notebook 28]$ ./r 1M
прочитано 51200000 байт (51 MB), 0,0555825 c, 921 MB/c
[olej@notebook 28]$ ./r 512K
прочитано 51200000 байт (51 MB), 0,0370872 c, 1,4 GB/c
[olej@notebook 28]$ ./r 256K
прочитано 51200000 байт (51 MB), 0,0349397 c, 1,5 GB/c
[olej@notebook 28]$ ./r 128K
прочитано 51200000 байт (51 MB), 0,0339115 c, 1,5 GB/c
[olej@notebook 28]$ ./r 32K
прочитано 51200000 байт (51 MB), 0,0365926 c, 1,4 GB/c
[olej@notebook 28]$ ./r 8K
прочитано 51200000 байт (51 MB), 0,0438127 c, 1,2 GB/c
[olej@notebook 28]$ ./r 4K
прочитано 51200000 байт (51 MB), 0,0501534 c, 1,0 GB/c
[olej@notebook 28]$ ./r 2K
прочитано 51200000 байт (51 MB), 0,0676066 c, 757 MB/c
[olej@notebook 28]$ ./r 1K
прочитано 51200000 байт (51 MB), 0,109564 c, 467 MB/c
[olej@notebook 28]$ ./r 512
прочитано 51200000 байт (51 MB), 0,187721 c, 273 MB/c
[olej@notebook 28]$ ./r 256
прочитано 51200000 байт (51 MB), 0,344049 c, 149 MB/c
[olej@notebook 28]$ ./r 128
прочитано 51200000 байт (51 MB), 0,645543 c, 79,3 MB/c
[olej@notebook 28]$ ./r 64
прочитано 51200000 байт (51 MB), 1,27193 c, 40,3 MB/c
[olej@notebook 28]$ ./r 32
прочитано 51200000 байт (51 MB), 2,45269 c, 20,9 MB/c
(загиб вниз при больших мегабайтных блоках чтения я никак не понимаю).