PHP ile Curl - Çok yavaş

2 Cevap php

Tümü,

Ben bir JSON isteği döndüren bir URL istemek zorunda. Bunu yapmak için PHP ve CURL kullanıyorum. Şu anda istek ve yanıt için yaklaşık 3-4 saniye sürer.

Aşağıdaki kıvırmak kodudur

    $ch = curl_init();
    $devnull = fopen('/tmp/curlcookie.txt', 'w');

    curl_setopt($ch, CURLOPT_STDERR, $devnull);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, $desturl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);

    $ret = curl_exec($ch);

    curl_close($ch);

    if ($devnull)
    {
        fclose($devnull);
    }

Curl_getinfo dizisi aşağıdadır

Array
(
    [url] => https://xx.xx.xxx.xx/portalsite/tester
    [content_type] => application/json
    [http_code] => 200
    [header_size] => 198
    [request_size] => 835
    [filetime] => -1
    [ssl_verify_result] => 20
    [redirect_count] => 0
    [total_time] => 2.054561
    [namelookup_time] => 6.5E-5
    [connect_time] => 0.016048
    [pretransfer_time] => 0.123947
    [size_upload] => 699
    [size_download] => 46735
    [speed_download] => 22746
    [speed_upload] => 340
    [download_content_length] => 0
    [upload_content_length] => 0
    [starttransfer_time] => 1.743973
    [redirect_time] => 0
)

Ben nasıl CURL işlem süresi hızlandırabilir?

Teşekkürler

2 Cevap

bu sunucu yanıt için çoğu zaman bekliyor gibi görünüyor (starttransfer_time - = 1,620026 pretransfer_time) ... belki sunucu zaman alır, bazı veritabanı veya başka bir işlem yapıyor?

Ben cURL bir revers DNS arama yapmayı deneyin bulduk tcpdump-ing zaman, sayfayı almak için yaklaşık 5 saniye sürdü cURL kullanarak, hızlı oldu wget (1 saniye max) kullanarak, böyle biraz problem vardı, ve eğer Sunucu revers DNS sizi yavaşlatacak tescilli yok, ben öyle cURL kullanarak bu siteye her istek şimdi çok hızlı gider benim yerel DNS sunucusu üzerinde bir ters DNS kurmak. Ben cURL ayarlarından revers DNS arama devre dışı bırakmak için bir yol bulamadık.

Benim sugestion bu kadar uzun süre bekleyen nerede görmek için Alt tarama etmektir.