Oracle VMSTAT을 이용한 CPU 사용량 활용법
DB Version : Oracle 11.2.0.2
OS Version : AIX 6.1
(1). Table 생성
- DB User : SYSTEM
- Table : VMSTAT (Compress BASIC)
- Tablespace : NEW_TABLESPACE
CREATE TABLE SYSTEM.VMSTAT ( HOSTNAME VARCHAR2(30 BYTE), TIMESTAMP DATE, KTHR_R VARCHAR2(30 BYTE), KTHR_B VARCHAR2(30 BYTE), MEMORY_AVM VARCHAR2(30 BYTE), MEMORY_FRE VARCHAR2(30 BYTE), PAGE_RE VARCHAR2(30 BYTE), PAGE_PI VARCHAR2(30 BYTE), PAGE_PO VARCHAR2(30 BYTE), PAGE_FR VARCHAR2(30 BYTE), PAGE_SR VARCHAR2(30 BYTE), PAGE_CY VARCHAR2(30 BYTE), FAULTS_IN VARCHAR2(30 BYTE), FAULTS_SY VARCHAR2(30 BYTE), FAULTS_CS VARCHAR2(30 BYTE), CPU_US VARCHAR2(30 BYTE), CPU_SY VARCHAR2(30 BYTE), CPU_ID VARCHAR2(30 BYTE), CPU_WA VARCHAR2(30 BYTE) ) TABLESPACE NEW_TABLESPACE COMPRESS BASIC; CREATE INDEX SYSTEM.VMSTAT_N1 ON SYSTEM.VMSTAT (TIMESTAMP, HOSTNAME) TABLESPACE NEW_TABLESPACE;
(2). Shell Script 내용 작성
- Script Directory : /oracle/DBAWORK/DB_JOB/
- Shell Script Name : insert_vm.sql
################################################################### # VMSTAT CPU Usage Insert Script ################################################################### export ORACLE_SID=ORCL export ORACLE_UNQNAME=ORCL export ORACLE_BASE=/oracle/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.2 export PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ccs/bin:/usr/ucb:$PATH export ORACLE_OWNER=oracle export DATE=`date +'%Y%m%d%H%M%S'` export HOST=`hostname` export OUTPUT=/oracle/DBAWORK/DB_JOB/insert_vm.sql echo " insert into system.vmstat values ('${HOST}',sysdate,`vmstat 1 2 | tail -1 | awk '/ /{print $1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14","$15","$16","$17 }' `) ; " > $OUTPUT sqlplus / as sysdba <<EOF @/oracle/DBAWORK/DB_JOB/insert_vm.sql commit; EOF
(3). OS에 contrab 등록
- 30s 단위로 저장할수 있게 crontab이 등록
- chmod 변경
## vmstat information * * * * * /oracle/DBAWORK/DB_JOB/insert_vm.sh & sleep 30; /oracle/DBAWORK/DB_JOB/insert_vm.sh >> /dev/null vi /oracle/DBAWORK/DB_JOB/insert_vm.sh chmod 700 /oracle/DBAWORK/DB_JOB/insert_vm.sh
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
14 | Schema Password 복사 하기 | Talros | 2016.10.05 | 3487 |
13 | Block Cleanout(블럭 클린아웃) | 명품관 | 2016.09.23 | 1797 |
12 | Fixed Table에 대한 권한은 직접적으로 부여되지 않는다. | 명품관 | 2016.08.26 | 2945 |
11 | Oracle Archive log 사용량 확인(GV$ARCHIVED_LOG) [1] | 에밀리오 | 2016.08.04 | 11896 |
10 | Oracle Resource Limit를 이용한 간단한 Parameter Check (GV$RESOURCE_LIMIT) | 에밀리오 | 2016.07.15 | 2469 |
» | Oracle VMSTAT을 이용한 CPU 사용량 활용법 | 에밀리오 | 2016.07.14 | 1113 |
8 | Kill Session Script (GV$SESSION) | 에밀리오 | 2016.07.12 | 2350 |
7 | Active Session History를 이용한 TOP SQL 분석 (GV$ACTIVE_SESSION_HISTORY) | 에밀리오 | 2016.07.12 | 1419 |
6 | DB에 생성된 ROLE의 생성 정보 확인 [2] | 명품관 | 2016.05.31 | 2404 |
5 | 내가 돌린 SQL ID 찾기 [1] | Talros | 2016.05.12 | 9031 |
4 | 테이블 컬럼의 Default 값에 대한 흔적은 Dictionary에 계속 남게 된다. | 명품관 | 2016.04.05 | 1729 |
3 | Result Cache(oracle11g NF) [6] | ocm10gr2 | 2016.03.14 | 384 |
2 | Alert Log를 SQL 사용하여 보기 (X$DBGALERTEXT) [1] | 에밀리오 | 2016.01.28 | 2305 |
1 | Partition 추가의 계절 - Range Partition 추가시 알아 두어야할 부분 [1] | 명품관 | 2015.12.03 | 2551 |