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

