Мое приложение сканирует веб-сайт. Я использую этот краулер:
В моей среде разработки задержка приемлема (3-4 секунды), но на моем производственном сервере (ec2 T2.micro Linux / Amazon) задержка составляет 30 секунд (подождите, ttfb).
Я тестировал тот же код на другом сервере (1 и 1), и есть приемлемая задержка (3-4 секунды). Так проблема не в коде, а о конфиге сервера.
Я пытался :
Я нашел такой же вопрос: PHP + Apache долгое время ожидания но я думаю, что мой том ec2 - это твердотельный накопитель EBS, поэтому проблем со временем доступа нет.
Этот нерешенный вопрос также является ссылкой на мой: https://stackoverflow.com/questions/34299038/deployed-web-application-long-ajax-wait-ttfb-time
Выписка из vmstat при запросе:
[ec2-user@ip-xxx-xx-xx-xx ~]$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 1580 534472 29696 240356 0 0 2 31 14 41 0 0 100 0 0
0 0 1580 534456 29696 240356 0 0 0 0 19 43 0 0 100 0 0
0 0 1580 534456 29696 240356 0 0 0 0 12 37 0 0 100 0 0
0 0 1580 534456 29696 240356 0 0 0 0 12 38 0 0 100 0 0
0 0 1580 534456 29696 240356 0 0 0 0 15 45 0 0 100 0 0
0 0 1580 534456 29696 240356 0 0 0 0 18 49 0 0 100 0 0
0 0 1580 534456 29696 240356 0 0 0 0 12 38 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 0 32 60 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 0 13 39 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 0 17 45 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 4 16 49 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 0 13 40 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 0 13 38 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 0 13 38 0 0 100 0 0
0 0 1580 533544 29696 240356 0 0 0 0 16 47 0 0 100 0 0
0 0 1580 533544 29700 240352 0 0 0 4 17 48 0 0 99 1 0
0 0 1580 533544 29700 240356 0 0 0 0 15 39 0 0 100 0 0
0 0 1580 533544 29700 240356 0 0 0 0 13 39 0 0 100 0 0
0 0 1580 533544 29700 240356 0 0 0 0 13 39 0 0 100 0 0
0 0 1580 533544 29700 240356 0 0 0 0 17 46 0 0 100 0 0
0 0 1580 533544 29700 240356 0 0 0 4 19 50 0 0 100 0 0
0 0 1580 533544 29700 240356 0 0 0 0 15 41 0 0 100 0 0
[ОБНОВИТЬ]
Сейчас я знаю, что эта задержка связана с запросом GuzzleHttp \ Client:
(string) $this->httpClient->get($url)->getBody();
Моя группа безопасности выглядит нормально, все разрешено для исходящих и HTTP разрешено для входящих. Моя сеть тоже выглядит нормально (40 000–50 000 байт на момент запроса).
Я думаю, это проблема mpm_prefork_module ...
[ОБНОВЛЕНИЕ 2]
Из SSH, если я завиваюсь http://google.fr, У меня нет задержки. Если я скручиваю свой конкретный URL (http://www.leboncoin.fr) задержка> 30 сек. Это характерно для моего AWS Ec2 с этим URL-адресом.