UNIX 혹은 Linux 서버를 운영하는 관리자라면 객관적인, 혹은 보고서 작성을 위한 성능 분석 결과가 필요하게 된다. 현재 운영체제 성능 분석 및 모니터링을 위한 도구들이 꽤 많이 나와있다. 하지만 그 중에서도 공짜로 사용할 수 있는 툴들에 대해서 얘기해보고자 한다. kSar와 nmon analyser라는 툴을 들어보셨을거다. 각각 sar와 nmon으로 만들어진 log 파일을 분석하는 툴이다. 자세히 얘기해보자.

1. kSar
 지인의 소개로 알게된 kSar는 sar라는 툴로 저장한 서버의 성능 관련 data를 분석하기 위한 GUI 툴이다. 소스포지에서 다운로드 받을 수 있으며, 링크는 http://sourceforge.net/projects/ksar이다. BSD 라이선스 정책을 따르며, 현재 최신 버전은 5.0.6이다.
 실행시키면 아래와 같은 화면이 뜬다.



2. nmon analyser
 nmon analyser는 nmon으로 저장한 서버 성능 데이타를 분석하기 위한 툴이다. 마이크로소프트 엑셀에서 해당 엑셀 파일을 열어서 nmon log file을 분석하는 방식으로 되어있다. 그래프로 보기 좋게 분석되어 나와서 나는 주로 nmon과 nmon analyser를 사용한다. nmon과 nmon analyser는 무료로 사용할 수 있기는 하지만 엑셀이라는 유료 소프트웨어를 이용해야만 결과를 알수 있다는 단점이 있다. 아마... 어딘가에 엑셀외의 다른 도구를 사용하는 방법이 있을지도 모르지만... 아직 찾지 못 했다.

 nmon analyser는 이전에도 소개한 적이 있다. 아래의 글들을 보면 nmon analyser가 어떤 프로그램인지 알 수 있을것이다.
2009/04/10 - [Operating System] - NMON, NMON Analyser를 이용한 시스템 성능 리포트 만들기
2011/04/07 - [Operating System] - nmon analyser 3.3.f가 나왔네요.




 사무실 PC에서 nmonanalyser 3.3.E가 엑셀과 함께 죽어버리는 문제가 종종 생겨서 혹시나하는 마음에 홈페이지에 들어가보니 새 버전이 올라와 있네요.
nmonanalyser 3.3.e3

http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser
최근 버전이 3.3.e3이구요. 생각보단 나온지 오래됐네요.

nmon을 사용하시는 분들은 한번 받아서 사용해보시길 ^^
저는 가끔씩 엑셀과 함께 죽는 현상이 없어져서 만족하고 있습니다.

 요즘 AIX 서버의 성능 문제에 대해서 자료를 만들고 있는데 nmonanalyser를 사용하고 있습니다. AIX 전문가가 아닌 제게는 그래프까지 만들어주는 고마운 존재이죠. 오늘 nmonanalyser를 쓰려다가 갑자기 nmonanalyser도 버전업이 되지 않았을까하는 생각에 홈페이지에 가보니 버전업이 되어있네요.(2009년 12월 16일자입니다.)
기존에 사용하던 버전이 3.3.A인데 3.3.E 버전이 올라와 있네요. 즉시 다운받아서 사용 중입니다. ^^
nmonanalyser 사용하시던 분들이라면 다운 받으세요.

nmonanalyser다운받으러 가기

간단한 사용법은 제가 예전에 작성한 글을 참고하세요.
2009/04/10 - [Operating System] - NMON, NMON Analyser를 이용한 시스템 성능 리포트 만들기

 저희 회사의 시스템 구축 목표 중 아주 중요하게 생각하는 항목은 "가능한 모든 DB는 저렴하게 Active - standby를 구현하자"입니다. 결국 "저렴하게 안정성 향상과 성능 극대화를 추구한다."라는 말인데, 이 문구를 보시면 많은 분들은 "저렴하게"라는 부분만 빼면 가능한 일이라고 생각하실겁니다. 저도 그렇게 생각하구요. 예산만 풍부하다면...

 제가 생각하는 아주 좋은 회사는 장비(시스템)와 직원에게 비용을 아끼지 않는 회사입니다.(낭비가 아니라 "아끼지 않는다"입니다. 내가 원하는 기능, 성능 및 안정성을 제공하는 장비나 서비스를 구매하고 이에 비용을 지불하는건 낭비가 아니라고 생각합니다. 물론 사원에게도 마찬가지로 적절한 보수와 특근, 야근 수당을 다 챙겨주는...) 물론 이런 회사에 근무하는건 아주 드문 일이라고 생각합니다. 제가 DW 구축 및 Oracle DB 운영 업무(능력있는 사수님이 계셨었죠. 제가 부사수였습니다. ^^;)를 맡았었던 K사의 모 시스템에서도 비용을 절감하고, 보유한 자원을 최대한 활용하려는 노력은 끊이지 않았었죠. 대한민국 사람이라면 다 아는 큰 회사에서도 비용 절감은 중요한 사항이었죠.

 제가 비교적 시스템 자원이 풍부한 곳에서 일을 해왔었던 탓인지 현재 재직중인 회사에 와서 좀 충격을 받았었습니다. 안정성 향상을 위해 Cluster 혹은 Standby 시스템을 구축하는데는 보통 비용이 많이 들기 마련인데, 그 비용에서 타협을 하면 안정성이나 성능도 어느정도 타협을 해야 하는데... 그렇게 생각을 하지 않으니...

 암튼 초고속 인터넷이 보편화되어있는 대한민국의 IT 환경에서 안전한 백업보다도 고객들이 원하는건 중단되지 않는 서비스가 아닐까합니다. 그리고 실시간으로 Data 동기화 등의 작업이 이루어지길 원하죠.
 경영진으로서는 당연히 직원들이 해결해야할 문제이고, 실무진으로서는 돈도 적게 주면서(예산, 연봉 및 수당을 말합니다.) 품질만 최고를 원한다는 불만을 가지게 됩니다. 아~ 힘들다.

 DB Cluster를 구성하려고 여러가지 고민을 해봤습니다.
이번 글에서는 DBMS Cluster에 어떤 것들이 있는지 나열해보고, 제가 근무중인 곳에서 도입한 TAC에 대한 감상을 적어보겠습니다. 다른 DBMS Cluster에 대해서는 다음에 정리해서 올리도록 하겠습니다.

1. Oracle RAC
 말이 필요없죠. 좋습니다. 가격이 너무 비싸다는걸 빼면요. 저렴하게 구축하려면, Linux 기반으로해서 공유 스토리지는 Oracle ASM을 이용하는 방법도 있습니다. Oracle 11g 이후 버전에서는 Raw device를 지원하지 않고 ASM을 기본으로 할지도 모른다고 하니까 성능에는 자신이 있는 모양입니다.

 당연한 얘기지만 관련 서적도 제법 있습니다. RAC 자체에 대해서는 영문판 책이 대부분이며, 한글판으로는 RAC에서의 성능 문제에 대한 엑셈의 책도 있습니다.
ADVANCED OWI INTERNALS AND PERFORMANCE IN ORACLE 10G RAC
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2007년)
상세보기




2. IBM DB2 PureScale
 메인프레임의 기술을 유닉스에서... Cluster 도입을 고려하던 당시에는 자료가 별로 없어서 제외했습니다.
Oracle RAC에 대항마로서 나온 제품 같습니다.(예전에 DB관련 세미나에 갔더니 고객들이 "RAC~ RAC~"한다고 한 숨을 쉬시더군요.) Oracle RAC처럼 모든 노드를 Active로 사용할 수 있다고 합니다. 단점은 아직까지는 AIX에서만 사용 가능하다는 점입니다.


3. MySQL Cluster
 Active-Standby Cluster입니다. Standby DB는 평소에 읽기 전용으로 사용하기를 권장하더군요. 저희쪽에 제안을 들어온 업체의 제안 내용에 따르면, 일반적인 Intel CPU 장비를 제안해놓고는 메모리는 가득 채워서 설치하기를 요구하더군요. 쿼드코어 CPU 두장에 메모리는 128GB이던가... 그것만으로도 가격이 상당히 뛰더군요. 업체측에서는 Active-Active로 궁성을 해도, 거의 실시간으로 모든 노드에 Data 동기화가 이루어져서 Data 정합성이 깨지지 않는다고 하지만... 타 DBMS 업체에서는 이런 구조는 필연적으로 정합성에 문제가 생긴다고 하더군요... 뭐...
 좋은 점은 공유 스토리지를 필요로 하지 않아서 SAN 및 공유 Storage 구축 비용이 절감된다는 장점이 있습니다. 그런데 개별 서버에 대용량의 메모리를 설치해야 한다는 점이 조금 걸립니다.  다양한 관련 서적이 있으며, HA관련 서적이 한글판으로도 출판되어 있습니다.
MYSQL 5.1 REFERENCE GUIDE(레퍼런스 가이드)
카테고리 컴퓨터/IT
지은이 박장규 (혜지원, 2009년)
상세보기


MY SQL 5.1 H A 매뉴얼
카테고리 컴퓨터/IT
지은이 (글로벌, 2009년)
상세보기


4. MS SQL Server Cluster
 Active-Standby Cluster입니다. 일반적으로 얘기하는 HA구성이죠. MS-SQL 라이센스에 Cluster 라이센스를 구매해야하며, 당시엔 이에 대한 사내의 인식과 자료가 좀 부족해서 제외되었었습니다. 또한 MS SQL Server 자체에 대한 책은 많이 출판되어 있으나 HA에 대한 자료는 거의 없습니다.


5. Cubrid Cluster
 NHN에서 Open source로 제공하는 Cubrid를 Cluster로 구성하는 방법입니다. Cubrid야 NHN에서 서비스에 사용중이니 안정성 등은 믿음이 가지만, Cluster는 아직 개선의 여지가 많이 필요한거 같아 보입니다. 큐브리드 부설 연구소에서 2008년도에 출판된 책이 한 권 검색되네요. 음... 최근 버전에 관한 내용은 큐브리드 홈페이지에서 찾으시면 됩니다. 그리고 Naver 개발자 센터의 CUBRID프로젝트큐브리드 공부하기 카페에서도 관련 정보를 찾으실 수 있습니다.
데이터베이스 이해와 실습
카테고리 컴퓨터/IT
지은이 큐브리드 부설 연구소 (정익사, 2008년)
상세보기

 앞으로의 발전 가능성에 꾸준히 관심을 갖고 지켜보고 있는 제품입니다.


6. Tibero Active Cluster (TAC)
 TmaxData의 Tibero RDBMS를 Oracle RAC 형태로 구성한 Cluster입니다. 영진 전문 대학이라는 레퍼런스가 존재했고, 견적을 냈을때 Oracle의 10분의 1에 해당하는 가격이라 이걸로 결정되었었습니다.

 혹시 Tibero Active Cluster(이하 TAC)를 도입하려고 검토하시는 업체라면, 아주 신중히 결정하시라고 말씀드리고 싶습니다. TAC는 Tibero라는 DBMS를 Cluster로 구성한거라 Tibero의 약점을 그대로 가지고 있습니다. Oracle과 같은 문법을 제공하기에 기존 개발자가 적응하기 쉽다는 장점이 있지만, Oracle에서 당연히 되던 기능들이 작동을 안 하기도 합니다. 제가 썼던 글을 참조하세요.(2010/02/01 - [Database] - Tibero4 migration 모험기 (3) Index rebuild 기능)

 그리고 기존의 DB 보안, DB 복제, ETL tool 등이 정상 작동을 하지 않는 부분이 많습니다. 관련 업체의 인증을 받았다지만, 관리 툴이 Tibero에서는 완벽하게 사용할 수 없다던지, 중요 기능이 대용량 Data 환경에서는 정상 작동을 하지 않는다는 문제가 있습니다. 관련 솔루션 테스트 중에 몇 십만건 단위의 Data 처리를 시키니까 DB가 뻗어버리더군요. ㅜㅜ

 또 하나의 문제점이라면... Oracle RAC의 경우에 좀 저렴하게 구성하려면 Linux에 Oracle을 올리고, Oracle ASM을 이용하면, Veritas CFS 등의 Cluster filesystem을 구매하지 않아도 Cluster 구성이 가능한데, Tibero에는 자체적으로 제공하는 Cluster filesystem이 없어서 공유 스토리지 구성에 상당한 비용이 소요됩니다. 제 기억엔 TAC 자체 가격과 Veritas CFS 가격이 비슷했던것 같은 기억이...

 또한 시중에 출판된 Tibero 혹은 TAC 관련 서적은 없습니다. TmaxData에서 제공하는 Tibero 관련 메뉴얼이 있으며, 테크넷(technet.tmax.co.kr)에서 PDF 파일로 다운로드 가능합니다. 왠만한 명령은 Oracle과 비슷한 문법을 제공해서인지 메뉴얼만으로도 해결이 가능합니다. 사실 이게 최대의 장점이죠.
 AIX 서버의 성능 문제가 생겨서 리포트를 작성할 일이 생겨서 nmon을 이용하기로 했습니다. 예전에 제 블로그에 소개했던 nmon 관련 문서를 떠올리곤 TAG목록에서 nmon을 찾아서 문서를 열었죠.
원문보기 : [소개] IBM DeveloperWorks : nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴 (한글)

우선 nmon으로 10시간 가량 모니터링을 하기로 하고 아래와 같이 옵션을 줘서 모니터링을 시작했습니다.

-fT : 파일로 저장하도록 한다. 대문자 T는 top process까지 저장하도록 하는 옵션이다. 이 옵션이 필요없으면 -f로 하면 된다.
-s : 스냅샷을 찍는 간격. 초 단위이다. 300은 5분 간격을 의미한다.
-c : 스냅샷을 찍는 횟수. 5분간격으로 132번을 찍으니까... 10시간이 된다.

# nmon -fT -s 300 -c 132

5분 간격으로 10시간동안 스냅샷을 찍도록 했죠. 그리고 최신 버전의 nmon analyser를 다운로드 받았습니다. 현재 3.3버전이 최신이네요. IBM의 영문 웹 사이트에서 다운로드 받을수 있습니다. nmon analyser을 이용하면 보기좋게 그래프까지 만들어 주네요
저장되는 파일이름은 [호스트명_년월일_시분.nmon]의 형식이며, 모니터링을 시작한 시분이 표시된다. 파일 하나에 데이타가 저장된다.(5분마다 하나씩 생성될줄 알았는데... 하나에 통채로 들어가네요. ^^;)



 최근에 회사에 신청했던 [Blog2Blog 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기]를 소개하려합니다. 회사돈으로 산거라 다른책 읽을때보다는 서둘러서 읽고 있습니다. ^^;
아직 다 읽지는 못했지만 저같은 어중간한 레벨의 개발자들에게 필요한 내용들을 찾아보기 쉽게 정리해놓은 책이라고 생각합니다. 개발에서 손뗀지가 일년 정도 되다보니 기억나지 않는게 너무 많더군요. ^^;

자바 성능을 결정짓는 코딩 습관과 튜닝 이야기
카테고리 컴퓨터/IT
지은이 이상민 (한빛미디어, 2008년)
상세보기

아래는 이 책을 읽은 분이 책 내용중에서 오류를 찾아내서 정리해 놓은 블로그 내용입니다. 저도 읽으면서 찾아봐야 겠네요.


 요즘 DB가 거의 매일 문제를 일으켜서 성능관련 문서들을 많이 찾아보며 분석중에 있습니다. 그러다보니 wait event에 많은 시간을 투자하고 있죠.

OTN에는 많은 Oracle 관련 문서들이 있는걸 아시죠. 그중에서 이번에 찾은 [Oracle Wait Event 모니터링]이라는 문서가 눈에 띄더군요.

원문보러가기~!
(주)웨어벨리의 책임 컨설턴트인 안진철님이 2003년경에 작성한 문서로 순서는 아래와 같습니다.

 이 글을 읽으면서 맘에 와닿았던 글귀가 있습니다.

흔히 DBA를 3D업종이라고 부르는 이유 가운데 하나는 몸은 고달픈데 반해 그 성과가 별로 티가 나지 않는다는 사실 때문일 것이다. 실제로, DBA가 수행해야 하는 일상적인 관리 업무들은 몸은 다소 피곤하게 만들지 몰라도 어느 정도 경험이 쌓이면 그리 부담을 주는 일은 아니다. 우리가 한단계 업그레이드된 전문가로서 인정 받는 DBA가 되기 위해서는 장애상황 혹은 유사 장애 상황에서 DB 모니터링 작업을 수행하고 분석할 수 있어야 한다. 시스템이 갑자기 느려지고 업무가 마비되는 상황에 맞닥뜨렸을 때 문제의 원인이 무엇인지를 집어낼 수 있는 능력이 있어야 하며 최소한 오라클의 문제인지 아닌지를 판단할 수는 있어야 몸으로 야간작업이나 때우는 DBA가 아니라 조직에 없어서는 안될 전문가로서의 나의 존재가치를 인정 받을 수 있을 것이다.


다음은 시중에 나와있는 OWI(Oracle Wait Interface) 관련 책들입니다.
오라클 진단 & 튜닝
카테고리 컴퓨터/IT
지은이 RICHMOND SHEE (엑셈, 2005년)
상세보기

OWI Advanced Oracle Wait Interface in 10g
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2006년)
상세보기

PRACTICAL OWL IN ORACLE 10G
카테고리 컴퓨터/IT
지은이 엑셈 (엑셈, 2007년)
상세보기

ADVANCED OWI INTERNALS AND PERFORMANCE IN...
카테고리 컴퓨터/IT
지은이 조동욱 (엑셈, 2007년)
상세보기


 이 문서는 Ajax 개발시 성능 문제를 개선하기위해서 필요한 도구를 소개하고 있습니다. 제가 사용중인 Firebug도 소개하고 있구요. Yslow라는 도구도 소개하네요.
 갈수록 사용하는 곳이 많아지는 Ajax와 이에따른 성능 문제에 고민하는 개발자라면 한번 읽어볼만한 내용이라고 생각합니다.


원문 : Ajax 성능분석 (최신 도구를 사용하여 작업을 마무리하기)


비동기 자바스크립트 + XML(Asynchronous JavaScript + XML; Ajax) 덕분에 상호작용과 성능에 대한 사용자들의 기대치가 계속 높아지고 있고, Ajax를 웹 응용 프로그램의 필수 요소로 취급하는 개발자들도 점점 늘고 있습니다. 더 많은 코드가 클라이언트 측으로 이동하고 네트워크 모델이 바뀜에 따라, 커뮤니티는 Ajax 고유의 성능 문제들을 다루기 위해 더 많은 도구를 만들어내고 있습니다. Ajax-강화 응용 프로그램에서 성능 문제를 찾아내고 바로잡아주는 도구들에 대해 알아보겠습니다.

성능은 응용 프로그램에 Ajax를 도입해서 개선하려는 일차적인 이유 중 하나다. Ajax는 서버와 통신할 때 전체 페이지를 요청하지 않으므로 응답 시간을 개선할 수 있다. 응답 시간을 줄이면, Ajax는 훨씬 더 나은 사용자 경험을 제공할 수 있다. 그러나 Ajax 응용 프로그램의 성능을 분석하고 향상시키려면 전통적인 웹 응용 프로그램과는 다른 도구가 필요하다. 이 기사에서는 이러한 도구들에 대해 알아보고, 성능 문제를 찾고 고치기 위해 그 도구들을 사용하는 방법을 보여준다.

자주 쓰이는 약어
  • CSS: Cascading Style Sheets
  • HTML: Hypertext Markup Language
  • XML: Extensible Markup Language
  • HTTP: Hypertext Transfer Protocol

Ajax 응용 프로그램 성능은 웹 응용 프로그램의 몇 가지 측면에 근거한다.

  • 서버 응답 시간
  • 네트워크 전송 시간
  • 클라이언트 자바스크립트 처리 시간

전 통적인 웹 응용 프로그램 개발에서는, 서버 응답 시간이 성능 분석의 일차적인 관심사다. 성능 분석은 대부분 신속하게 요청을 처리하고, 필요한 응용 프로그램 로직을 수행하고, 응답을 생성하는 애플리케이션 서버의 능력을 측정한다. 일반적으로 잘 알려진 것처럼, Ajax 응용 프로그램 개발에서도 이러한 능력이 응용 프로그램 성능의 결정적인 측면이지만, 이 기사는 성능의 다른 부분에 초점을 맞출 것이다.




 한국 IBM DeveloperWorks[각주:1] 올라온 글중에 리눅스 사용자에게 도움이 될만한 글을 하나 소개하고자 한다.

원문링크 : nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴 (한글)

 IBM의 AIX 운영체제에는 NMON이라는 유틸이 있다. nmon은 top보다 다양한 정보를 보여주기때문에 시스템 모니터링시에 유용하게 쓸 수 있다.
리눅스 사용자들은 모니터링을 할때 top을 사용하는데, nmon을 사용하면 다양한 자료를 선택해서 볼 수 있다. AIX 전용 프로그램인줄로만 알았는데, IBM 홈페이지에서 Linux용 실행파일을 다운로드 받을 수 있다. 다운로드 받은 압축 파일을 풀어보면 Debian 3.1, Fedora 5, Knoppix 5, RHEL 2~4, SLES 9~10에서 실행할 수 있는 파일들이 있다.

사용자 삽입 이미지

실행화면

리눅스용 실행 초기 화면. 단축키에 대한 설명이 표시된다.

사용자 삽입 이미지

사용예

필요한 내용만 골라서 위의 화면처럼 사용할 수 있다.
  1. IBM DeveloperWorks는 개발 및 관리에 관한 다양한 기술문서 및 유명 IT 인사들의 컬럼, 인터뷰 등이 담겨있는 개발자를 위한 사이트이며 한국 IBM에서는 한글판 DeveloperWorks를 운영하고 있다. www.ibm.com/developerworks/kr [본문으로]

+ Recent posts