2008-11-12 19 views
8

Mam aplikację internetową napisaną w ColdFusion, która okresowo zaczyna wykorzystywać 100% procesora serwera i powoduje awarię usługi ColdFusion.Powiadomienie o procesorze systemu Windows dla niewłaściwie działającej aplikacji ColdFusion

Ponieważ nie udało mi się odtworzyć problemu sam, chciałbym znaleźć narzędzie, które powiadomi mnie przez e-mail, gdy użycie procesora zaczyna się wspinać, więc mogę przeskoczyć na serwer, spójrz na FusionReactor, aby zobaczyć co się dzieje i wskaż niewłaściwie działający kod.

Mam Google'a i nie mogę znaleźć odpowiedniego narzędzia, więc pomyślałem, że zapytam, czy inni programiści znaleźli narzędzie, które może wykonać tego rodzaju monitorowanie. Biorąc pod uwagę specyfikę moich potrzeb, wolałbym nie pisać własnego narzędzia do monitorowania.

Jeśli masz inne sugestie dotyczące ogólnego problemu, bardzo chciałbym je usłyszeć.

Odpowiedzi na odpowiedzi:

korzystania z systemu Windows perfmon wywołać wiersz polecenia brzmi obiecująco. Czy ktoś może wskazać mi samouczek, jak to zrobić?

Nie mamy systemu monitorowania skonfigurowanego do odbioru pułapek SNMP.

Używamy wersji ColdFusion 8 Standard Edition, która nie zawiera narzędzi do monitorowania wydajności ColdFusion - tylko Enterprise obejmuje te.

Odpowiedź Petera Boughtona prawdopodobnie pozwoli mi rozwiązać problem, ale nie pomaga mi to aktywnie reagować na problem, gdy procesor zaczyna się podnosić, więc wciąż szukam rozwiązania do powiadamiania.

Odpowiedz

4

Kilka tygodni temu miałem podobny problem i zostałem skierowany do programu o nazwie AlwaysUp.

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

Monitory dowolny proces, w dowolnej kombinacji:

  • useage pamięci
  • Wykorzystanie procesora
  • brak reakcji
  • uruchomić skrypt niestandardowy celu ustalenia, czy należy zresetować

Stąd możesz albo ponownie uruchomić usługę, albo wysłać e-maile z powiadomieniami, albo uruchomić skrypt, aby rejestrować rzeczy, itp.

Mają 30-dniową wersję demonstracyjną, zostałem sprzedany 2-go dnia. Dobra szybka naprawa podczas dojdziesz do sedna problemu.

+0

Dzięki, to brzmi jak to, czego szukam, aby rozwiązać ten uporczywy, ale okazjonalny problem. – davidcl

+0

Bez problemu. Nienawidzę pracy hackowej, ale to rozwiązało problem także dla mnie. Jeśli kiedykolwiek stanie się większym problemem, zwrócę na to uwagę. –

2

W systemie Windows można korzystać z narzędzi do monitorowania wydajności (perfmon), które są standardowo dostępne w systemie Windows. Gdy procesor osiągnie określony punkt, może wyzwolić powiadomienie SNMP, które może zostać wykryte przez większość narzędzi do monitorowania systemu i ostrzegać w ten sposób. Może również uruchomić polecenie lub wykonać wiele innych użytecznych czynności, które mogą pomóc ci go przygwoździć.

+0

Czy możesz podać więcej szczegółów na temat wykonywania polecenia perfmon? Myślę, że spełniłoby to moje potrzeby. – davidcl

1

Kolejna możliwość jest dostępna, jeśli korzystasz z Coldfusion 8 - monitora wydajności. Możesz skonfigurować alerty, aby wysłać Ci wiadomość e-mail, zadzwonić do innej CFC itd., Aby uzyskać inne kryteria.

Bardzo często korzystam z monitora serwera - jest to świetne narzędzie, mimo że nie korzystałem z alertów zbyt wiele, prawdopodobnie warto się nim zajrzeć, ponieważ wyglądają na łatwe w konfiguracji.

Co do ogólnych podejść ...

W naszej firmie używamy systemu Windows Perfmon z jednego serwera do sondowania wszystkie nasze serwery CF co 30 sekund, aby uzyskać pewne dane, takie jak całkowita CPU i średni czas odpowiedzi. Logujemy to do pliku CSV. Co kilka minut uruchamiane jest zaplanowane zadanie, które odczytuje szczegóły tych plików i zapisuje je w tabeli DB. Następnie obcina pliki, aby nie stały się zbyt duże.

Wreszcie, raz dziennie otrzymujemy raport wysłany z wyszczególnieniem wszystkich danych serwera do naszego działu technicznego, który wykreśla procesor i średni czas odpowiedzi dla wszystkich naszych serwerów.

Uważamy, że jest to świetny sposób na szybkie utrzymanie wydajności serwera w świadomości programistów i zauważenie trendów (takich jak słabe wykorzystanie procesora). Stwierdziliśmy, że jest bardzo skuteczny, ponieważ nie możesz się zorientować, czy osiągasz dobre wyniki, dopóki nie zaczniesz mierzyć swoich danych.

1

Nie potrzebujesz tego powiadomienia, ponieważ tak się dzieje - FusionReactor posiada pliki dziennika, dzięki czemu możesz sprawdzić je po tym, jak to się stało i zidentyfikować skrypty uruchomione w tym czasie.

Jeśli nie jesteś pewien, kiedy to się dzieje, jestem pewien, że jeden z dzienników zawiera pamięć i użycie procesora - choć nie pamiętam, jak się teraz nazywają, ale mają kłopoty dzienniki i powinieneś znaleźć odpowiednie informacje.

+0

Dobra uwaga. Być może będę musiał rozszerzyć rejestrowanie FR, aby upewnić się, że dzienniki żądań są przechowywane wystarczająco długo, aby skorelować je z dziennikami zasobów, ale to doskonały punkt. – davidcl