Увеличение параллелизма запросов API с использованием PHP - PullRequest
0 голосов
/ 16 июня 2020

Я разработал приложение, использующее PHP для приема запросов api. Я использовал Apache Benchmark, чтобы проверить максимальное количество одновременных запросов, которые он может обрабатывать в секунду с другого удаленного сервера. Я использовал параллелизм до 200 с максимальной нагрузкой 10000. Наилучший запрос, который он может обработать, - 139 запросов в секунду. Я хочу его увеличить. Как я могу это сделать?

Конфигурация моего сервера:

Intel Xeon E3-1230v6 - 4 c / 8 t - 3.5 GHz / 3.9 GHz
RAM: 32GB
Storage: SSD 480GB x 2 (in RAID-1 soft raid)
Network bandwidth: 500Mbps

OS: Ubuntu 18
Server Management: Plesk Web Pro (Apache-Nginx)
PHP Version: 7.3
Database: MariaDB 10.1.44
Database max allowed concurrent connection: 2000
My server Ping Time from test server 200ms.

Максимальное время обработки моего скрипта составляет 0,04 ~ 0,06 секунды.

I ' я пробовал с NodeJS, что интересно, вместо увеличения, он снижает уровень запросов до 15 запросов в секунду.

Я использовал Redis Cache (размещенный с Docker), и все же безуспешно. Уровень такой же, как 138 ~ 139.

Мне действительно нужно установить его между 500 ~ 1000. Как я могу этого добиться?

У меня нет изменений на уровне ОС. Все установлены по умолчанию.

Заранее благодарим за чтение.

1 Ответ

0 голосов
/ 17 июня 2020

PHP - это синхронный язык, который использует интерпретатор для запуска своих скриптов. Каждый запрос, поступающий на PHP CGI, будет ждать завершения предыдущего запроса. PHP использует ProcessManager (PHP -FPM / Apache mod_ php) для решения этой проблемы. Попробуйте увеличить количество активных работников

...