Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456

    connessiona mysql su server esterno lentissima

    Ciao, ho un sito gestito su 2 server: su uno girano le pagine, su l'altro il db.
    Il sito è estremamente lento, ho messo dei timer e vedo che la lentezza è dovuta alla connessione al db che prende il 96% del tempo utilizzato.
    Purtroppo non riesco a capire da cosa deriva questa lentezza nella connessione al db, qualcuno di voi ha un'idea?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    up

  3. #3
    beh, ci possono essere tante risposte ma la più scontata è ... come sono collegati? ci sta un cavetto di rete tra le due macchine su una rete a 1000?

  4. #4
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273

    Re: connessiona mysql su server esterno lentissima

    Originariamente inviato da matpirata
    Ciao, ho un sito gestito su 2 server: su uno girano le pagine, su l'altro il db.
    Il sito è estremamente lento, ho messo dei timer e vedo che la lentezza è dovuta alla connessione al db che prende il 96% del tempo utilizzato.
    Purtroppo non riesco a capire da cosa deriva questa lentezza nella connessione al db, qualcuno di voi ha un'idea?
    grazie
    ma è la connessione al db o il db?
    prova a fare una query lanciata dal web server e direttamente sul db per verificare eventuali differenze.
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    il problema è proprio la connessione al db..

    come ho detto prima ho messo dei timer prima e dopo la funzione mysql_connect e mi dice che tra un tempo e l'altro passano diversi secondi (mentre i tempi delle singole query spesso sono di pochi millisecondi)

    tramite phpmyadmin, visualizzando i processi in esecuzione, ci sono spesso tante richieste di connessione al db che restano in coda

    i due server sono collegati direttamente tramite un cavo di rete su una seconda scheda di rete..

    il numero di connessioni simultanee è sempre dentro i limiti (il massimo è stato 150, il limite è 200), ogni connessione/pagina esegue una decina di query

    la ram per entrambi i server è abbondantemente sotto i limiti,
    il carico del processore del server mysql è praticamente zero (viene usato solamente come server mysql e ha un unico database, della dimensione di circa 200mb )


    e soprattutto fino ad qualche settimana fa questo problema non era cosi evidente, nel frattempo ho lavorato molto sull'ottimizzazione delle query, riducendo molto il numero di query chiamata e la pesantezza di tali query ed i tempi di tali operazioni
    (le visite al sito piu o meno sono rimaste costanti se non peggiorate a causa di questi problemi)


  6. #6
    beh, considera che:
    - la frammentazione dei dischi aumenta a causa dell'utilizzo e questo comporta dei rallentamenti in mysql
    - la struttura delle tabelle del database possono essere il motivo, soprattutto se gli indici son messi male o non ci sono proprio
    - la velocità della rete quant'è? 10, 100 o un 1gbit?

    Comunque prova a lanciare una query DIRETTAMENTE sulla macchina dove sta mysql per capire se è un problema o meno di comunicazione

    Inoltre che sistema operativo monta la macchina col database?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    la velocità della rete mi pare sia 100

    i server hanno entrambi linux centOs come sistema operativo


    ho provato ora a lanciare la stessa query dal sito e dal server mysql:

    QUERY:
    SELECT pm.*, u.user_on, u.user_active, u.user_gender, u.username, u.user_id, u.user_foto_def FROM user_pm pm, user u WHERE pm.pm_user_dest = 47 AND pm.pm_dest_del = 0 AND pm.pm_user_mitt = u.user_id ORDER BY pm.pm_data DESC LIMIT 0, 15

    nella tabella pm gli indici sono
    - pm_user_dest pm_dest_del
    - pm_user_mitt pm_mitt_del
    chiave primaria pm_id

    ovviamente user_id è la chiave primaria della tabella user

    tabella user: 50000 righe
    tabella pm: oltre le 100.000

    tempo dal sito: 28-30ms (ho fatto diversi tentativi e i tempi sono sempre gli stessi)
    tempo dal server mysql: 24-26ms (idem)


    ho preso in questione una delle query che piu spesso viene richiamata

  8. #8
    Ecco, il problema allora non è la rete bensì la mole di dati che è gestita male dal software o e strutturata male o entrambi

    se vuoi un consiglio personale, se non hai scritto tu il software, cerca qualcuno per sistemarti questi problemi perché possono solo andare a peggiorare

    150.000 records sono pochi per un db come myqsl e come dici tu CPU e MEMORIA non vengono nemmeno usati a pieno

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456
    scusami, ma se il tempo di esecuzione delle query è praticamente identico se lo faccio dal sito o se lo faccio direttamente dal server, come può essere un problema di mole di dati?

    comunque il codice è opera mia quindi eventualmente saprei metterci le mani

  10. #10
    ehm, appunto che il tempo è uguale

    perché di certo non dipende dall'intasamento di rete ma esclusivamente dipende da mysql quindi o dalla mole di dati o dalla struttura delle tabelle

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 © 2024 vBulletin Solutions, Inc. All rights reserved.