본문 바로가기

Note

[설치] 리눅스 환경에서 고려해야 될 parameter

리눅스 환경에서 DB2 설치를 하여 사용하는 경우 고려해야 되는 parameter가 존재한다.

 

1. randomize_va_space = 0

   DB2는 “자체 메모리 주소 체계”를 만들어 주소를 관리하도록 설계되어져 있다. 그래서 db2pd –osinfo 에서 "virtual memory” 라고 메모리 항목이 표현된 것을 볼 수 있다.

DB2에서 메모리 주소를 가상화해서 사용하다보니, OS 레벨에서 메모리 주소가 가상화 되어지는 것을 메모리 관리 안정성 면에서 위험할 수 있다고 보는 것 같다.

그래서 IBM TechNote에서 리눅스 운영체제에서 랜덤 주소 공간 사용을 하지 못하도록 설정을 권장하고 있다.

개인적으로 운영 서버의 경우 설정될 필요가 있다고 생각이 든다. (개발이나 테스트 용도의 경우는 별도 설정할 필요는 없을 것 같다)

 

(참고) https://www-304.ibm.com/support/docview.wss?uid=swg21365583

 

2. vm.swappingness=0

   DB2 교육 준비를 위하 자료를 찾다가 보게 된 parameter로 DB2 정보센터에는 별도 언급이 없는 것으로 알고 있다.

   물리적 메모리 가용 공간이 존재해도 어떤(?) 이유에서 SWAP 공간을 사용하는 경우가 발생하여 성능 저하가 될 수 상황을 방지하기 위하여  DB 서버 환경에서는 SWAP공간 사용을 막는 설정을 권장하는 것 같다.

   개인적으로 운영 서버 구축 시, OS 및 업무 담당자와 협의를 통하여 적용 여부를 결정하는 것이 좋을 것 같다.

 

(참고) http://seuis398.blog.me/70128624124

 

3. vm.overcommit_memory = 2 & vm.overcommit_ratio = 99

    자원이 극도로 적게 할당된 상태의 고객사 개발서버 환경에서 DB2 서버가 갑자기 죽어버리는 경우를 경험한 적이 있다. 리눅스는 OOM Killer (Out-of-Memory Killer) 라는 daemon이 작동을 하여 메모리 부족 시 메모리를 많이 잡고 있는 Application을 kill 시키도록 설계가 되어 있다.

 

    어떤 면에서는 안전 장치가 되겠지만, 중요한 업무를 수행하는 Application이라면 큰 문제를 야기할 수 있는 프로세스라고 할 수 있지 않을까 싶다.

    검색해서 본 문서를 보면 DB서버의 경우는 OOM Kill이 발생하지 않도록 메모리 overcommit을 허용하도록 설정하는 것을 권장하는 것 같다.

    실제 물리적 메모리보다 많이 가지고 있도록 설정을 해 놓아 OOM Kill에 의해 비정상적으로 죽는 것을 방지하고,  DB서버 자체적으로 메모리 부족 예외 상황을 만나 예외 처리 되도록 하는 것을 권장하는 것 같다.

 

    이 parameter도 운영 서버 구축 시에 OS 담당자 및 업무 담당자와의 협의를 통해 결정하는 것이 좋을 것 같다.

 

(참고) http://www.mimul.com/pebble/default/2013/05/10/1368171783727.html

         http://zalhae.blog.me/30150887343

'Note' 카테고리의 다른 글

[관리] db2dart 와 db2 inspect  (0) 2013.08.27
[성능] SQL 성능 분석  (0) 2013.08.26
[관리] row migration 과 row chain  (0) 2013.06.26
[설치] 비루트 설치  (0) 2013.06.19
[관리] 테이블 상태 확인(SQL0668N)  (0) 2013.05.28