3 одинаковых по хар-кам машины:
1. mysql в docker 2cpu, 4gb ram, 30gb ssd
2. nginx + php-fpm в docker
3. octane в docker roadrunner/swoole
Использовал не пустой проект: сделал эндпоинт, который отдает статику, но стоит telescope, который логирует в БД все обращения по этому эндпоинту (уже небольшие операции).
На php-fpm настроил opcache, посчитал и настроил пул воркеров - получил 100-120rps после прогрева opcache и самого пула.
RoadRunner - 300-320rps, при 32 воркерах. Я также получил 290rps при 20 воркерах и нагрузку на CPU порядка 2x90%.
Swoole - 335-350rps при 32 воркерах, при меньшем кол-ве он нагружал CPU на 2x90% и показывал меньше rps, но начиная от 20 воркеров выдает в среднем 300rps+.
Во время всех тестов CPU на сервере с mysql не нагружалось выше 2x30%.
Все серверы в одной сети.
Был аналогичный опыт с Nodejs, и он выдал порядка 1k/rps, но сервер был вдвое мощнее, хоть и нёс на себе ещё и mysql.
Слишком мало вводных. Какие действия, какие запросы к субд? Возможно, тормоз в коде, а не СУБД, оттого базёнка и не греется
insert информации о http запросе в БД (просто логирование)
Обсуждают сегодня