Crawler Test Bed
(программа распространяется по лицензии BSD из трех пунктов)
Эта программа для тестирования поискового робота случайным образом создает множество веб-страниц с перекрестными гиперссылками.
Алгоритм основан на цепочках Маркова и взят из книги «Практика программирования» Б. Кернигана и Р. Пайка. Для создания хеш-таблицы префиксов использовался алгоритм идеального хеширования из второго издания книги «Алгоритмы: построение и анализ» Т. Кормена.
Гиперссылки могут быть как внутренними (http://hostname/N.html), так и внешними (http://servX.hostname/Y.html) — в том случае, если для равномерного распределения нагрузки при тестировании поискового робота используется несколько машин.
Сборка
Для сборки Crawler Test Bed необходимо установить пакет cmake. Все остальные компоненты, включая исправленную версию libevent-1.4.9, включены в дистрибутив.
Выполните следующие команды:
tar xvf testbed-xxxx-xx-xx.tar.bz2 cd testbed-xxxx-xx-xx cmake -DCMAKE_BUILD_TYPE=Release . make
Конфигурация
Для хранения настроек программы используется файл gen.ini. Доступны следующие параметры:
| daemon_port | Привязка к конкретному порту HTTP-сервера. |
| extern_links_probability | Вероятность того, что слово станет внешней ссылкой. Число из полуинтервала [0,1). |
| extern_links_prefix | Префикс для создания внешних ссылок. |
| extern_links_suffix | Суффикс для создания внешних ссылок. |
| extern_links_servers | Количество серверов для внешних ссылок. |
| intern_links_probability | Вероятность того, что слово станет внутренней ссылкой. Число из интервала (0,1).Например, если выставить 0.999, то почти все слова на странице станут ссылками. |
| links_total | Максимальное количество ссылок на сервере. |
| words_per_page | Максимальное количество слов на странице. |
| worker_threads | Количество потоков. Рекомендуется указывать значение, соответствующее числу ядер. |
Пример файла настроек
[generator] daemon_port=8083 words_per_page=500 intern_links_probability=0.1 extern_links_probability=0.02 ; serv0.testbed.local ; serv1.testbed.local extern_links_prefix=serv extern_links_suffix=.testbed.local extern_links_servers=2 links_total=10000000 worker_threads=2
Использование
Перед первым запуском программы необходимо создать директорию texts и разместить там текстовые файлы в кодировке UTF-8, из которых будут генерироваться страницы:
mkdir texts cp *.txt texts #заполняем директорию с текстами ./bin/testbed