O problema era o IPv6 - por algum motivo, o DNS demorava 20 segundos para voltar ao IPv4. A remoção do suporte ao IPv6 resolveu o problema.
Mudou recentemente para um servidor diferente, alguns arquivos php usam curl e pareciam estar funcionando bem originalmente, mas não muito mais. Aqui está curl_getinfo para google.com
array(20) {
["url"]=> string(22) "http://www.google.com/"
["content_type"]=> string(24) "text/html; charset=UTF-8"
["http_code"]=> int(200)
["header_size"]=> int(504)
["request_size"]=> int(1136)
["filetime"]=> int(-1)
["ssl_verify_result"]=> int(0)
["redirect_count"]=> int(1)
["total_time"]=> float(20.098232)
["namelookup_time"]=> float(0.006034)
["connect_time"]=> float(0.020963)
["pretransfer_time"]=> float(0.020999)
["size_upload"]=> float(0)
["size_download"]=> float(5481)
["speed_download"]=> float(272)
["speed_upload"]=> float(0)
["download_content_length"]=> float(5481)
["upload_content_length"]=> float(0)
["starttransfer_time"]=> float(0.047948)
["redirect_time"]=> float(20.035229)
}
Há 1 redirecionamento e, de alguma forma, leva 20 segundos, basicamente 100% do tempo que eu espero.
Existem outros atrasos estranhos também, o login no ssh leva 20 a 30 segundos para autenticar / negar após a senha e isso costumava ser instantâneo.
Alguma idéia?
Tags networking php curl centos