Domanda

Ho un'applicazione web, scritta in ColdFusion, che inizia periodicamente a utilizzare il 100% della CPU del server e blocca il servizio ColdFusion.

Dato che non sono stato in grado di riprodurre il problema da solo, vorrei trovare un'utilità che mi avviserà via e-mail quando l'utilizzo della CPU inizia a salire, quindi posso salire sul server, guardare FusionReactor per vedere cosa c'è e identificare il codice che si comporta male.

Ho cercato su Google e non sono stato in grado di trovare un'utilità adatta, quindi ho pensato di chiedere se altri programmatori hanno trovato uno strumento in grado di eseguire questo tipo di monitoraggio. Date le specifiche delle mie esigenze, preferirei non scrivere il mio strumento di monitoraggio.

Se hai altri suggerimenti per affrontare il problema generale, mi piacerebbe anche ascoltarli.

Risposte alle risposte:

L'uso di Windows perfmon per attivare una riga di comando sembra promettente. Qualcuno può indicarmi un tutorial su come farlo?

Non abbiamo un sistema di monitoraggio impostato per ricevere trap SNMP.

Stiamo eseguendo ColdFusion 8 Standard Edition, che non include gli strumenti di monitoraggio delle prestazioni di ColdFusion - solo Enterprise include quelli.

La risposta di Peter Boughton probabilmente mi consentirà di risolvere il problema, ma non mi aiuta a risolverlo in modo proattivo quando la CPU inizia a spuntare, quindi sto ancora cercando una soluzione di notifica.

È stato utile?

Soluzione

Ho avuto un problema simile qualche settimana fa e sono stato indirizzato a un programma chiamato AlwaysUp.

http://www.coretechnologies.com/products/AlwaysUp/

Monitora qualsiasi processo mediante qualsiasi combinazione di:

  • Utilizzo della memoria
  • Utilizzo della CPU
  • Mancanza di risposta
  • Esegui uno script personalizzato per determinare se deve essere ripristinato

Da qui è possibile riavviare il servizio o inviare e-mail di notifica oppure eseguire uno script per registrare le cose, ecc.

Hanno una demo di 30 giorni, sono stato venduto il 2 ° giorno .. Una buona soluzione rapida mentre arrivi in ??fondo al problema.

Altri suggerimenti

Su Windows, è possibile utilizzare gli strumenti di prestazioni e monitoraggio (perfmon) forniti di serie con Windows. Quando la CPU raggiunge un certo punto, può attivare un avviso SNMP che può essere raccolto dalla maggior parte degli strumenti di monitoraggio del sistema e avvisare in tal modo. Può anche eseguire un comando o eseguire una varietà di altre cose utili che potrebbero aiutarti a inchiodarlo.

Un'altra alternativa è disponibile se si esegue Coldfusion 8: il monitor delle prestazioni. Puoi impostare avvisi per inviarti un'email, chiamare un altro CFC ecc. Per criteri diversi.

Uso molto il monitor del server - è un ottimo strumento anche se non ho usato troppo gli avvisi che probabilmente vale la pena esaminare in quanto sembrano facili da configurare.

Per quanto riguarda gli approcci generali ...

Nella nostra azienda utilizziamo Windows Perfmon da un server per eseguire il polling di tutti i nostri server CF ogni 30 secondi per ottenere metriche quali CPU totale e tempo medio di risposta. Registriamo questo in un file CSV. Ogni pochi minuti viene eseguita un'attività pianificata che legge i dettagli di questi file e li salva in una tabella DB. Quindi tronca i file in modo che non diventino troppo grandi.

Alla fine, una volta al giorno, riceviamo un rapporto che descrive in dettaglio tutte le metriche del server al nostro dipartimento tecnico che rappresenta graficamente la CPU e il tempo medio di risposta per tutti i nostri server.

Troviamo che questo sia un ottimo modo per mantenere le prestazioni del server nella consapevolezza degli sviluppatori e individuare le tendenze (come un cattivo utilizzo della CPU) in anticipo. Lo abbiamo trovato molto efficace perché non puoi sapere se stai andando male fino a quando non inizi a misurare le tue metriche.

Non è necessario che questa notifica sia necessaria: FusionReactor ha file di registro, quindi è possibile verificarli dopo che si è verificato e identificare gli script in esecuzione al momento.

E se non sei sicuro di quando sta succedendo, sono abbastanza sicuro che uno dei registri contenga memoria e utilizzo della CPU, anche se non riesco a ricordare quali sono i nomi in questo momento, ma ho una sbirciatina nel registri e dovresti trovare le informazioni pertinenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top