Я разработал 2 мыльных веб-сервиса в своем приложении Zend. В моей среде разработки (MAMP на Mac 8 ГБ ОЗУ i7) производительность действительно хорошая. При развертывании его на моем сервере Ubuntu LAMP (1 ГБ ОЗУ на 1 процессор) производительность сильно снижается. Это более чем в 10 раз медленнее.
У меня есть Java-клиент (eclipse автоматически сгенерированный клиент из wsdl). Проблема в том, что первый вызов всегда в 4 раза медленнее, чем второй. Это относится как к моей MAMP, так и к LAMP.
MAMP
- Первый звонок 400 мс
- Второй звонок 100 мс
ЛАМПЫ
- Первый звонок 2 000 мс
- Второй звонок 400 мс
Я просто дублирую запрос, чтобы запрос был одинаковым для первого и второго вызова.
Если я запускаю клиент LAMP вручную несколько раз, первый вызов будет выполнен примерно через 900 мс. Такое ощущение, что приложение Zend должно что-то «запустить» во время первого вызова.
Кто-нибудь знает, как мне это обойти? Что я пробовал:
- Убедитесь, что wsdl кэшируется
- Установленный xcache (не поставляется с LAMP)
- Чтение настроек учебников
Заранее спасибо!