ALTIBASE 사용자가이드 Templete

Similar documents
ALTIBASE 사용자가이드 Templete

Microsoft PowerPoint - o8.pptx

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

untitled

PowerPoint 프레젠테이션

리눅스 프로세스 관리

vm-웨어-앞부속

리눅스 free 메모리의이해 엑셈컨설팅본부 /DB 컨설팅팀임경석 개요 리눅스환경에서메모리사용률을모니터링하기위해명령어를실행하다보면시스템을기동한지얼마되지않아 free 영역의지표가급격히줄어드는것을쉽게확인할수있다. 리눅스어드민경험이있는사람이라면이것이무엇을의미하는지알수있지만그렇

Sharing Memory Between Drivers and Applications

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

ALTIBASE 사용자가이드 Templete

11장 포인터

Microsoft Word - FunctionCall

Adobe Flash 취약점 분석 (CVE )

PowerPoint Presentation

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

SANsymphony-V

6주차.key

휠세미나3 ver0.4

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

JVM 메모리구조

1217 WebTrafMon II

슬라이드 1

Microsoft PowerPoint - 발표_090513_IBM세미나_IPTV_디디오넷_완료.ppt

ALTIBASE 사용자가이드 Templete

ALTIBASE 운영을 위한 Linux 설정 가이드 개요 본 문서는 리눅스(Linux) 운영체제(Operating System)에서 ALTIBASE를 설치하고 운영하기 위한 커널파라미터(kernel parameter)의 적절한 설정 값 및 사용자 환경변수에 대한 가이드

Solaris Express Developer Edition

Deok9_PE Structure

산업입지내지6차

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

No

ALTIBASE 사용자가이드 Templete

Deok9_Exploit Technique

DocsPin_Korean.pages

Install stm32cubemx and st-link utility

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

Windows Server 2012

PowerPoint 프레젠테이션

ALTIBASE 사용자가이드 Templete

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

MySQL-Ch10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10


슬라이드 1

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

튜닝및모니터링 HP JVM 튜닝옵션

[Brochure] KOR_TunA

4임금연구겨울-지상토론

PRO1_02E [읽기 전용]

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

PowerPoint 프레젠테이션

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

*금안 도비라및목차1~9

AVG PC TuneUp User Manual

歯MW-1000AP_Manual_Kor_HJS.PDF

ez-md+_manual01

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

PowerPoint 프레젠테이션

untitled

歯박지원-구운몽.PDF

*금안14(10)01-도비라및목차1~12

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

PowerPoint Presentation

ez-shv manual

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

SRC PLUS 제어기 MANUAL

ESET Mobile Security for Android

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

BMP 파일 처리

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

C# Programming Guide - Types

Microsoft PowerPoint Predicates and Quantifiers.ppt

PRO1_18E [읽기 전용]

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

Microsoft Word - zfs-storage-family_ko.doc

슬라이드 1

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Docker Cgroup 박문식

pseries, Systems Group pseries 2003 Corporation (p) Systems Group POWER4/POWER4+ pseries! +! + + The Only Complete UNIX on Demand

UI TASK & KEY EVENT

PowerPoint 프레젠테이션


Microsoft PowerPoint - chap06-2pointer.ppt

PRO1_04E [읽기 전용]

초보자를 위한 분산 캐시 활용 전략

Sena Technologies, Inc. HelloDevice Super 1.1.0

Figure 5.01

PowerPoint 프레젠테이션

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Runtime Data Areas 엑셈컨설팅본부 /APM 팀임대호 Runtime Data Area 구조 Runtime Data Area 는 JVM 이프로그램을수행하기위해할당받는메모리영역이라고할수있다. 실제 WAS 성능문제에직면했을때, 대부분의문제점은 Runtime Da

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Transcription:

Real Alternative DBMS ALTIBASE, Since 1999 UNIX Memory Management 2010. 03 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved.

Document Control Change Record Date Author Change Reference 2010-03-11 lim272 Created Reviews Date Name (Position) Distribution Name Location UNIX Memory Management 2 page of 14

목차 개요... 4 SOLARIS 시스템의관리기법... 5 메모리할당... 5 메모리부족... 5 pmap... 6 AIX 시스템의메모리관리정책... 7 메모리의분류... 7 메모리의할당... 8 메모리의부족... 8 svmon... 8 HP 시스템의메모리관리정책... 10 메모리의할당... 10 메모리의부족... 10 메모리사용량확인... 10 LINUX 시스템의메모리관리정책... 12 Linux 메모리관리... 12 Linux 메모리확인... 12 MISC.... 13 메모리의기본크기... 13 왜 vsz 은줄지않는가?... 13 UNIX Memory Management 3 page of 14

개요 본문서에서는유닉스 (UNIX) 시스템에서프로세스가요청하는메모리에대해어떻게관리되는지개략적인이해를위해만들어졌다. 따라서, 심도있는이해는각벤더에서제공하는문서등을참고하도록한다. UNIX Memory Management 4 page of 14

Solaris 시스템의관리기법 솔라리스운영체제의메모리관리에대해설명한다. 메모리할당 솔라리스는 reserved 라는형태로메모리를할당한다. reserved 영역은 swap 영역에존재한다. 즉, 어떤프로세스가 10M 를요청하면 swap 영역에 10M 를먼저할당해놓고실제해당프로세스가메모리에접근할때물리적메모리에 10M 를할당하는형태로동작한다. 따라서, 솔라리스는 Swap 영역이부족하면어떠한프로세스도동작할수없다. -bash-4.0$ /usr/sbin/swap -s total: 3610640k bytes allocated + 1939792k reserved = 5550432k used, 36742272k available 위의박스에예처럼 swap 정보로볼때실제물리적인메모리가여유있을때라도 Swap 영역이쓰여지고있는걸확인할수있는데이는솔라리스자체가메모리요청에대해무조건 reserved 영역을먼저할당하는정책을갖고있기때문이다. 아래는코드상으로 VSZ/swap 영역의변화를보여준다. Memory Allocation Reserved(Swap) VSZ 1. 요청 P = malloc(100m) 100M 0M 2. 실제사용 For (i=0; i<10m;i++) *(p+i) = 1 90M 10M 실제코드상으로 alloc 을하여도메모리가즉시증가하지않는다. 이후실제접근시점에메모리사용량이증가하는것을확인할수있다. 메모리부족 솔라리스는기본적으로여유있는메모리는파일캐쉬로사용한다. 이조건은기본적으로물리적메모리가 lotsfree 로설정된값 ( 전체메모리의 1/64) 이상으로여유있을때에만파일캐쉬로사용한다. (5.7 이하에서는파일캐쉬를 free 메모리가필요로할때우선적으로선택될수있도록옵션을줘야했으나 5.8 이상부터는기본적으로파일캐쉬역시 free 메모리에잡힌다. 따라서, AIX/HP 와달리사용자가별도의설정을할필요는없다.) 그런데, 만일, lotsfree 이하로유지가되기시작하면시스템은메모리페이지들을검색하여최근사용되지않는페이지들을찾아내기시작한다. (vmstat 정보에서 sr 부분에이러한검색수치가나온다.) lotsfree 를유지하기위해이러한자주접근되지않는페이지들을메모리에내리고 lotsfree 수준을채우도록동작한다. 이와같은동작을 swap(swapping) 이발생한다고지칭한다. (vmstat 상에서는 fr 은메모리의 freepage 된개수를의미하는데 free 되었다는말은해당메모리상의페이지가변경된정보가있다면디스크로갱신되게됨으로이와 UNIX Memory Management 5 page of 14

같은 swapping 이발생하는상태에서는디스크 I/O 가빈번하게발생함으로시스템전체의성능이저하되는현상을보인다.) pmap 솔라리스는다음과같이프로세스의실사용부분에대해상세하게조회할수있는유틸을제공하고있다. # pmap -F 22748 0000000100D22000 8560K rwx-- /home1/hjkim/altibase/5.1.5.72/bin/altibase 000000010157E000 488320K rwx-- [ heap ] FFFFFFFF72EFE000 8K rw--r [ stack tid=74 ] FFFFFFFF730FC000 16K rw--r [ anon ] FFFFFFFF732FC000 16K rw--r [ anon ] FFFFFFFF73C00000 10240K rw-s- dev:118,46 ino:45717892 맨위는프로세스메모리가될것이고 heap 영역이메모리 DB 등이위치하는영역이된다. anon 의의미는 MMAP_PRIVATE 맵핑을가진페이지에대해초기접근시영역을의미한다. ino 등이있는것은 mmap 으로올라온리두로그버퍼영역이라고보면된다. UNIX Memory Management 6 page of 14

AIX 시스템의메모리관리정책 AIX 운영체제의메모리관리에대해설명한다. 메모리의분류 AIX 의메모리사용에대해이해를위해먼저메모리의분류에대한정의를설명한다. 분류 Persistent Client Computational 설명 JFS의파일캐쉬로사용되는영역 CDROM, NFS, JFS2 의파일캐쉬로사용되는영역 Process stack, heap, shared Memory 등의영역 이해를위해 svmon 으로나온결과를가지고설명해보도록한다. (svmon 의결과는특별한표기가없는한모두 page 단위이며 1page 는기본적으로 4K 이다.) Shell> svmon G size inuse free pin virtual memory 2031616 1779678 251938 474697 1682009 pg space 4128768 495129 work pers clnt other pin 404863 0 0 69834 in use 1225427 5 554246 위의결과를아래표에서먼저설명한다. 항목 ( 붉은박스 ) size inuse free pin virtual pg space 설명 전체물리적메모리의페이지개수를의미한다. 실제 1page 는 4,096byte 임으로 7936M 의메모리를갖는시스템임. (Computational + Persistent) 의실제사용중인물리적인메모리의페이지개수 물리적메모리에서사용중이지않은페이지개수 Swap out 할수없는물리적메모리의페이지개수 VMM (Virtual Memory Manager) 에의해생성된페이지개수 Paging space 공간의사용량 붉은박스바깥쪽의 pin 의합계가붉은박스내의 pin 의용량과같고 inuse 역시동일하다. 여기서알아둘것은동일한 inuse 로사용중이어도일부분은파일캐쉬로사용중이라는사실을확인할수있다는점이다. UNIX Memory Management 7 page of 14

메모리의할당 SUN 과다르게미리 reserved 영역을할당하지않고 deferred 형태로동작한다. 즉, 동작중에실제로메모리가부족할경우에만 swap 영역을사용하는형태로동작한다고이해하면된다. 메모리의부족 AIX 는기본적으로여유메모리를모두파일캐쉬로사용하려고노력한다. 따라서메모리가부족할경우에는다음과같이동작한다. 만일, 파일캐쉬로사용중인메모리의양이 MAXPERM 이상이면무조건파일캐쉬에서메모리를 steal 한다. MAXPERM 과 MINPERM 사이이면파일캐쉬와 computational 메모리중에 I/O 가적을것이라고판단되는쪽에서 steal 을하게된다. 따라서, MAXPERM 의설정값크기에따라서는프로세스입장에서는잘사용되던메모리의일부가 paging space 영역으로 swap 되면서재접근시에디스크 I/O 를유발하여성능상지터 (jitter) 현상이발생하는경우가있을수있다. ALTIBASE 를사용할경우이러한지터현상을가능한배제하기위해 AIX5.2ML04 이상에서는몇가지프로퍼티를설정하도록권고하고있다. 자세한설정부분은 ALTIBASE 환경설정가이드 For AIX 문서나 AIX 에서배포하는성능튜닝과관련된기술문서를참고하도록한다. 관련항목 MAXPERM MINPERM 설명 물리적메모리가파일캐쉬로사용되는점유율의최대치 (soft limit) 물리적메모리가파일캐쉬로사용되는점유율의최소치 NUMPERM 실제파일캐쉬로사용되는영역의점유율 (vmtune, vmo 등으로확인 ) MAXCLIENT NFS, JFS2 등의파일캐쉬로사용되는점유율의최대치 stric_maxperm 1 로설정할경우 MAXPERM 을유지하게함. lru_file_repage 0 으로설정시메모리부족시에발생하는 steal 에대해 JFS2 등의파일캐쉬에서만발생하도록강제로지정. svmon AIX 에서는 svmon 을통해프로세스의실제메모리사용량을자세히확인할수있다. Shell> svmon -P 356528 ------------------------------------------------------------------------------- Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB 356528 altibase 37992 8380 59579 96475 Y Y N PageSize Inuse Pin Pgsp Virtual s 4 KB 29224 8332 59579 87707 m 64 KB 548 3 0 548 UNIX Memory Management 8 page of 14

Svmon 은기본적으로스냅샷을제공하는정보가아니며통계성정보로보아야한다. 따라서, (ps v [process id]) 와같은명령어로확인하는메모리사용량과 svmon 의결과는다를수있다. 다만, svmon 에서는 pgsp 항목을주목할필요가있다. 이부분이증가하고있다는점은실제로메모리가부족하거나또는 computation memory 영역이 steal 되어 swapping 되었다는의미이고 ALTIBASE 입장에서는성능저하를유발할수있는문제임으로확인후파일캐쉬설정을조정하도록해야한다. ps 명령을통해아래와같이실제메모리의사용량을알아낼수도있다. Shell> ps v 356528 PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM 356528 - A 29:37 4700 290328 77688 xx 17933 3396 0.1 1.0 ps 결과와 svmon 의결과에서분석상의문제는 svmon 의 inuse 부분의합계가실제 ps 결과의 SIZE 와일치해야하지만 page-out 된경우에는실제로 ps 쪽이더크게표시된다. UNIX Memory Management 9 page of 14

HP 시스템의메모리관리정책 HP 운영체제의메모리관리에대해설명한다. 메모리의할당 HP 의메모리할당정책은 arena 라고부르는부분과관련이깊다. 자세한사항은 man- Page 를통해 malloc 으로확인하도록하며요점만설명하면시스템은메모리를할당하기위해메모리풀 (arena) 을관리하는데쓰레드프로그램의경우이 arena 를통해메모리를할당받게된다. 만일, 쓰레드의개수가많이증가할경우 arena 의개수를조정함으로써동시성측면에서성능향상을도모할수있다. (non-thread 의경우는오직 1 개의 arena 를통해메모리를할당받게된다.) Shell> export _M_ARENA_OPT=16:8 위와같이환경을설정하면 16 개의 arena 를통해쓰레드들이메모리를할당받게되는데만일 arena 가가진메모리풀이부족해지면 (8*4096byte) 단위로메모리풀을확장하는형태로동작하겠다는의미이다. (expansion 의단위가너무클경우급격하게메모리가증가하는현상이발생할수있음으로이환경변수를설정할때에는많은테스트를필요로한다. 기본값은 8:32 이다.) 메모리의부족 Swapping 정책은여타운영체제와다르지않아별도의설명은생략한다. 메모리사용량확인 공통적으로 Glance 를통해확인하는방법이가능하다. Shell> glance 를구동한후 m 으로분기하면전체시스템메모리상태를확인할수있으며 s 를누른후프로세스를지정하여 M 을누르면프로세스의메모리사용형태를확인할수있다. pmap 이있는버전의경우 pmap 을사용할수있다. rx6600:[/] pmap 12379 12379: /altibase_home/bin/altibase -p boot from admin OFFSET VSZ RSZ TYPE PRM FILE 0 4K 4K SD(170) r-- [nullderef] 4000000000000000 15.1M 11.5M SC(2) r-x [text] 6000000000000000 901M 658M PD rw- [data] 9fffffff7d67f000 72K 64K PD rw- [uarea] 9fffffff7d7af000 72K 64K PD rw- [uarea] UNIX Memory Management 10 page of 14

HP 에서프로세스의정확한메모리사용은 pmap 명령으로확인할수있다. 솔라리스와비슷한결과형태를보여주고있다. HP 도 AIX 와동일하게파일캐쉬에대한설정을조정할수있다. 이값들은전체적인성능과도연관이있기때문에상황에따라설정권고치가가변적이지만일반적으로 5%(min)/15%(max) 를설정권고한다. 커널항목 dbc_max_pct dbc_min_pct 설명 파일캐쉬로사용할메모리의최대임계치 파일캐쉬로사용할메모리의최소임계치 UNIX Memory Management 11 page of 14

Linux 시스템의메모리관리정책 Linux 운영체제의메모리관리에대해설명한다. Linux 메모리관리 리눅스는파일캐쉬부분에대해서는 AIX 와유사한메모리사용정책을갖는다. 즉, 여유메모리는모두파일캐쉬로사용하려고시도한다. 단, 커널 2.6 부터는이부분에대한제한을두게되는데다음으로파일캐쉬의사용량을제한시킬수있다. Shell> cat /proc/sys/vm/swappiness 설정시에는 sysctl 을사용한다. 기본적으로 60(%) 으로설정되어있으며조금복잡한산술식이존재하지만간단하게 swappiness 에설정된값이상으로물리적메모리가사용되기시작하면무조건 swapping 을하기시작한다. 이것은리눅스시스템자체가설정값이하를파일캐쉬로확보하기위한노력으로 swapping 을발생시키는것이다. 하지만, 이부분은사용자가원하던원치않던 swapping 으로인한비용을유발함으로써파일캐쉬를통한성능상의이점보다오히려더나쁜시스템성능을가져올수있기때문에비록현재, ALTIBASE 에서는이에대해특별한권고를하고있지않지만 MySQL 등에서는이커널값에대해 0 으로설정할것을권고하고있음을참고하도록한다. Linux 메모리확인 Top 또는 pmap 명령으로프로세스의메모리사용량을확인할수있다. UNIX Memory Management 12 page of 14

Misc. 기타공통적이거나혹은별도의숙지할사항을설명한다. 메모리의기본크기 각운영체제별로메모리관리를최소단위인페이지단위로수행하며개별크기는아래와같다. 운영체제 SUN AIX HP 크기 ( 단위 :byte) 8192 4096 4096 왜 vsz 은줄지않는가? 일반적으로운영체제는프로세스가사용한메모리영역을프로세스가종료될때에만 free 영역으로반납한다. 즉, 프로세스에서사용자가명시적으로할당받은메모리영역에대해 free() 를호출하여도그즉시, 해당영역을해제하지않는다. 이는해당프로세스가해제한메모리영역을다시재사용할것이라고기대하는부분과운영체제의메모리관리자가프로세스에의해해제된영역이프라그먼트형태로남아이를다시재구성하여할당가능한세그먼트의 free-list 로만들어야할경우커널비용이성능에큰영향을줄수있기때문이다. 따라서, 운영체제는프로세스가 free() 를하더라도실제모니터링툴등을통해 VSZ 의크기가줄지않는현상을보게되는데이는앞서설명한이유때문이다. UNIX Memory Management 13 page of 14

알티베이스 서울특별시구로구구로 3 동 182-13 대륭포스트 2 차 1008 호 02-2082-1000 http://www.altibase.com 대전사무소대전광역시서구둔산동 921 주은리더스텔 901 호 042-489-0330 기술지원본부서울특별시구로구구로 3 동 182-13 대륭포스트 2 차 908 호 02-2082-1000 솔루션센터 02-2082-1114 http://support.altibase.com Copyright c 2000~2013 ALTIBASE Corporation. All Rights Reserved. 이문서는정보제공을목적으로제공되며, 사전에예고없이변경될수있습니다. 이문서는오류가있을수있으며, 상업적또는특정목적에부합하는명시적, 묵시적인책임이일체없습니다. 이문서에포함된 ALTIBASE 제품의특징이나기능의개발, 발표등의시기는 ALTIBASE 재량입니다. ALTIBASE는이문서에대하여관련된특허권, 상표권, 저작권또는기타지적재산권을보유할수있습니다. UNIX Memory Management 14 page of 14