AIX 스트라이핑(STRIPE)을 사용하여 데이터베이스 IO 최적화
9393 단어 최적화AIXIOORACLE 데이터베이스
운영 환경 IBM P560은 현재 Oracle DataGuard의 standby 시스템에서 사용되고 있습니다.oracle Apply 압축 파일 로그를 볼 때 서버의 IO 상황을 보면 Hdisk 0, 1의 IO가 때때로 100%에 달할 수 있음을 알 수 있습니다.반면 Hdisk 2, 3에서는 IO 활동이 적습니다.
분석에 의하면oracle의 데이터 파일 저장 디렉터리는/oradata에 있고 이 디렉터리는hdisk0, 1에 구축되었다.그러므로 데이터베이스에서 데이터 파일을 읽고 쓸 때 hdisk0,1만 IO가 있다.나머지 2개 디스크는 입출력 활동이 적습니다.그러므로 데이터베이스 파일을 루트 vg에서 옮기고 데이터베이스 압축 파일을 루트 vg에 구축하여 서버의 IO를 평균적으로 분포하는 목적을 달성하는 것을 고려한다.
2. 이론적 지지
일반적으로 LVM으로 관리하는 저장소는 한 vg에 많은 pv가 있을 수 있다. 마찬가지로 한 lv는 여러 개의 pv를 뛰어넘을 수 있다. 하드디스크의 저장 속도를 가속화하기 위해 밴드화 기술을 사용한다. 즉, 연속된 데이터를 크기가 같은 데이터 블록으로 나누어 순서대로 각 pv에 저장한다.RAID0과 비슷하여 스토리지 속도가 빨라집니다.그러나 데이터가 RAID0처럼 쉽게 잃어버리지 않는다. 정식 사용 중 이때 테스트를 하는 것처럼 여러 개의 하드디스크를 하나의 vg로 보장하지 않고 보편적으로 연결된 백엔드 저장소이기 때문이다. LUN을 나누기 전에 물리적 하드디스크에 RAID5나 RAID1을 만들었고 RAID5나 RAID1을 토대로 여러 개의 LUN, 즉 시스템의 pv를 나누었다.pv가 있는 하드디스크가 손상되었음에도 불구하고, 밑에 있는 하드 레이드 여분이 있어 데이터를 잃어버리지 않습니다.
스트라이프 유닛 크기: 스트라이프된 LV의 각 스트라이프 유닛 크기는 입출력의 블록 크기에 해당합니다.Oracle의 경우dbblock_크기가 설정된 블록 크기입니다.그리고dbfile_multiblock_read_count는 한 번에 읽을 때 가장 많은 병렬 블록의 개수,dbblock_size 및dbfile_multiblock_read_count를 곱하면 전체 입출력 크기가 됩니다.이 크기는 운영 체제의 최대 입출력(max io size) 값을 초과할 수 없습니다.ORACLE 응용 프로그램에서 lv 테이프의 크기는 일반적으로 두 배 또는 두 배 이상의 Oracle 블록 크기로 설정된다. 만약에 Oracle 블록과 같은 크기로 설정된다면 Oracle 블록의 경계가 테이프 단원의 경계와 정확하게 대응할 수 없기 때문에 대응하지 않으면 대량의 I/O가 두 개의 테이프 단원으로 처리되는 상황이 발생할 수 있다.
스트라이프 크기 원칙: 동시 입출력 요청이 높고 입출력 요청이 적은 경우 하나의 물리적 하드 드라이브에서 여러 입출력 요청을 처리하며, 낮은 동시 입출력 요청이 크면 여러 개의 하드 드라이브에서 한 개의 입출력 요청을 처리할 수 있습니다.원칙적으로 입출력 요청은 한 번에 처리됩니다.
대략적인 스트라이프화 개념은 이렇다.
3. 매개 변수 추출
- P560A:/#lspv
- hdisk0 00c3ee9e3439bc67 rootvg active
- hdisk1 00c3ee9e5033384d rootvg active
- hdisk2 00c3ee9eae48cc48 rootvg active
- hdisk3 00c3ee9eae48df75 rootvg active
-
- P560A:/#lspv -l hdisk0
- hdisk0:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- hd10opt 8 8 00..00..08..00..00 /opt
- hd3 40 40 00..00..40..00..00 /tmp
- hd1 4 4 00..00..04..00..00 /home
- hd2 16 16 00..00..16..00..00 /usr
- hd9var 4 4 00..00..04..00..00 /var
- hd8 1 1 00..00..01..00..00 N/A
- hd4 4 4 00..00..04..00..00 /
- hd5 1 1 01..00..00..00..00 N/A
- hd6 32 32 00..00..32..00..00 N/A
- tsmdb 30 30 20..10..00..00..00 /tsmdb
- oradatalv 278 278 49..11..00..109..109 /oradata
- oraclelv 40 40 40..00..00..00..00 /home/oracle
- weblogiclv 40 40 00..40..00..00..00 /weblogic
- weblogic9lv 40 40 00..40..00..00..00 /weblogic9
- lg_dumplv 8 8 00..08..00..00..00 N/A
-
- P560A:/#lspv -l hdisk1
- hdisk1:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- hd10opt 8 8 00..00..08..00..00 /opt
- hd3 40 40 00..00..40..00..00 /tmp
- hd1 4 4 00..00..04..00..00 /home
- hd2 16 16 00..00..16..00..00 /usr
- hd9var 4 4 00..00..04..00..00 /var
- hd8 1 1 00..00..01..00..00 N/A
- hd4 4 4 00..00..04..00..00 /
- hd5 1 1 01..00..00..00..00 N/A
- hd6 32 32 00..00..32..00..00 N/A
- tsmdb 30 30 20..10..00..00..00 /tsmdb
- oradatalv 324 324 89..17..00..109..109 /oradata
- fwdump 2 2 00..02..00..00..00 /var/adm/ras/platform
- weblogiclv 40 40 00..40..00..00..00 /weblogic
- weblogic9lv 40 40 00..40..00..00..00 /weblogic9
-
- P560A:/#lspv -l hdisk2
- hdisk2:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- oradatalv 598 598 152..223..223..00..00 /oradata
-
- P560A:/#lspv -l hdisk3
- hdisk3:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- archlog_lv 400 400 00..223..177..00..00 /archivelog
-
- P560A:/#lslv -l oradatalv
- oradatalv:/oradata
- PV COPIES IN BAND DISTRIBUTION
- hdisk0 278:000:000 3% 049:011:000:109:109
- hdisk1 324:000:000 5% 089:017:000:109:109
- hdisk2 598:000:000 37% 152:223:223:000:000
-
- P560A:/#lslv -l oraclelv
- oraclelv:/home/oracle
- PV COPIES IN BAND DISTRIBUTION
- hdisk0 040:000:000 0% 040:000:000:000:000
-
- P560A:/#lslv -l archlog_lv
- archlog_lv:/archivelog
- PV COPIES IN BAND DISTRIBUTION
- hdisk3 400:000:000 55% 000:223:177:000:000
4. 최적화 절차
1. hdisk2를 루트 vg에서 제거
reducevg –d rootvg hdisk2;
2, hdisk2, hdisk3 데이터 vg 만들기
smit mkvg 입력 VG 이름은 datavg이고 선택 디스크는 hdisk2, hdisk3입니다.
3, smit mklv 새 스트라이프 LV
LV 이름 입력:oradatalv
LV 유형: JFS2
LV 분포 PV: hdisk2, hdisk3
strip Size 선택: 128K (oracle의db block size *에서 동시에 읽는 블록을 권장하며 현재 시스템은 최대 128K까지 허용됨)
lslv -m oradata_lv에서 LV의 물리적 구역이 hdisk2와 Hdisk3에 평균적으로 분포되어 있음을 발견하였다
4. 새 파일 시스템
smit jfs2 파일 시스템 구축
5. 최적화 결과
P560A:/backup#lspv
hdisk0 00c3ee9e3439bc67 rootvg active
hdisk1 00c3ee9e5033384d rootvg active
hdisk2 00c3ee9eae48cc48 datavg active
hdisk3 00c3ee9eb6975c7e datavg active
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깨끗한 것을 보고 싶기 때문에 최적화 함수의 벤치마크에 이용되는 함수의 가시화를 해 보았다결정되지 않음 (자기 만족) 「헤이 이런 거 있어」라고 생각하는 사람 최적화 함수란? 거친 이미지로 1) x + 10 = 25 2) x + 60 = 15 3) x + 45 = 60 의 x를 기계에 구할 때 정확하게 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.