Проверяем чтение с использованием кэша (прокэшировано ~100%) на моем
каталоге /lib/modules:

# du -sh /lib/modules
365M    /lib/modules

Погонял несколько предварительный тестов пока прокэшировалось и скорость стало 
показывать стабильно.

Проверяем для одного потока:
> ./simreadtest /lib/modules -n 1
...
CHILD00: printing results:
files: 12890
bytes: 340750735
speed: 1893669821 bytes/sec
time usecs: 179942
...

Получаем скорость: 1806Мб/с, время: 0.179942с


Проверяем для двух потоков:
> ./simreadtest /lib/modules -n 2
...
CHILD01: printing results:
files: 6445
bytes: 163305639
speed: 1485055735 bytes/sec
time usecs: 109966
...
CHILD00: printing results:
files: 6445
bytes: 177445096
speed: 1206182295 bytes/sec
time usecs: 147113
...

Получаем суммарную скорость: 2209Мб/с, время: 0.147113с

Итого: на моей машине 2 ядра, при использовании 2х потоков общая скорость 
увеличилась на (2209-1806)/1806=22.3%, скорость на ядро уменьшилась на 
(1806-2209/2)/1806=38.8%


Проверяем для четырёх потоков:
> ./simreadtest /lib/modules -n 4
...
CHILD04: printing results:
files: 2
bytes: 1460
speed: 42941176 bytes/sec
time usecs: 34
...
CHILD03: printing results:
files: 3222
bytes: 85661152
speed: 921097560 bytes/sec
time usecs: 92999
...
CHILD02: printing results:
files: 3222
bytes: 77683236
speed: 924283270 bytes/sec
time usecs: 84047
...
CHILD00: printing results:
files: 3222
bytes: 95082054
speed: 1469288303 bytes/sec
time usecs: 64713
...
CHILD01: printing results:
files: 3222
bytes: 82322833
speed: 704312249 bytes/sec
time usecs: 116884
...

Получаем суммарную скорость: 2780Мб/с, время: 0.116884с

Итого: на моей машине 2 ядра, при использовании 4х(5ти) потоков общая скорость 
увеличилась на (2780-1806)/1806=53.9%, скорость на ядро уменьшилась на 
(1806-2780/4)/1806=61.5% относительно одного потока.

Вывод: При ~100% эффективности кэша скорость чтения растёт с увеличением 
количества потоков даже превышающих количество реальных ядер, но растёт сильно 
не линейно.


В Пнд, 23/03/2009 в 18:21 +0300, Alexey Pechnikov пишет:
> Hello!
> 
> On Monday 23 March 2009 12:03:05 Покотиленко Костик wrote:
> > > http://meteor.dp.ua/reference/simreadtest/simreadtest-0.1.tar.gz
> > > http://meteor.dp.ua/reference/simreadtest/simreadtest-19.03.2009-01.ods
> > > http://meteor.dp.ua/reference/simreadtest/simreadtest-19.03.2009-01.pdf
> >
> > По ходу дела хочу отметить тот факт, что в этой рассылке процветает
> > демагогия, а когда дело доходит до дела...
> 
> А где у вас дело? Есть стандартные паттерны использования диска, вы их даже 
> не 
> смотрели. 

Гляну позже. Если дашь ссылку, буду благодарен.

> Средняя скорость чтения в 13 Мб/с это полная ерунда. Реально 
> получается в разы быстрее.

Для небольших непрокэшированных файлов это как раз та скорость. На
больших она приближается к скорости линейного чтения, той, что hdparm -t
показывает.

>  Почему - я отписался в предыдущем письме. Вы же, 
> вместо того чтобы проверить, абсолютно ошибочно заявляете, что кэш не влияет 
> на многопоточное чтение (хотя его в основном для многопоточного чтения и 
> сделали).

Что-то не помню чтобы я такое заявлял. Я говорил, что в тех тестах,
которые я делал, кэш оказался не эффективен. Напомню, что файлы читались
последовательно, каждый один раз. Суммарный объём в несколько раз больше
кэша, поэтому он был не эффективен.

Напомню ещё, что изначально в этой теме речь шла о чтении с диска, может
я зря не дописал, но имелось в виду именно с диска, без кэша ФС.

И, получается, да, я был не прав считая, что увеличение количества потоков
не увеличит скорость чтения при 100%-ой эффективности кэша.

Для меня остаётся 2 загадки, почему при использовании 2х ядер такой маленький 
прирост 22.3% скорости, почему при 4х потоках на 2х ядрах скорость всё ещё 
увеличивается.

-- 
Покотиленко Костик <cas...@meteor.dp.ua>


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Ответить