Есть 2 сервера.
1ый с веб-приложением на php 5.3, apache 2.2.23, linux 2.6.32, MySQL 5.1, для работы с bitcoin используется библиотека
https://github.com/mikegogulski/bitcoin-php, она работает с помощью cURL.
2ой с демоном bitcoin.
1ый посылает запросы ко 2му, если нужно
а) проверить соединение с bitcoind (проверяется раз в 15 секунд)
б) проверить был ли совершен входящий платеж для указанного биткоин-аккаунта. (так же кажды 15 секунд)
Проблемы начинаются, когда подключается несколько пользователей. Демон bitcoin сначала долго возвращает ответ, а потом просто перестает отвечать на запросы.
Проверки а) и б) инициируются на стороне клиента, и сейчас при 10-15 пользователях получается, что если они просто открывают сайт, то количесвто Entry Processes достигает 5-6, а если начинаются какие-то еще действия, то происходит превышение лимита Entry Processes (лимит 25), т.е. как я понимаю, одновременно запущено 25 скриптов на обработку. Причем если закомментить запросы к биткоину, превышения лимита не происходит.
Насколько я выяснил (при помощи xdebug и WinCacheGrind), проблема в медленной обработке php-скриптов, выполняющих запросы к bitcoind, причем именно в php::exec_curl, она занимает по 500ms времени на запрос.
Вопросы:
1. Нормально ли, что запросы к bitcoind занимают столько времени, можно ли это время уменьшить?
2. Как можно снизить число Entry Processes?
3. Есть ли варианты проверки поступления входящих платежей без периодических запросов к демону? Желательно без сторонних сервисов.
Буду рад любой помощи. Идеально было бы найти наименее трудозатратное решение, короче вариант "Все переделать!" не принимается