В Суб, 21/03/2009 в 17:04 +0300, Alexey Pechnikov пишет:
> Hello!
> 
> On Friday 20 March 2009 13:02:27 Покотиленко Костик wrote:
> > О тесте: программа рекурсивно сканирует указанный каталог и составляет
> > список обычных файлов, затем делит этот список на N частей. Далее
> > программа создаёт N клонов с помощью fork(), каждый из которых читает
> > файлы из своей части списка. По окончанию работы каждого клона выводится
> > его статистика.
> 
> Необходимо оценить средний размер файла. Пусть это будет 8 кБ согласно 
> паттерну работы с БД. Примечание: если реальные файлы больше, но запросов 
> много, то с диска они все равно будут читаться блоками, кратно 4 кБ (по 
> дефолту для ext3).
> 
> 1. Необходимо обращаться к рандомному файлу. Каждый поток должен работать с 
> полным списком, случайным образом выбирая файл для чтения. Примечание: если 
> вы 
> посмотрите паттерны доступа от интел, то увидите, что для моделирования 
> работы 
> с БД и файлсервера предполагается именно 100% рандомный доступ (в первом 
> приближении стоит начинать именно с этого варианта). Учет этого фактора 
> незначительно ускорит многопоточное чтение.
> 
> 2. Необходимо учесть "популярность" файлов - большинство обращений происходит 
> к одним и тем же файлам. Используйте гауссово распределение. Учет этого 
> фактора значительно оптимизирует работу файлового кэша и многократно ускорит 
> многопоточное чтение (в зависимости от параметров распределения). Это будет 
> второе приближение. 

В случаях, когда кэш эффективен нет разницы параллельно читать или
последовательно.

-- 
Покотиленко Костик <[email protected]>


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Ответить