netstat라는 명령어를 리눅스에서 사용하면,
네트워크의 상태를 볼 수 있다.

네트워크 상태를 진단할 때 매우 유용하게 사용할 수 있는데,
다음과 같이 사용하면 TIME_WAIT 상태인 연결들의 개수를 확인할 수 있다.
만약 연결된 개수를 확인하려면 grep 뒤에 CONNECTED로 바꾸면 된다.

netstat -n | grep TIME_WAIT | wc

여기서 netstat의 -n은 연결된 장비 이름이 IP 주소로 나타난다.
여기에 a 옵션을 추가하여 -an 이나 -na로 지정해 주면,
연결된 IP나 연결을 기다리는 장비의 IP와 함께 목록을 제공해준다.

추가로 wc 는 라인 및 단어의 개수를 제공하는 옵션이다.
wc만 쓸 경우
3 6 9
와 같이 3개의 숫자가 나타나는데,
가장 앞의 숫자는 라인수(여기서는 관련 연결 개수가 될 것이다.)
두번째는 단어 수,
세번째는 바이트 수를 의미한다.

라인수만 보고 싶을 때에는 -l
단어수만 보고 싶을 때에는 -w
바이트수만 보고 싶을 때에는 -c
옵션을 wc 뒤에 붙여주면 된다.



Posted by tuning-java
,
Thread Checker라는걸 만들었다.(2일 반동안...)

회사 나가기 전에 같이 일하던 사람들에게 줄 선물로...
(책 써야하는데, 이런거나 맹글고 있으니 - -)

이게 뭘 하는 거냐면,
-성능 테스트를 하거나
-시스템을 운영하거나
-WAS의 문제로 장애가 났을때

개발자의 실수로 다른 Thread에 Lock(Block)을 발생시켰을 때
어떤 프로그램에서 발생했는지를 확인할 수 있는 그런 프로그램이다.
(뭐 똑똑하신 고급 개발자 분들께선 이미 이런거 만들어서 사용하고 계실테니 Pass...)

설치의 단순화를 위해서 JSP 딸랑 하나로 만들었으며,
JSP 하나에 넣기 위해서
HTML 노가다 + CSS 노가다 + JavaScript 노가다를 병행해서 개발했다.

두가지 버젼이 있는데, 하나는 메모리 정보를 보여주는 버젼, 다른 하나는 메모리 정보를 안보여 주는 버젼이다.
혹시라도 메모리 정보를 보여주면 서버에 부하가 발생할 수 있으니....


그림을 보면 알겠지만, 만약 다른 쓰레드를 잡고 있는 범인 쓰레드에 찐하게 표시를 해 주도록 해 놓았다.

원래 엄청나게 우울한 UI 였지만, 울팀 디자이너에게 별다방 커피 한잔 사준다고 꼬셔서 화면도 약간 이쁘게 포장했다.

이 프로그램을 왜 만들었냐면,
지난주 금요일에 성능 테스트를 하는데, XXXXXXXX 라는 프레임웍에서 사용하는 한 프로그램의 메소드에
Synchronized라는 블록을 써서 해당 메소드를 사용하는 다른 쓰레드의 응답속도가 엄청나게 증가하는 현상이 발생을 해서,
이런 문제를 제니퍼나 다른 모니터링 툴을 못 쓰는 사람들이 어떻게 잡을 수 있을까?
해서 만들게 되었다.

뭐 어찌보면, JConsole(이게 뭔지 모르는 분들은 제 책 보세욤...)을 써서 볼수 있겠지만,
서버에 부하가 많이 갈 수도 있고, 방화벽으로 막혀있는 상황이라면,
사용하기가 쉽지 않다.

아직 성능 테스트할 때 사용한 적은 없어서
(내 PC에서는 부하를 발생시켜서 테스트는 해 봤지만...)
해당 JSP를 아직은 공개하진 않을 예정이다.

뭐 소스가 이따구야~~
라는 분도 있을 수가 있고... ㅎㅎㅎ

혹~~ 써보고 싶은 분들은 저에게 이멜 보내주시면, 보내드리도록 하겠다.
메일 주소는 "자바 성능을 결정짓는 코딩 습관과 튜닝 이야기"에 있는 주소를 참조~~~ ㅎㅎ
http://www.hanb.co.kr/book/look.html?isbn=978-89-7914-522-9

한가지 단점으로는 StackTrace 정보를 다 볼 경우 서버에 부하가 많이 갈 수도 있으므로,
괜히 서버 CPU 100% 인 상황에서 사용해서 욕먹는 일이 없길 바란다.

Posted by tuning-java
,

오늘 같이 일하는 분이 오류를 하나 이야기해서....

IBM의 vmstat에 pc와 ec라는 수치가 추가되었나봅니다.
근데, 그 수치가 소숫점이라는 - -;
그래서 정수형만 확인하도록 한 소스를 소숫점 데이터도 확인 가능하도록 변경했습니다.

그리고 기본선택을 10초 단위로 선택되도록 변경하고,
3초 단위도 추가했습니다. ^^;

또 다른 버그가 있다면 말씀해 주세요.
(쓰는 분도 그리 많진 않겠지만...)

참고로 JDK 5.0 이상 사용가능 합니다.
Posted by tuning-java
,