• User Newbie

    MysqlConnect - set_time_limit(0) - max_execution_time

    Ciao,
    ho un problema ricorrente e non ripetibile con uno script php che si connette a db locale e db remoti, la versione di mysql installata è la 5.1.23 a 64bit su win2003 server con Intel core 2, php versione 5.2.5
    Inspiegabilmente quando il server è sotto carico mysql provoca un eccezione (ntdll.dll) che fa cascare il servizio di mysql.. sono due mesi che le sto provando tutte per risolvere l'eccezione ma ancora niente..
    in alternativa sto cercando di aggirare il problema in questo modo:
    ho settato il riavvio automatico del servizio dopo 60 secondi (come sapete prima non è possibile) e stavo provando a settare i parametri di mysql e php in modo che l'applicazione mi resti in piedi per almeno 60 secondi prima di provocare l'arresto dello script, ho settato nello script
    set_time_limit(0)
    in pratica illimitato ,ovviamente il safe_mode del php è disattivato
    (safe_mode = Off e sql.safe_mode = Off)
    inoltre ho settato anche
    max_execution_time = 90
    in modo che lo script "resista" almeno 90 secondi prima di schiantare.. così nel frattempo torna su il servizio di mysql ma niente da fare.. ricevo l'errore di mysqlconnect e lo script si ferma..
    idee, suggerimenti??
    Grazie , Ciao


  • Super User

    posso chiedere che genere di interrogazioni stai facendo per superarei 60 secondi di esecuzione di uno script sql?

    un po' di tempo fa avevo una query decisamente stressante per il db (e il mio sta su un server un po' meno performante del tuo). Raggiungevo i 50 secondi di esecuzione.

    Un bel giorno mi sono messo a riprogettare il db inserendo gli indici effettivamente dove servivano (avevo fatto il db un po' a casaccio per via del tempo) e sono sceso da 50 sec a 3.8 secondi.

    Perdonami se la domanda può sembrarti banale ma sei certo di aver progettato il db in modo che sia al massimo delle performance possibili?


  • User Newbie

    Ciao,
    non ho problemi con una qiery in particolare, ho un sistema di replicazione multi-master funzionante da + di una anni, ma sul nuovo server sul quale è stato installato mysql va in crash ogni tanto inspiegabilmente, poichè son 3 mesi che cerchiamo di capire come mai mysql cade ne lfrattempo stavo cercando un via laternativa in modo da far scavalcare all'applicazione i 60 secondi di gap tra il crash e il riavvio, in modo che l'applicazione resti "freeze" circa 75 secondi bel caso in cui mysql non sia attivo..
    cmq nel frattempo ho trovato una possibile soluzione :

    $i = n;
    $sw = true;
    while($sw == true)
    {
    $db = mysql_connect(..);
    if($db == false && $i > 0)
    {
    print"<br>SERVER DOWN i= ".$i." parte lo sleep";
    sleep(75);
    $i--;
    }
    elseif($db === false && $i == 0)
    {
    //Tentativi terminati
    die("Il server non riparte piu");
    }
    else
    {
    //connessione avvenuta
    $sw = false;
    $result = mysql_query("SHOW SLAVE STATUS");
    }

    }

    ciao!