Visualizzazione dei risultati da 1 a 9 su 9

Discussione: problema di overload

  1. #1
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    problema di overload

    ho aggiornato un sito che è in hosting presso un'azienda. Tramite il manager (codice vecchio, che non ho fatto io ) vengono inseriti i contenuti per il sito principale .it e anche per gli altri due .com e .ru. Quest'ultimi due sono sullo stesso pc dove risiede il principale.

    L'hosting ha comunicato che il sito fa richiesta di troppe query per pochi visitatori, ed ha mandato in overload in server utilizzando il 100% della cpu. Alla prossima volta staccano temporaneamente l'account.

    Cosa posso fare, dove posso cercare per capire da quale parte di codice proviene questo overload?

    Qualsiasi aiuto/consiglio è ben accetto, grazie
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  2. #2
    Un metodo è attivare un profiler per controllare in quale punto dello script vengono consumate la maggior parte delle risorse (in termini di codice PHP).

    Per il carico MySQL, crea una funzione ad-hoc (es. my_mysql_query()) e sostituiscila a tutte le chiamate mysql_query(). Questa funzione dovrebbe creare un log per ogni richiesta con il numero di query. Poi navighi un po' sul sito e controlli i log per vedere quale tipo di richieste esegue un numero insoluto di query.

    Poi passi all'ottimizzazione.

  3. #3
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da filippo.toso
    Un metodo è attivare un profiler per controllare in quale punto dello script vengono consumate la maggior parte delle risorse (in termini di codice PHP).
    tipo questo?

    http://particletree.com/features/php-quick-profiler/

    Originariamente inviato da filippo.toso
    Per il carico MySQL, crea una funzione ad-hoc (es. my_mysql_query()) e sostituiscila a tutte le chiamate mysql_query(). Questa funzione dovrebbe creare un log per ogni richiesta con il numero di query. Poi navighi un po' sul sito e controlli i log per vedere quale tipo di richieste esegue un numero insoluto di query.
    questa è una prova che posso fare

    Originariamente inviato da filippo.toso
    Poi passi all'ottimizzazione.
    il codice attuale è vecchissimo, scritto male, senza funzioni/classi, codice html/css misto a codice php

    e loro non hanno intenzione di spendere
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  4. #4
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    la prova più veloce che posso fare è fare un log nel momento della query? Per cercare di avere velocemente un responso e cercare di trovare l'origine del bug
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  5. #5
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    up
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  6. #6
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    ho notato che viene usato (dentro apri_con) mysql_pconnect e dentro la funzione che chiude la connessione c'è questo

    Codice PHP:
    function xchiudicon($frec,$fcon
    {     
    $com mysql_free_result($frec) or die("Free del database non riuscita: " mysql_error()); 
    #$com = mysql_close($fcon);

    la riga di CLOSE è commentata, ma tanto non funziona su mysql_pconnect. Come faccio a chiudere la connessione di mysql_pconnect? Potrebbe essere questo il problema?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  7. #7
    Per quanto riguarda l'utilizzo delle connessioni persistenti, ti rimando al manuale ufficiale:

    http://www.php.net/features.persistent-connections

    Per quanto riguarda il problema sollevato dal tuo provider, la frase "il sito fa richiesta di troppe query per pochi visitatori" è piuttosto chiara: DEVI ridurre il numero di query per richiesta HTTP. Sul come, mi sono già espresso in precedenza.

  8. #8
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da filippo.toso
    Per quanto riguarda l'utilizzo delle connessioni persistenti, ti rimando al manuale ufficiale:

    http://www.php.net/features.persistent-connections
    avevo già letto quella pagina, ho anche cercato un po su google. Ma non ho trovato la risposta alla mia domanda: potrebbe essere la connessione persistente il problema di tutto? Cambiando in mysql_connect potrebbe aiutare?

    Originariamente inviato da filippo.toso
    Per quanto riguarda il problema sollevato dal tuo provider, la frase "il sito fa richiesta di troppe query per pochi visitatori" è piuttosto chiara: DEVI ridurre il numero di query per richiesta HTTP. Sul come, mi sono già espresso in precedenza.
    proverò con un log nella funzione della query, vediamo cosa succede
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  9. #9
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da filippo.toso
    Per il carico MySQL, crea una funzione ad-hoc (es. my_mysql_query()) e sostituiscila a tutte le chiamate mysql_query(). Questa funzione dovrebbe creare un log per ogni richiesta con il numero di query. Poi navighi un po' sul sito e controlli i log per vedere quale tipo di richieste esegue un numero insoluto di query.
    ho messo un log della query nella funzione dove viene eseguita, grazie del consiglio.

    Ed ho scoperto che, nelle pagine di listing dei prodotti, vengono eseguite circa 35 query a botta

    10 prodotti per pagina, per ogni prodotto è stata fatta una query
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.