środa, października 17, 2012

Zły dzień programisty

Zły to dzień dla programisty gdy więcej napisze linii tekstu w mailach niźli kodu w programie....
Się więc zapytowywuję... czemu?
Po co istnieją programy pocztowe? Albo szefowie? ;-)

Jeden plus, dokonałem dziś obserwacji, w terenie, dzikiego Garbage Collectora zdybałem w jego środowisku naturalnym ;-)
Monitor na serwerze (z 60 linii w Pythonie ;-)) raportował jak oszalały, że serwer leży bo on się w ciągu 1.5 sekundy nie może do niego dobić (loguje się po prostu do konsoli Tomcata i zbiera dane ze strony ;-)).
A, że to sytuacja zła to zbiera też stack-trace'y z JVM (jstack Twoim przyjacielem jest ;-)).
Przejrzałem stack-trace'y i nic podejrzanego tam nie znalazłem, to zajrzałem do logów serwera HTTP i okazało się, że ostatni klient gadał do serwera 4 minuty wcześniej, a kolejny odezwał się dopiero z 20 po tym jak się znalazł i zaczął odpowiadać (to środek nocy był, choć rzeczywiście nietypowo spokojny).
Sprawdziłem jeszcze logi zużycia CPU i pamięci przez JVM.
I tu znalazłem odpowiedź ;-)
W tym czasie, choć nie było nikogo chętnego do gadania z serwerem zużycie CPU sięgało 7.5% a zużycie pamięci malało ;-)

Po prostu gdy jest duże obciążenie serwera to wątek GC i finalizera są odpalane rzadko, żeby nie pogorszyć czasu odpowiedzi , ale jak się robi spokój to JVM daje im poszaleć ;-)
A to wpływa na to, że Tomcat może nie zdążyć odpowiedzieć w te 1.5 sekundy ;-)

Cieszy mnie to, że taka była moja teoria jakiś czas temu, choć wtedy powstała tylko jako próba wyjaśnienia tajemniczej działalności monitora w nocy w niedzielę ;-)
Ale teraz mam dowody i to cieszy ;-)

Zresztą tu jest problem progu bólu ;-) dla alarmów. Czy lepiej próg ustawić tak by przechodziły przezeń tylko pewne, w sensie bycia pewnymi, alarmy, ryzykując, że przez próg nie przeskoczy pewna, tym razem w sensie jakaś ;-). grupa istotnych, acz nie tak oczywistych problemów.
Czy lepiej ustawić go niżej, tak że przeskoczą go też rzeczy, które są w pełni wytłumaczalne bez awarii? ;-)

[ha! rozpisałem się, a wcześniej nie miałem nawet pomysłu o czym napisać, a pisać trzeba ;-)]

#toBlogger

[Go to original post on Google+]




Podobne postybeta
Linux to jednak fajny jest ;-)
Jak masz doła to nawet rozwiązanie problemu niezbyt cieszy ;-)
Lecę do Stanów... i co z tego? ;-)
finalize() - do czego służy, a do czego nie i z czym to się je.
Jeszcze o Chrome OS... a mądrość ludu po premierze sugeruje porażkę Chrome...

Brak komentarzy:

Prześlij komentarz