+ Rispondi alla Discussione
Risultati da 1 a 20 di 20

Uso eccessivo memoria virtuale

Ultimo Messaggio di Salentu.com il:
  1. #1
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37

    Uso eccessivo memoria virtuale

    Salve a tutti vi pongo il mio problema.
    Ho un server WIN 2003 con IIS 6, Core duo da 2.4 e 2 gb, di ram, HD 250 RAID 1.
    Da alcuni giorni un ns server ha problemi di utilizzo eccessivo della CPU, che spesso raggiunge il 100%.

    Ho intecettato il problema, isolando il sito che genera il consumo eccessivo della CPUe isolandolo su un unico APPLPOOL. Ho impostato un riciclo dello stesso ogni 500 mb di utilizzo della memoria virtuale e praticamente ciò avviene ogni 60/120 secondi. Il sito in questione genera un traffico di circa 10000 utenti al giorno e utilizza un db mysql. Inizialmente pensavo fossero dei file asp.net che generavano le thumb al volo, ma anche dopo ever eliminato l'utilizzo di questi file il risultato non è cambiato.

    Il sito è sviluppato in ASP e ho controllato tutte le pagine per verificare che non rimanessere aperte delle connessioni e che quindi il sistema andasse in stallo.

    MYSQL è impostato con 200 connessioni max.

    Adesso riesco a farlo funzionare perchè il riciclo è continuo, ma utilizzando delle sessioni praticamente non posso gestirlo.

    Qualcuno ha qualche suggerimento? Può dipenderedal numero eccessivo di utenti, sempre che si possa parlare di eccessivo?

  2. #2
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    Difficile dirlo, bisogna individuare il processo che consuma tutta quella memoria e poi capire perchè consuma tanta memoria.

    10.000 unici su un dedicato non mi pare siano chissà che, a meno che il sito non offra streaming video

    Potrebbero essere dei memory leak, in quel caso la colpa andrebbe direttamente ad iis o uno dei suoi moduli.

    In ogni caso fai un'analisi di tutti i processi e servizi in esecuzione e cerca di trovare il mangiatore di ram.

  3. #3
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    ho analizzato i log e quant'altro ma nulla, non riesco a capire dove risiede il problema.
    Avete qualche suggerimento, non so dove sbattere la testa. Credo che il problema sia dovuto a qualche connessione che magari rimane attiva, ma come individuarla nel codice asp. Le pagine che ho verificato in corrispondenza dell'episodio sono sempre diverse, e facendo io delle prove non riscontro il problema. Il mio dubbio è che l'evento si verifichi in concomitanza di + operazioni simultanee, ma non saprei come. Inoltre perchè il problema è sorto solo in questi giorni?

  4. #4
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    Dovresti dare un'occhiata al task manager, magari usare un software come Procexp http://technet.microsoft.com/en-us/s.../bb896653.aspx per verificare chi è che consuma così tanta memoria

  5. #5
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Già fatto, infatti il problema è del processo w3wp.exe (IIS) del sito in questione che utilizza la CPU. Volevo capire se esiste un metodo che mi dice cosa sia accaduto in quel preciso momento sulla macchina

  6. #6
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    Un metodo semplice e preciso purtroppo non c'è.

    Una breve panoramica la danno sul sito MS http://www.microsoft.com/technet/pro....mspx?mfr=true

    Un'ulteriore verifica che è possibile fare è incrociare i dati riguardanti i picchi di consumo della RAM, col traffico del sito web e se è possibile modificare lo script/gli script asp in modo che logghino le loro attività ( richieste, timestamp, ecc... )

    Almeno così si può arrivare ad avere un quadro abbastanza completo della situazione.

    Sarebbe una buona idea creare uno script che verifica il consumo di memoria da parte di mysql. Ma realisticamente non credo che mysql sia il problema.

  7. #7
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Facendo un confronto far i log e l'orario dei picchi ho notato che l'utilizzo di una pagina in particolare, che tra le altre cose utilizza una funzione jquery per la gallery. Ora mi chiedo se potrebbe essere quella funzione a rallentare il sistema. In particolare lo script è la gallery highslide. Questa pagina è stata controllata e non mi risultano connessioni appese. Tra l'altro questa è la pagina + visitata e ciò mi porta a credere che sia qui il problema. Come potrei fare un log degli eventi generati della stessa?

  8. #8
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    L'unico modo è modificare il codice dello script.

  9. #9
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Ho verificato tutti gli script, modificandoli all'occorrenza. Ma il risultato non è cambiato. Ho anche provato a lanciarele pagine visualizzate nel fase del blocco come da log, ma nessuna di queste pagine ha fatto impennare l'uso della CPU. Cosa molto strana è che la memoria è come se rimanesse bloccata per un arco di tempo che varia da secondi ad alcuni minuti per poi azzerarsi dopo un po.

    Potrebbe essere un problema di server o di banda?
    Ultima modifica di Leonov; 06-08-09 alle 12:09 Motivo: Maiuscola. ;-)

  10. #10
    Esperto L'avatar di ceccus
    Data Registrazione
    Oct 2006
    Messaggi
    921
    Ciao Salentu.com,
    e se fosse semplicemente che la pagina riceve più accessi negli ultimi tempi, magari per un riposizionamento nella serp di google?

    Si sa che gli script più o meno preconfezionati mangiano risorse...

    Perché non verifichi il numero di accessi giornalieri alla pagina prima e dopo il problema?

  11. #11
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Le pagine sono state create da me stesso, e ho verificato il tutto nei minimi particolari, compresa la chiusura di tutte le connessioni. é possibile che il problema sia dovuto al numero di accessi, ma ho verificato il numero di accessi sulle singole pagine nell'istante in cui si verifica il problema e al max ho registrato 10 accessi contemporanei sulla pagina. Ho fatto dei test per verificare anche il consumo nell'istante in cui apro le pagine e ogni pagina appena completato il caricamento svuota la memoria.

    Come detto prima l'aumento può essere quantificato in un 10%, ma non +.

  12. #12
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    Il massimo che puoi fare è appunto verificare gli accessi e controllare la correttezza del codice.

    Se il problema persiste ci sono dei memory leakage in IIS. In questo caso purtroppo puoi farci ben poco.

    L'ultima cosa che potresti fare è modificare lo script incriminato e aggiungere un pò più di verbosità. Gli fai scrivere in un file la ram consumata in un dato momento, registri il timestamp delle visite, gli fai tracciare una mappa delle varie variabili allocate e del loro consumo di memoria. Di più non puoi fare.

  13. #13
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Eccomi di nuovi qui, con il solito problema. Vi aggiorno un po sulla situazione. Il problema è dovuto al traffico generato da un sito in particolare, ma credo che il problema fondamentale sia dovuto a mysql

    In pratica da quello che ho capito quando ci sono molti accessi questi congelano la memoria e quindi l'intero server, che poi riprende a funzionare quando questa si sblocca. In pratica le pagine si aprono ma a volte impiagano anche 1 minuto.

    Ho visto che mysql ha dei picchi di traffico di 35 mb (questo l'ho verificato dal pannello di mysql administrator) anche se la webfarm dove risiede il server mi dice che il picco massimo di banda utilizzata è di 7mb.

    Il server risiede su una linea a 10mb dedicati,

    qui di seguito riporto la mia configurazione mysql, magari ci sono degli errori nella stessa che portano a ciò.

    Codice:
     
    [client]
    port=3306
    [mysql]
    default-character-set=latin1
     
    [mysqld]
    port=3306
     
    default-character-set=latin1
    default-storage-engine=myisam
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
     
    max_connections=200
     
    query_cache_size=0
     
    table_cache=64
     
    tmp_table_size=100M
     
    thread_cache_size=8
    #*** MyISAM Specific options
    myisam_max_sort_file_size=100G
    myisam_max_extra_sort_file_size=100G
     
    myisam_sort_buffer_size=199M
     
    key_buffer_size=256M
     
    read_buffer_size=64K
    read_rnd_buffer_size=256K
     
    sort_buffer_size=256K
     
    #*** INNODB Specific options ***
     
    innodb_additional_mem_pool_size=7M
    innodb_flush_log_at_trx_commit=1
     
    innodb_log_buffer_size=4M
    innodb_buffer_pool_size=328M
     
    innodb_log_file_size=164M
     
    innodb_thread_concurrency=8
    wait_timeout=20
    Come potete vedere ho impostato il valore wait_timeout a 20 secondo, in modo da svuotare eventuali connessioni rimaste aperte o bloccate.

    Quello che ho notato e che da quando si è verificato il problema la connessione ftp si disconnette o si congela prima del timeout impostato da sistema. Altra cosa anomala, pur avendo questi disservizi le visite sono aumentate in questi giorni.

  14. #14
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    35 MB non mi sembrano incredibili per mysql, anzi sono pochini.

    Se c'è un problema del genere vuol dire che asp mantiene le vecchie connessioni aperte invece di chiuderle, per cui ovviamente mysql è costretto a gestire sempre più connessioni e consuma sempre più memoria.

  15. #15
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Avevo pensato la stessa cosa e ho controllato le connessioni una ad una ma vengono tutte chiuse. inoltre guardando dal pannello di mysql il limite max raggiunto di connessioni aperte è stato di 64, che non mi sembra eccessivo.
    Ultima modifica di Leonov; 06-08-09 alle 12:08 Motivo: Maiuscola. ;-)

  16. #16
    Esperto L'avatar di ceccus
    Data Registrazione
    Oct 2006
    Messaggi
    921
    Dico una banalità probabilmente: hai verificato se c'è qualche query in particolare che crea problemi? Magari effettuata su qualche campo non indicizzato?

  17. #17
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    Quindi si tratta proprio di traffico. Addirittura siamo a 64 connessioni aperte, ben al di sotto del limite impostato nel file di configurazione.

    E consuma 35 MB di memoria che francamente sono un'inezia.

  18. #18
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Effettivamente il problema e sorto nelle ultime 2 settimane, con l'aumento delle visite. Sul sito sono presenti 150 siti che in questo periodo generano un traffico di 25000 accessi.

    Potrebbe essere un problema di processore, che non riesce a gestire tutto questo traffico. Il processore è un intel E6600 2,4 ghz.
    Ultima modifica di Leonov; 05-08-09 alle 19:55 Motivo: Maiuscola. ;-)

  19. #19
    Moderatore L'avatar di paolino
    Data Registrazione
    Apr 2005
    Località
    San Cipriano Beach
    Messaggi
    5,059
    Il processore non è certo un mostro e ovviamente tutto dipende dal carico a cui è sottoposto.

    Puoi monitorare l'attività della cpu e vedere come si comporta. Però 150 siti e 25000 unici metterebbero ko chiunque.

  20. #20
    User L'avatar di Salentu.com
    Data Registrazione
    May 2008
    Località
    Salento
    Messaggi
    37
    Ultima modifica di Andrez; 06-08-09 alle 12:51 Motivo: Per favore, ricordare la lettera maiuscola all'inizio di ogni frase. :-)

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.