Здравствуйте, Alexander. > Я предлагаю взять более-менее реалистичную задачу и погонять её под > более-менее реалистичными тестами. Например: > > Архитектура: приложение, memcached, mysql. > Задача: показывать рассказы из базы данных (каждый порядка 100 > килобайт), кэшируя их в memcached (небольшого объёма). > Входной урл: "/$id". > Ключ в memcached: "$id". > Запрос к базе: "select data from stories where id=$id". > Ответ оборачивается в простенький HTML-шаблон. Все спецсимволы > заменяются на HTML entities, как положено. Новые строки - на <br>. > Результат возвращается клиенту. > > Как тестируем: > 1. запросы по небольшому подмножеству случайных ID (чтобы всё > заведомо влезало в memcached) > 2. запросы по всему множеству ID (чтобы всё не влезало в memcached и > приходилось дёргать базу) > 3. запросы по всему множеству ID, параллельно начинаем затормаживать > базу данных (lock tables write, sleep, unlock tables) > > Замеряется количество запросов в секунду, которые сервер смог > обслужить, количество ошибок в секунду, ну и latency. > > Этот тест более-менее приближен к реальным условиям и проверяет > разные возможности - интенсивный сетевой обмен, вычислительную > работу (процессинг HTML), эффективность использования ресурсов > машины. Причём в пропорциях, обычных для веб-приложений. > > Что скажете? Есть у кого время написать такие приложения на разных > языках?
Тестирую сейчас твою задачу. Надо под memcached отдельный сервер, а то он много процессора кушает. У меня их 6 шт. и каждый по 25% процессора потребляет. И под БД тоже наверное не помешает, если данных будет так много, что перестанет в мемкешед влезать, то БД станет узким местом. Хотя с другой стороны можно всё на один сервер засунуть и пусть там демон, memcached и mysql вместе живут, так в реальности часто и бывает, но тогда все быстрые демоны покажут одинаковый результат. И хорошо бы где-то иметь общий для всех дамп БД, чтобы на нём можно было тестить. -- С уважением, Михаил mailto:[email protected] -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
