혹시 궁금해 하는 사용자가 있을 것 같아,
UI 캡쳐 화면을 올린다.

참고로 앞서 올린 파일은 Windows 용이다.

(Java가 OS independent 하다고는 하지만, SWT 는 컴파일시의 라이브러리를 따르는 듯 하다.)

사용자 삽입 이미지

'My Tools > File Distributor' 카테고리의 다른 글

[File Distributor] 파일 전송 프로그램.  (0) 2009.01.19
Posted by tuning-java
,


누군가 파일을 한방에 보낼 수 있는 프로그램이 있으면 좋겠다고 해서,
주말에 와이프도 출장가고 집에서 심심해서 한번 만들었다.

- 자바 소켓을 이용해서 만들었으며,
- 텍스트 기반의 파일만 전송 가능하다.
- 바이너리 파일 지원은 안될 것이다.
- UI는 SWT를 이용해서 만들었다.

가장 중요한 JDK 는 최신 버젼을 사용하기 바란다.
내가 만든 프로그램 부분은 JDK 5.0 가장 첫 Release를 사용하긴 했지만,
SWT에서 제공하는 라이브러리의 JDK 버젼이 뭔지 모르니...

간단한 사용법(정말 간단한~~~~)은 첨부 파일에 같이 들어 있다.


'My Tools > File Distributor' 카테고리의 다른 글

[FileDistributor] File Distributor 파일 전송 UI  (0) 2009.01.20
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
,
History Manager 의 맛보기 동영상을 올려드립니다.

그냥 일단 구경만...

먼저 써 보신다던 황XX 책임님이 바쁘다고 안써보고, 피드백도 안주고 있습니다. ㅋㅋㅋ

근데 너무 화질이 떨어지네요... - -;

'My Tools > HistoryManager' 카테고리의 다른 글

[History Manager] History Manager 소개  (2) 2008.10.22
Posted by tuning-java
,

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

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

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

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

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

지난  몇 주간 틈틈이 짬 날때 마다 만든 프로그램이 있다. (이거 만드느라고 집필에는 손도 안댔다는 - -)

실제 만든건 2주정도 되는 것 같다.

뭐 어떻게 보면 별거 아니지만,
내 업무상 필요해서 만든 프로그램이다.

이 프로그램은 다음과 같은 기능을 제공하는 프로그램이다.
- 뭔가 작업을 하는 동안 발생한 이슈 사항들을 적어 놓는다.
- 그 이슈에 대한 시간이 자동으로 저장된다.
- 나중에 해당 내용을 시간대 별로 확인을 할 수 있다.
- Internet Explorer나 Firefox만 있으면 사용가능하다.(Mac 유저분들에게는 죄송하지만, 내가 테스트해 본 결과 GWT ext의 오류로 인해서 Safari에서는 돌아가질 않는다. 메소드 하나 때문인데, 그 메소드는 현재는 꼭 써야 하는 상황이기에, 나중에 관련 버그를 GWT ext를 맹그는 애들이 수정하면 사용 가능할 듯 하다.)


아직 정식으로 누군가에게 써보라고 주기에는 부족한 부분들이 있어서
어느 정도 쓸만한 상태가 되면 공유할 생각이다.

기본적으로 GWT ext를 갖고 만들었기 때문에, Tomcat만 설치되어 있는 PC나 서버에서는 누구나 사용할 수 있다. 나중에 제공할 WAR 파일만 Tomcat의 webapps 디렉토리에 복사하고 Tomcat 수행하면 설치는 끝...
DB를 사용하게되면 설치하기도 귀찮을 것으로 판단되어, 개인용도로 사용하기 위해서 파일 기반으로 관련 정보를 저장하도록 만들었다.
만약 나중에 사용하는 분들이 많을 경우 DB 버젼도 시간이 있다면 확장할 생각이다.
(그럴 일은 별로 없을듯... ^^);

GWT를 사용하면 디자인을 위한 CSS를 정의하기 위한 시간이 많이 소요되는데, (뭐 처음에 정의해 놓으면 되겠지만, 나같은 개발자에게는 그 작업이 제일 싫은 노가다 작업이라....)
GWT ext를 사용하니 화면의 디자인을 위한 시간이 많이 줄어들어 편했다.
하지만, GWT와 GWT ext는 코딩 방식이 완전히 틀리다.

GWT ext 에 대한 이해를 하는데  개발중 대부분의 시간이 소요되었다.

궁금해 하시는 분들은 많지 않겠지만, 사용하는 동영상과 실제 Tomcat 설치용 WAR 파일은 조만간 공개하도록 하겠습니다.

'My Tools > HistoryManager' 카테고리의 다른 글

[HistoryManager] 맛보기 동영상  (2) 2008.11.16
Posted by tuning-java
,
가끔 이 툴을 아는 분들이 써보고는,
JDK 5.0인데 안돌아간다는 분들이 계셔서요...

JDK 5.0 완전 초기 버젼으로 재컴파일 한 버젼을 올려봅니다.


이것도 안된다면, 그냥 JDK 6.0으로 사용하세요.
잘 될겁니다. ^^;

사용법은 이전 글 참조 하세요.
http://www.tuning-java.com/127


Posted by tuning-java
,

주의 : 이 툴로 인해서 발생하는 문제는 제가 책임을 안집니다.
이 툴에 대한 불만이 있으시면 과감히 본인의 PC에서 삭제를 해주시고,
제가 명시하지 않은 버그가 있다면 댓글에 달아주시면 확인하고 조치하도록 하겠습니다.
반드시 이 글을 다 읽은 후에 사용하시기 바랍니다.

vmstat로 로그를 남기면, 중간중간에 필요 없는 제목이라던지, 제목 헤더 정보를 정리하기 귀찮을 때가 많이 있다.

그러한 단점을 보완하기 위해서 vmstat manager를 만들게 되었다. (2005년에 만들어 놓고 사용하다가, 올해 4월에 수정한 이후로 아직 보완은 하지 않고 있다.)

SWT를 사용했고, JDK 5.0 이상에서 컴파일을 했기 때문에 이 툴을 사용하기 위해서는 되도록이면, JDK 6.0 이상을 사용해야 한다. (제가 갖고 있는 JDK 5.0의 update 버젼이 높기 때문에 안된다는 분들이 몇분 계시더군요.)

윈도는 암꺼나 사용해도 되지 않을까 생각된다.
HP, IBM, Sun, Linux, Mac 등에서 나오는 모든 vmstat가 분석 가능 할 것으로 판단된다.


첨부 파일의 압축을 풀어 run.cmd파일을 실행하여 프로그램을 시작하면 다음과 같은 화면이 나타난다.

여기서 파일 메뉴의 "로그파일 열기..."을 누르면 로그파일을 선택할 수 있는 창이 나타난다. vmstat 로그를 선택한다. 그럼 아래와 같은 화면이 나타나야 한다.

여기서 로그를 찍기 시작한 시간과 로그 남긴 주기를 Drop down 메뉴에서 선택한다.
그 다음 중요한 것이 필요없는 부분을 삭제하는 건데, 위의 예와 같이 되어 있을때...

System Configuration: lcpu=16 mem=31488MB

kthr    memory              page              faults        cpu   
----- ----------- ------------------------ ------------ -----------
r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
2  1 7022690 520427   0   2   0   0    0   0 1366 13820 2866 31  2 58  8
3  0 7018965 524126   0   1   0   0    0   0 1149 16379 2925 29  2 64  5

System.... 요 줄은 그냥 "선택행 삭제"를 눌러서 지우고,
kthr   memory ... 이 있는 줄과, ----- ---- 가 있는 줄은 반복되는 행이므로 "선택행과 같은 모양의 반복되는 행을 삭제"를 눌러서 지워야 한다.
반드시 행을 클릭하기 바란다. Check box를 클릭하면 오류가 발생하기 때문에...
(아직 이 부분에 대한 오류 수정하지 않았고, 앞으로도 언제할 지 모른다...)

그리고 절대로 r b avm등의 제목줄을 지워서는 절대 안된다.

그런 후에, Generate 버튼을 누르면 아래와 같은 화면이 나타나는데 변경된 내용을 저장할 것인가를 묻는 부분이다.
저장하고 싶으면 OK 싫으면 취소를 누르면 된다.(엎어쓰지 않으니 걱정 마시고...)

정상적으로 수행이 되었으면, 위와 같은 화면이 나타난다.

그래프를 그리고 싶은 항목을 왼쪽에서 선택후 "전체 구간으로 그래프 생성"을 누르면 전체 시간의 그래프를 그려주고,
오른쪽 화면에서 선택을 하고,"선택한 구간으로 그래프 생성"을 누르면 선택한 구간만의 그래프를 그려준다.

전체 데이터를 엑셀로 옮기고 싶다면 "Excel Export"를 누르면 된다.

로그 그래프는 보고 싶으면 보셔도 되는데, 아직 오류가 많아서 별로 추천하고 싶지 않다.
이 부분에 대한 업그레이드 예정도 아직 엄따.
그냥 엑셀로 저장해서 사용하기 바란다. ^;

Posted by tuning-java
,