Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 14-12-2009, 19:37
JR-EWING
 Registrierter Benutzer
Links : Onlinestatus : JR-EWING ist offline
Registriert seit: Jul 2004
Ort: Kissing
Beiträge: 99
JR-EWING befindet sich auf einem aufstrebenden Ast
Standard curl_multi langsam

Hallo zusammen

ich experimentiere gerade mit Curl Multi herum um parallel Abfragen zu senden.
Ich habe einen eigenen Server und habe leider den Fall dass Multi Curl langsamer ist als der normale Aufruf.

Aber zuerst mal der Aufbau.....

Um das zu testet, habe ich das Script von PHP: curl_multi_add_handle - Manual
genommen und auf 30 Urls erweitert. Ich hab da Wikipedia, Amazon usw als Domains genommen.

Hier messe ich nun die Zeit. Danach mach ich das gleich nochmal, bloß mit normalen CURL Aufbau und vergleiche die Zeiten:

PHP-Code:
function curlopen($url) {
    
$ref " ";
    
$ch curl_init();
    
$user_agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";

    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_USERAGENT$user_agent);
    
curl_setopt($chCURLOPT_TIMEOUT10);
    
curl_setopt($chCURLOPT_CONNECTTIMEOUT10);
    
curl_setopt($chCURLOPT_HEADER0);
    if (
ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) {
        
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    }
    
curl_setopt($chCURLOPT_REFERER$ref);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);

    
curl_setopt($chCURLOPT_INTERFACE$_SERVER['HTTP_HOST']);//select IP


    
$result curl_exec ($ch);
    
curl_close ($ch);
    return 
$result;

Hier schauen die Zeiten auch Top aus:

HTML-Code:
1260810149.7 : ---------- : ----------START MULTI

1260810155.89 : ---------- : ----------ENDE

1260810158.89 : ---------- : ----------START SINGLE

1260810180.45 : ---------- : ----------ENDE 
Sprich normales Curl 22 Sek und Multi nur 6 Sekunden. Das hab ich ja auch erwartet.

Wenn ich nun aber die Domains tausche und 30 mal die gleiche Domain auf meinem Server abfrage, ist die parallel Abfrage langsam als die sequenzielle.

HTML-Code:
1260812134.89 : ---------- : ----------START MULTI

1260812138.98 : ---------- : ----------ENDE

1260812141.98 : ---------- : ----------START SINGLE

1260812143.96 : ---------- : ----------ENDE 
Woran kann denn sowas liegen. Gibt es irgendwo ne Einstellung für Apache wieviele Anfragen er gleichzeitig machen kann, oder woran kann denn sowas noch liegen ?

Danke schon mal im voraus

Gruß Tom
__________________
Spambot Falle
Wem das Wasser bis zum Hals steht, sollte nicht den Kopf hängen lassen.
Mit Zitat antworten