Технические характеристики
Требования к серверу.
1. Apache Web server или совместимый с ним.
2. MySQL база данных
3. PHP 4.1.x или выше, инсталлированный как модуль, а не как cgi
Быстродействие.
Avrora CJ построен на основе PHP + MySSQL.
В принципе, широко распространено мнение, что такая связка медленная и сильно нагружает сервер. Могу сказать только, что это не так. При правильно распланированной структуре возможно получение скорости быстрее чем у скриптов на основе C/C++. Это достигается отсутствием дополнительных вызовов cgi приложений, которые кстати потребляют довольно много ресурсов.
Ну а использование MySQL думаю будет надежнее, чем попытки самому создать свою собственную базу со всеми блокировками и транзакциями.
При разработке движка Avrora CJ использовался опыт и технологии от баннерных и поисковых систем.
Так например при анализе посетителей используются числовые представления ip адресов и доменов трейдеров, что позволяет в разы увеличить скорость работы базы данных.
При обработке категорий используется булева логика всего с одним числовым полем, что так же сильно влияет на быстродействие в его положительном представлении.
На предварительных тестах на IP 133MHz / 32 Ram отработалось около 250.000 запросов за 24 часа, что с учетом неравномерности загрузки на вэб проектах, составит около 100.000 хитов в сутки.
Реальное быстродействие.
Железо: IP III 1GHz, 512 RAM, IDE диск на 5200 оборотов
Операционая система: Windows XP
Серверный софт: Apache + PHP 4.3.1 + MySQL 4.0.12 .
В качестве тестирующего софта использовался Webserver Stress Tool 6 находящийся на том же самом компьютере.
Все установлено с настройками по умолчанию, т.е. никаких дополнительных тюнингов не производилось.
В базе находилось 30 трейдеров и 100.000 ip адресов.
В качестве теста CJ было установлено использовать 50 клиентов работающих одновремено. Результат работы приведен ниже.
** Test Setup **
Test Type: TIME (run test for 10 minutes)
User Simulation: 50 simultaneous users - 0 seconds between clicks
** Browser Settings **
Browser Simulation:
User Agent: Mozilla/5.0 (compatible; Webserver Stress Tool; Windows)
HTTP Request Timeout: 120 s
Enable Cookies
** Client System **
Windows XP V5.1 (Build 2600) Service Pack 1, CPU Proc. Lev. 686 (Rev. 2054) at 1004 MHz,
133 MB available RAM of 536 MB total physical RAM, 270 MB available pagefile, 5088 MB free disk space on C:
Client's MAC address: 00-50-22-8A-21-E9
Time measurement resolution: 2,793651 µsec, clock runs at 4MHz
Setting Priority of WebStress.exe Process to "HIGH"
Hits per Second: 16,325 (equals 58771,44 Hits per Hour)
Successful clicks per Second: 16,325 (equals 58771,44 Clicks per Hour)
Т.е. грубо говоря, мой домашний компьютер держал свыше 50.000 запросов в час. И это с условием того, что WinXP+Apache+MySQL изначально медленее нормального *nix сервера.