'Tools & Guides'에 해당되는 글 56건

  1. 2018.04.06 IDEA, IntelliJ, Pycharm 에서 Cmd+Enter (Ctrl+Enter)로 실행하기
  2. 2016.05.26 [scouter apm] scouter 사용법 동영상
  3. 2014.06.18 "오픈소스 소프트웨어 성능 최적화 보고서" 리뷰
  4. 2014.05.07 사용자 경험에 따른 시간의 가치
  5. 2014.02.27 2014년 JCO 발표자료 (APM)
  6. 2013.02.08 [LoadRunner] 로드러너 SSL(HTTPS) 스크립트 레코딩이 안될 경우
  7. 2012.11.21 성능 세미나 발표자료
  8. 2012.06.11 HeapAudit - JVM 메모리 모니터링 툴
  9. 2012.02.20 [Byteman] BTrace와 비슷(?)한 자바 추적 툴
  10. 2012.01.16 [subclipse] 맥에서 subclipse 사용하기
  11. 2011.11.16 [자바 성능 튜닝] 트위터 엔지니어가 쓴 자바 성능 튜닝에 대한 경험
  12. 2011.09.16 성능 테스트에 대한 영어 용어에 대한 정리
  13. 2011.07.05 [Java Optimizer] Soot라는 자바 옵티마이저
  14. 2010.08.31 [자바 성능 가이드] 10가지 성능 문제들
  15. 2010.06.30 [자바 무료 프로파일링 툴] Java Free profiling tools
  16. 2010.06.29 [Profiler] 자바 메모리 할당 측정기(java-allocation-instrumenter)
  17. 2010.05.29 [Chrome tool] Speedtracer (1)
  18. 2010.01.29 [Java Profiler] 오픈소스 자바 프로파일러들 (1)
  19. 2009.10.30 [사이트] HP Software user club 소개 - BTO 클럽
  20. 2009.08.06 [성능 튜닝] 고급 성능 조정의 개념
  21. 2009.06.27 [jensor] 무료 자바 프로파일링 툴 젠서
  22. 2009.06.19 [Collectd] 사용법 - 설치하기
  23. 2009.06.14 [Dtrace] Solaris 서버 사용자를 위한 Dtrace를 이용한 Java 분석
  24. 2009.05.22 [Heap Dump] 자바 힙 덤프(java heap dump) 분석기 - Eclipse Memory Analyzer
  25. 2009.04.30 [Java Visual VM] JDK에 포함된 무료 프로파일링 툴
  26. 2009.04.28 [성능 참조 사이트] 성능과 관련된 참조할 만한 사이트
  27. 2009.03.12 [WebLOAD] WebLOAD 오픈소스 제공 중지... - -;
  28. 2009.03.02 [자바 모니터링] 자바 모니터링 툴 직접 만들기
  29. 2009.02.10 [JIRA] 지라 성능 튜닝
  30. 2008.12.10 [Jennifer] 제니퍼 사용시 쿼리(DB Query)들의 목록이 나오지 않을때

요즘 많은 웹 페이지 / 도구에서 Cmd + Enter (Ctrl + Enter)로 

* 메일을 보내거나, 

* 문서를 저장하는

등의 작업을 수행한다. 


IDEA( IntelliJ, Pycharm) 에서 Cmd+Enter (Ctrl+Enter)로 실행하려면 설정에 들어가서 다음과 같이 지정하면 된다. 



이미지 중앙을 보면 

Run context configuration 이라는 옵션이 있는데 

여기서 우측 마우스를 클릭한 후 Add Keyboard Shortcut 을 누른다.

그러면 키를 입력하는 창이 뜨는데, 여기서 

Cmd + Enter 나  Ctrl + Enter  를 치면 된다.

이제 실행 가능한 어느 코드에서든지 Cmd + Enter 나  Ctrl + Enter  를 치면 해당 메소드가 실행된다. 

예를 들면 JUnit 이나 간단한 main method가 있는 클래스에서 이 키를 누르면, 그 코드가 속한 부분이 바로 실행된다. 


Posted by tuning-java

다시 시작하는 블로깅의 첫 글은 scouter 사용법 동영상이다.


훌륭한 Free APM 인 scouter ~~~

동영상 조회수를 보니 많은 분들이 안본듯 하다. 

(사용할 생각이 있다면 꼭 보는게 좋다.)



1-1 : https://youtu.be/wv2uJ_oq1Xo

1-2 : https://youtu.be/qcDqF9_xhg0

2 : https://youtu.be/70_uY3ARsFM

3 : https://youtu.be/7TxzOIQlHIg


xlog 2004 : https://youtu.be/05ddjKx9UDM

Posted by tuning-java

오픈 소스 소프트웨어 성능 최적화 보고서 (http://www.yes24.com/24/goods/12994764)라는 책이 있다. 

원래는 http://aosabook.org/en/index.html 에서 제공되는 영어로는 온라인으로 무료로 볼 수 있는 책인데, 이번에 한국어로 번역되어 나왔다. 

결론부터 이야기하자면, "내 코드들은 완벽해 !"라고 생각하는 개발자 분들은 꼭 읽어보기 바란다. 오픈소스를 만든 개발자들이 어떻게 성능을 생각하고, 어떻게 개선을 해 왔는지에 대해서 각각의 시점으로 정리된 책이다. 

네트워크에 대한 지식도 필요하고, OS, 개발 언어에 대한 지식도 필요하지만 해당 부분에 대한 설명이 잘 되어 있어 걱정할 필요는 없다. 

본인이 모르는 기술에 대한 호기심을 자극하고, 다른 개발자들의 병목에 대한 접근 방법을 배울 수 있다는 것 만으로도 이 책은 큰 도움이 되며, 다른 회사의 방식도 볼 수 있는 좋은 기회가 될 것이다. 


단, 아주 개인적인 사견이지만, 번역을 너무 한글로 하려고 한 것은 이 책의 작은 흠이라고 생각한다. 일반적으로 이야기하는 Listener 를 "청취자", Event 를 "사건"이라고 하는 건 좀 그렇다. 

Posted by tuning-java

JPub 에서 최근 출간한 "오픈소스~~~ 성능 ~~" (제목이 길어서) 책의 샘플 챕터를 보다가 응답시간과 사용자의 관계에 대한 링크를 발견했다.


응답시간의 3가지 한계라는 글인데, 한번 읽어볼만 하다 (1993년에 씌여진 글이지만 현재까지도 업데이트 되고 있는 글이다.)

http://www.nngroup.com/articles/response-times-3-important-limits/


관련되어 해당 글의 링크에 있는 아래 글도 좋다. 

http://www.nngroup.com/articles/powers-of-10-time-scales-in-ux/

Posted by tuning-java

APM에 대해서 올해 JCO에서 발표한 내용입니다. 

자세한 내용은 아래 링크 참조하세요. 

http://www.slideshare.net/cowboy93/now-and-future-of-apm

Posted by tuning-java

로드러너를 사용할 때 옛날에는 아무런 문제 없이 HTTPS(SSL) 스크립트가 작성이 안되었지만, 최근 버전 (11.51) 에서는 정상적으로 레코딩이 되지 않는 현상이 발생한다. 

이 문제를 갖고 몇번 씨름을 했지만 답을 명쾌하게 찾지 못했다. 

- 먼저 인증서가 인증되지 않을 경우 그냥 페이지를 띄우면 화면이 나타나지만, 로드러너 레코딩할 때 안떠지는 경우가 발생한다. 

이 때에는 브라우저문제로, 브라우저의 "도구" -> "인터넷옵션" -> "고급" 탭을 차례로 찾아간다.

"보안" 이라고 되어 있는 부분에 모든 체크박스가 체크되어 있지 않은 것을 볼 수 있다. 여기서 SSL, TLS 및 그 아래에 있는 모든 항목들이 체크되도록 변경한다. 


- 스크립트 레코딩이 하나도 안될 경우

VUGen(스크립트 뜨는 툴)에서 아무리 스크립트 작업을 하더라도 패킷으로 주고 받은 내용들이 아무것도 레코딩 되어 있지 않는 현상이 발생했다. 

참고로 사용한 버전은 로드러너 11.5 에 IE8이다.

이 경우에는 다음의 절차를 따른다.

"Record" -> "Recording Options" 선택

"Network" -> "Port Mapping" 선택

1) 우측 하단에 있는 "options..."을 선택하고, "Enable auto ssl detection" uncheck
그리고 나서 update 버튼 클릭

 만약 1)의 방법만으로 문제 해결이 안될 경우

2) "Port Mapping" 페이지에서 가장 상단에 있는 "Capture Level" 을 "WinlNet level data"로 변경

이렇게 변경하고 스크립트를 뜨면 정상적으로 스크립트가 떠 지는 것을 확인할 수 있다. 

하하하~~~ (거의 4시간 버렸다.)

해법을 알려준 외국 아저씨들 감사...

http://h30499.www3.hp.com/t5/LoadRunner-Support-Forum/Vugen-recording-issue-Website-s-security-certificate-error/td-p/2392524 


Posted by tuning-java

어제 회사에서 "성능"에 대한 내용을 발표했다.

많은 분들께 도움이 될 것 같아 해당 내용을 공유한다.

제가 아는 성능에 대한 내용 중 51% 정도만 정리했다고 생각하시면 된다는... 

http://prezi.com/nvvbjl6fqudr/performance/

Posted by tuning-java

http://engineering.foursquare.com/2012/02/02/heapaudit-jvm-memory-profiler-for-the-real-world/


ASM을 사용한 메모리 모니터링 툴이라고 하는데...
나중에 시간 날때 한번 봐야겠다. 

Posted by tuning-java
지난 주말 JCO에 갔다가 Byteman 이라는 툴을 알게 되었다.
사실 어떤 내용인지 모르고 Event Driven 세션 들어갔다가, 완존 약파는 (?) 내용인 것으로 보여서 후다닭 나온 다음에 이 세션으로 들어갔는데, 세션을 안 옮겼으면 후회할뻔 했다. 

http://www.jboss.org/byteman

작년에 JCO에서 내가 발표했던 BTrace(http://kenai.com/projects/btrace)의 단점이 보완 되었는지는 모르겠지만, 나름 훌륭한 툴인 듯 하다.  

발표자 분이 중간에 파일 찾다가 내가 작년에 발표한 파일이 있는 거 보고 약간 놀라긴 했지만, 재미있었다. ㅎㅎ 
 
Posted by tuning-java
subversion이라는 소스 저장소를 사용할 때 이클립스와 연동하려면,
suvversive 나 subclipse 중 하나를 선택해서 일반적으로 사용한다.

이번에는 subclipse를 설치했고,
방법은 다음과 같다.

1) Java HL 설치
subclipse가 c 기반으로 개발되어 있으므로, 이클립스와 통신하기 위해서는 자바 기반으로 되어 있는 Java HL 이라는 것을 설치해야만 한다. 여러가지 방법이 있겠지만, 맥에서는 그냥 맥포트를 사용하면 된다.
$ su
(root 권한으로 로긴)
$ port install subversion-javahlbindings
(Java HL 설치... 별걸 다 설치한다. ant, junit 등을 최신버전으로 ...)
마지막에 나오는 Java HL의 버전을 꼭 확인한다. 


2) subclipse 설치
http://subclipse.tigris.org/ 
에서 Java HL 버전에 맞는 subclipse 업데이트 URL을 확인한 후 이클립스에서 설치 작업 진행.
그냥 모두 선택하고 설치하면 됨.
(뭐 자세한 내용은 다 알테니 패스)
 
이렇게 설치 해서
이클립스 -->  환경 설정 --> Team --> SVN 으로 이동했을 때, 중간에 있는 Java HL 드롭다운 박스에서 Java HL이 잘 먹혀 있다는 메시지가 나오면 끝.
(버전이 안맞으면 다시 설치해야함. 너무 앞서가서 subclipse를 최신 버전으로 깔아버리면 안됨 - -) 
Posted by tuning-java
http://www.slideshare.net/aszegedi/everything-i-ever-learned-about-jvm-performance-tuning-twitter

링크 참조 하셔요. 
Posted by tuning-java
페북을 보다가 예전에 같이 일하던 분이 잘 정리한 링크를 올려 두어서 내 블로그에도 같이 정리한다. 

http://www.softwaretestingstuff.com/2011/09/performance-testing-vs-load-testing-vs.html 

Performance Test 와  Load Test 그리고, Stress Test 의 차이를 잘 설명해 두었다.
(다행히 지금 회사에서 강의하고 있는 내용과 동일한 설명이네... ㅎㅎ ) 
Posted by tuning-java
Soot 이라는 자바 옵티마이징 프레임웍이 있다고 해서 소개해본다.

http://www.sable.mcgill.ca/soot/

자세한 내용은 나중에 시간 있을 때 한번 볼 예정이다.
언제가 될지는 모르겠지만... ㅎㅎ



Posted by tuning-java
10가지 성능에 영향을 주는 문제들이라는 글이 있어서 공유한다.
영어이긴한데,
큰 제목만 읽어봐도 도움이 될 듯...

Top 10 Performance Problems taken from Zappos, Monster, Thomson and Co
http://blog.dynatrace.com/2010/06/15/top-10-performance-problems-taken-from-zappos-monster-and-co/
Posted by tuning-java
JIP
http://jiprof.sourceforge.net/
http://www.ibm.com/developerworks/java/library/j-jip/

oktech-profiler
http://code.google.com/p/oktech-profiler/

Monkey Wrench
http://www.gorillalogic.com/monkeywrench

MonkeyWrench

이 중에서는 Monkey Wrench가 가장 나은듯.... 이거에 대해서 책에 쓸까?
Posted by tuning-java
http://code.google.com/p/java-allocation-instrumenter/

그냥 툴이라고 하기엔 좀 애매하지만...
이런 라이브러리들은 잘못 쓰면 성능에 많이 영향을 줄 수도 있기 때문에,
운영에 쓰면 안되는거 알죠?

추가 설명 글
http://jeremymanson.blogspot.com/2009/12/allocation-instrumenter-for-java_10.html

Posted by tuning-java
http://code.google.com/intl/ko-KR/webtoolkit/speedtracer/

내가 봤던 툴 중 가장 마음에 드는 클라이언트 프로파일링 툴이다.
웹 화면을 구성하는데 어떤 자바 스크립트에서 시간이 소요되었는지를 확인할 수 있다.
그 밖에도 많은 기능을 제공하는 듯 하다.

그런데 이 툴은 구글 크롬 브라우저에서만 사용가능하다는 거~~~

자세한 내용은 링크를 참조하기 바란다.

'Tools & Guides > Browser Add-ons' 카테고리의 다른 글

[Chrome tool] Speedtracer  (1) 2010.05.29
Posted by tuning-java
자바기반 오픈 프로파일러 + 분석 프로그램들이 있는 사이트가 있어 링크를 ...

http://www.manageability.org/blog/stuff/open-source-profilers-for-java 
Posted by tuning-java
http://www.btoclub.co.kr/

오늘 우연히 알게 되었지만,
HP Software user 를 위한 클럽이 있다는 걸 알았다.

뭐 일반 개발자 분들에게는 별 관인이 가진 않겠지만,
로드러너를 사용하는 분들을 모아서 간담회도 가지고,
세미나도 주기적으로 하는 것 같다.

개인적으로는 로드러너가 좋은 툴이긴 하지만,
금전적으로 너무 사용하기 힘들게 되어 있는 툴이기 때문에,
그리 좋아하진 않지만,
만약 쉽게 사용할 수 있는 환경에 있다면,
성능 테스터들에게는 매우 편리한 툴이다.

누군가에게는 불가능한 테스트라 할지라도,
그 불가능함을 해결한 사람도 분명히 있을 수 있기 때문에,
저런 간담회는 가끔 가주면 좋을 듯...

요즘은 LR 쓸 일이 없어서...
Posted by tuning-java
http://www.ibm.com/developerworks/kr/library/au-aixperformancetuning/index.html

아침에 메일온걸 확인하다가, 고급 성능 조정의 개념이라는 글이 있어 이렇게 링크를 건다.

그런데, 상세한 가이드라기 보다는 개략적인 가이드라서
어느 정도 경험이 있는 분들이 봐야하는 그런 문서인듯...

추가로 메일을 보니, 에릭 감마 아저씨가 한국에 오는듯... 근데 무슨 QnA가 한시간이여???
https://www.ibm.com/developerworks/kr/event/erich_gamma2/index.html
안구라 선배가 가면 많은걸 물어볼텐데... ㅋㅋ

Jazz라는 제품 설명하러 오는거 같다.
http://jazz.net/


Posted by tuning-java
http://jensor.sourceforge.net/

형이 어떻게 알고 알려준건지는 모르겠지만,
알려준 프로파일링 툴인 젠서(이렇게 읽으면 되나?)

관련 문서들을 대충 읽어 봤는데,
하나의 메소드당 30 마이크로 초 정도 잡아먹는단다.
그럼 그게 30번 불리면 1ms 정도 잡아 먹는다는 이야기가 되는데...
30000 번 정도의 메소드 호출이 있으면,
1초의 시간을 잡아 먹을듯...

근데 원격 기능이 없는듯 해서 약간 아쉽다.
Posted by tuning-java
Collectd라는 것이 있다.
http://collectd.org/
한마디로 이야기하면, 서버의 모니터링 정보를 모아서,
다른 서버로 전송하는 기능을 수행하는 데몬이라고 생각하면 된다.

다른 OS는 몰겠지만,
리눅스는 확실히 지원한다.

시작 하는 방법은 다음의 링크를 참조하기 바란다.
http://collectd.org/wiki/index.php/First_steps

파일 다운로드 받고, 압축풀고, 컴파일하기~~~

# cd /tmp/
# wget http://collectd.org/files/collectd-x.y.z.tar.bz2
# tar jxf collectd-x.y.z.tar.bz2
# cd collectd-x.y.z
# ./configure 
촤라락 촤라락
# make all install
....
# cd /opt/collectd/


위와 같은 명령이 정상적으로 수행 되었다면,
/opt/collectd에는 관련 설정파일들이 추가되어 있을 것이다.

사용법은 다음에...
Posted by tuning-java
http://www.devx.com/Java/Article/33943

Solaris OS를 사용한다면, DTrace라는 프로파일러를 사용할 수 있다.
만약 해당 OS를 사용하는 담당자가 자바 시스템의 성능에 문제가 있다면, 한번 사용해보기 바란다.
Posted by tuning-java
자바 힙 덤프 분석기는 jhat등 여러가지 툴이 있지만,
최근에 발견한 Eclipse Memory Analyzer 라는 프로그램이 있다.

http://www.eclipse.org/mat/

다운로드하여 압축을 해제하고, 이클립스만 수행하면 된다.
단, 기본 자바 VM을 사용할 때 발생한 HPROF 덤프 파일의 확장자는 반드시 hprof 여야만 읽을 수 있다.

작성된 힙 덤프 파일을 이 프로그램에서 읽으면 다음과 같은 화면을 제공한다.
사용자 삽입 이미지

Posted by tuning-java
https://visualvm.dev.java.net/

VisualVM이라는 무료 툴이 있다.
사용자 삽입 이미지

이 툴이 JDK 6.0의 update 7 부터는 JDK의 bin 디렉토리에 jvisualvm.exe 라는 파일로 추가되어 있다.

한번 사용해 보면 알겠지만, 정말 대단한 툴이다.

jconsole은 JMX를 데이터를 보기 위한 툴이라면,
이 툴은 메모리 상태 파악 및 성능 및 메모리 프로파일링까지 가능하기 때문에 성능상 문제가 있는 분들에게
많은 도움이 될 것이라 생각된다.

하지만, 아직까지 안정화 되지는 않아서 모니터링 대상 JVM이 죽는 현상이 발생할 수 있으므로,
조심해서 사용하기 바란다.

운영서버보다는 테스트 서버에서...

추가로 이 툴을 사용한 후기를 "영어"로 작성할 능력이 있다면
500불을 받을 수 있는 기회를 놓치지 말기 바란다.

나도 함 시간 있으면, 해보려고~~
자세한 내용은 아래 링크 참조.
http://java.sun.com/community/javavisualvm/


Posted by tuning-java
http://highscalability.com/

팀장님의 강력 추천 사이트이다.

단하나의 단점은 영어 사이트라는 거~~~

Posted by tuning-java
TAG 성능
RadView라는 회사에서 제공하는 WebLOAD 라는 툴의 일부 기능이 Open source로 제공되었었다.

그래서, 지금 쓰고 있는 책의 예제도 WebLOAD를 사용하는 방법을 상세하게 적어놨다.

근데 더이상 Open source로 안하겠단다.

왜이래? 아마추어 같이~~~

아래는 걔네들이 보내온 메일 내용...
---------------------------------------------------------------------------------------

Dear Madam/Sir,
According to our records you have downloaded a version of WebLOAD Open Source. We would like to reiterate the following:
-WebLOAD Open Source has been declared End of life (EOL)
-If you still have a version of the product we remind you that under the EULA, any distribution of the product or using it to service third parties is strictly forbidden.
What are the options available to you?
For a limited time RadView offers a competitive upgrade to WebLOAD Professional. We encourage you to contact a sales rep in your region quickly as discounts are set to expire.
Posted by tuning-java
http://www.ibm.com/developerworks/library/j-rtm1/index.html

메일에서 온 글을 보고 링크를 따라가 봤는데,
시간만 있다면, 이 글 보고 APM하나 맹글 수 있다는 생각이 든다.

뭐 시간이 없다는 것은 핑계일 뿐이지만... ^^;
Posted by tuning-java

http://www.atlassian.com/software/jira/docs/latest/performance.html

지라 자체적으로 성능 튜닝이 가능한 환경이 마련되어 있다.

이렇게 링크까지 만들어 정리해 놓은것을 보면 성능 이슈가 많긴 많은가 부다.


 

Posted by tuning-java
제니퍼를 사용하다보면 X-View나 통계정보에 쿼리 목록이 안나올 때가 있다.

만약 DB의 Connection을 WAS에서 제공하는 것을 사용하지 않을 경우나,
다른 특이한 경우에 이런 일이 발생하게 된다.

그럴때에는 당황하지 말고, 다음과 같이 하면 된다.

1. 먼저 어떤 메소드에서 DB Connection을 맺는지 확인해야 한다.
제니퍼에 로긴하여
장애진단 - 유틸리티 - 로딩 클래스 목록을 찾아간다.
(만약 이 메뉴도 못찾아 가면 이 설명을 읽지 말기 바란다. ^^)

2. 로딩 클래스 목록중에서 DB와 연결을하는 getConnection 관련 메소드를 찾는다.
그 메소드의 매개변수까지 꼭 확인해야 한다.

3. w11.conf 나 w12.conf 와 같이 각 WAS 별 설정이 지정되어 있는 설정파일을 연다.
(제니퍼에서 관리도구를 통해서 설정하는 것이 더 낫다. 실시간으로 반영이 되기 때문에...)
거기서
jdbc_connection_get =
이라고 되어 있는 부분을 찾는다.
분명히 #으로 주석이 되어 있을 것이다.
그 주석을 풀고 저 설정값 뒷 부붓에 패키지를 포함하여 클래스와 메소드와 매개변수를 지정한다.
예를 들어 삼성 SDS의 Athena (지금은 Anyframe 인가??)를 사용할 경우에는 다음과 같이 지정하면 된다.

jdbc_connection_get = athena.titan.services.datasource.impl.AbstractDataSourceService.getConnection()
만약 매개변수의 타입이 String이면, ....getConnection(String) 과 같이 지정하면된다.

그리고 나서 conf 파일을 저장하거나 수정 버튼을 클릭해서 변경사항을 반영한다.

그래도 안되면, 제니퍼 소프트에 전화하세요~~~~ ㅋㅋㅋ

Posted by tuning-java