Ускорение работы curl и php с vk.api

Сегодня я попытаю счастье ещё раз написать полезную статью для сообщества.

Недавно где-то недели 2 назад, у меня с моим другом возникла идея одного сервиса на базе контакта. Немного обсудив идею, я сразу же ринулся в бой с кодом. Реализовал авторизацию, запросы к api, но одно мне не давало покоя. Очень медленная скорость работы. Сегодня я нашёл решение, казалось бы очевидное, но не всегда.

И так, если интересно, то прошу под кат.

У меня есть свой облачный сервер, на centos 6. Я долго ломал голову и гуглил в чём же может быть причина. Сегодня мне ответил на это wget.

Как проверить есть ли у вас такая же проблема? Достаточно в консоли набрать

Wget –O – http://api.vk.com/


На это wget, казалось бы, должен вывалить 302 или страницу, но этого не произошло у меня. И тут я понял причину того что так долго заставляло cUrl соединятся. Имя врага ipv6.

Да именно так, cUrl как я понимаю, пере подключается на ходу с ipv6 на ipv4. И это может вызывать тормоза, жуткие тормоза, особенно если не указан CURLOPT_CONNECTTIMEOUT.

Теперь кульминация, как избавиться от проблемы? Есть несколько способов:
  1. скомпилировать php с директивой –disable-ipv6
  2. curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
  3. добавить запись в /etc/hosts
Я выбрал второй, но проверил догадку почти третим.

Теперь у меня другая проблема, упор в 3 запроса на секунду, раньше этого было не заметно, теперь запросы к api выполняются моментально.

PS. Надеюсь, в следующих более обширных статьях я смогу рассказать о нашем сервисе и каких ещё проблемах пришло столкнуться при его создании.
С Уважением, специально для Хабра сообщества.


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.