В Пнд, 23/03/2009 в 20:12 +0200, Покотиленко Костик пишет: > Проверяем чтение с использованием кэша (прокэшировано ~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х ядрах скорость всё ещё > увеличивается. Кажется я их разгадал, для упрощения я не привёл времена стартов клонов, вот они: ... CHILD04: printing results: start time: 1237829999.955115 end time: 1237829999.955149 ... ... CHILD03: printing results: start time: 1237829999.955312 end time: 1237830000.48311 ... ... CHILD02: printing results: start time: 1237829999.979149 end time: 1237830000.63196 ... ... CHILD00: printing results: start time: 1237830000.48590 end time: 1237830000.113303 ... ... CHILD01: printing results: start time: 1237830000.4289 end time: 1237830000.121173 ... Очевидно, что клоны работали не совсем одновременно. При таких скоростях/объёмах это не правильный подход. Кэша/памяти у меня больше нет, поэтому, эти выводы можно считать не действительными, а я сделаю синхронизацию запуска и перемеряю потом. P.S. в start|end time после точки стоит время в микросекундах, там пропущены предшествующие нули. -- Покотиленко Костик <[email protected]> -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

