HP-UX Parameter Tuning on the Oracle DB Server Presentation Title MC Seminar HP-UX Parameter Tuning on the Oracle DB Server 문 창 훈 미션크리티컬 지원팀 한국 HP 2004.02.19
HP-UX Tuning for Oracle Database 목 차 Kernel Configurations for Oracle Databases TCP/IP Parametes Patch 정보 Q n A 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Kernel Configurations for Oracle Databases Presentation Title MC Seminar HP-UX Kernel Configurations for Oracle Databases Walk-in HP logo
Kernel Parameters for HP-UX Presentation Title Kernel Parameter 확인 방법 SAM 의 Kernel Configuration -> Configuratble Parameters 또는 /usr/sbin/kmtune –l 로 확인 할 수 있다. OS Kernel 이 32/64 bit 확인 방법 getconf KERNEL_BITS 현재 시스템의 Kernel Parameter 의 설정치 및 설정할 수 있는 값을 보려면 sysdef | more Oracle 32/64 여부 file $ORACLE_HOME/bin/oracle 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Parameters for Oracle 분류 Parameters 비고 IO 관련 Buffer Cache, Async Ports, Streampipe - Process & Thread Max_thread_proc, nkthread, maxdsiz, maxtiz, maxsiz - System Tables Maxusers, maxuprc, nproc, nflock, nfile, ncallout, ncsize - System V IPC System V Message Queues, System V Semaphores, System V Shared Memory - 기타 Swapmem_on, maxswapchunk, swchunk SCHED_NOAGE - 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title IO 관련 Parameters
dbc_max_pct, dbc_min_pct Presentation Title 정의: 다이내믹 버퍼 캐쉬의 상한값과 하한값의 설정 기본: 50 와 5 권장: dbc_max_pct: 20 or 10 dbc_min_pct: 5 주의: 메모리 8GB 이하의 시스템은 maximum 20% 메모리 8GB 이상의 시스템은 10% raw device 를 주로 쓰는 서버는 더욱 줄인다 sar –b 명령과 PV 에서 GBL_MEM_CACHE_HIT_PCT 에서 hit ratio 를 확인할 수 있다 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title SGA Buffer Cache v.s OS Buffer Cache. Oracle 의 Data file 이 Unix 의 File System 에 존재하는 경우 Oracle Shadow Process 에 의해서 IO 가 요청 되면 File System OS Buffer Cache Oracle SGA Buffer Cache Shadow Process 순으로 전달된다. 따라서 IO 가 이중으로 Buffering 되는 오버헤드가 존재하게 된다. File System 을 이용하지 않고 Raw Device 를 Oracle 의 Data File 로 사용하는 경우에는 데이타의 흐름 은 Logical Volume Oracle SGA Buffer Cache Shadow Process 순으로 전달되어 중간에 OS Buffer Cache 를 통하지 않게 된다. 이경우 OS Buffer Cache 를 상당부분 적게 가져가면 Memory 의 효율성 측면이나 성능에서 잇점이 있게 된다. Static v.s Dynamic Static 은 Dynamic 에 비해서 성능상의 잇점을 가지고 있지 않다. 따라서 대부분의 경우 Dynamic Buffer Cache 를 사용할 것을 권고한다. 하지만 일정한 양의 Buffer Cache 를 고정하고자 할때 Memory Size 가 변동이 되었을때 Dynamic Buffer Cache 는 사이즈가 같이 변동되나 Static 일 경우 변동되지 않으므로 이럴때 사용되기도 한다. 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database max_async_ports Presentation Title 정의: 한번에 열수 있는 asyncdsk device 의 최대 포트수 기본: 50 권장: shadow process 수 + parallel query slave process 수 Async IO 를 사용하는 경우 이용됨 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Streampipes Presentation Title 정의: 시스템에서 생성되는 모든 Pipe 를 Streams 기반의 pipe 로 만든다 기본: 0 (No) 권장: 0 (No) 주의: Oracle 설치시나 re-link 시 이것이 1 로 되어 있으면 속도저하가 발생 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title Streams 및 Streamspipe 의 정의 Streams: Streams 는 HP-UX 의 Kernel 과 Device Driver 간의 communication 하는 특별한 IO mechanism 이며 해당 Data 에 대해서 특별한 처리를 할 수 있는 별도의 module 을 stream 으로 “plug” 할 수 있다. Streampipes: pipe() system call 에 의해서 생성되는 PIPE 의 Type 을 결정한다. 그 값이 1 이면 Streams-base 의 pipe 가 생성이 되고 0 이면 normal 의 pipe 가 생성된다. Streams pipe 와 normal pipe 간의 차이점 Normal HP-UX Filesystem 의 pipe 경우 DATA의 송수신시 atomicity 가 보장되는 최대 Buffer Size 는 8K 로 제한되어 있는데 반하여 Streams 는 그 제한이 없다. Normal HP-UX Filesystem pipe 의 경우 pipe 를 생성 할때 Kernel 과 Device driver 간에 communication 시 거치는 단계가 적으므로 overhead 가 적으나 Streams based pipe 의 경우 modular base 로 구성함으로써 streams module 을 유지할 수 있는 데이터 구조를 생성하고 Data 를 전달하는 과정상의 여러 module 을 거치는 등 약간의 overhead 가 있을 수 있다. 8K 이하의 소량의 Data 송수신이 다량의 건수가 발생할 경우에는 Streams based pipe 의 경우 심각한 성능의 저하를 유발 할 수 있다. Pipe 를 통하여 한번에 보낼 수 있는 Buffer 의 size 가 제한이 없으므로 대용량의 데이터 처리를 할 경우에는 Streams based 가 유리하다. Pipe 를 통해서 전달하는 Data 에 대해서 특별한 처리를 원하여 Streams module 을 pipe 에 추가하는 Application 의 경우는 반드시 Streams based pipe 를 사용해야 한다. 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title Process 및 Thread
max_thread_proc, nkthread Presentation Title 정의: max_thread_proc : 프로세스당 가질 수 있는 최대 thread 수 nkthread : 시스템이 가질 수 있는 최대 thread 수 기본: max_thread_proc : 64 nkthread : (((NPROC * 7) / 4) + 16) 권장: max_thread_proc : 대부분 JAVA 를 사용하기 때문에 2048 로 맞춘다 nkthread : 대략 NPROC * 2 의 값정도 주의: nkthread 의 값 NPROC * 2 은 non-threaded process 라고 가정 위의 값에다 threaded application (e.g. Java ..) 의 예상 thread 수를 더한다 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title 예제: 1. NKTHREAD 는 시스템에서 동시에 존재할 수 있는 thread 수의 총합을 나타낸다. 이것이 존재하는 이유는 시스템에서 application 의 비정상적인 동작으로 인하여 너무 많은 thread 가 생성되어 시스템의 성능을 떨어뜨리는 것을 방지하기 위해서, 또는 시스템을 공격하는 수단으로 application 의 thread 를 많이 생성하는 것을 방지하기 위해서 존재하며, 기본값은 (((NPROC*7)/4)+16) 이라는 값이 기본으로 되어 있다. 즉 프로세스당 약 2개정도 thread 를 고려 한 것임. 하지만 java application 처럼 multi-threaded application 을 위해서는 이런 기본값만으로는 부족하므로 이런 경우에는 다음의 값을 더해서 nkthread 값을 계산함. (1) threaded application 에 의해서 사용되는 thread 수의 최대치 (2) 시스템에서 1번의 application 이 동시에 돌아가는 process 의 갯수 (3) 기타 시스템및 다른 application 을 위한 thread 수 (nproc * 2) 가 적당 NKTHREAD = (1) * (2) + (3) 2. MAX_THREAD_PROC 에 관해서는 Oracle OC4J PACKAGE 는 Normal 상태에서 각각 1000 개 이상의 thread 를 가질 수 있으며 경우에 따라서는 (문제가 발생할 경우) 2000 이상도 가능하다고 고려됨. 또한 문제 발생시 THREAD 수 부족으로 문제의 원인을 찾기 힘들 수도 있으므로 한 프로세스가 가질 수 있는 최대 THREAD 수는 기본값 2048 보다 약간 큰 3072 가 적당하다. (Default 64) 3. 1.의 결과와 2. 의 결과로 볼때 NKTHREAD 는 3000 * 8 + 4000, 약 30000 이 적당하다고 생각됨. 2018-12-03 HP-UX Tuning for Oracle Database
maxdsiz, maxssiz, maxtsiz Presentation Title 정의: 프로세스의 Data Segment, Text Segment, Stack Segment Size 제한 maxdsiz 기본값 32bit: 256 MB 64bit: 1 GB 허용값 32 bit minimum: 0x40000 32 bit maximum: 0xfffff000 (4GB) 64 bit minimum: 0x40000 64 bit maximum: 0x3ffbfffffff (4TB) maxssiz 기본값 0x800000 (8MB) 64 bit: 128b MB 허용값 32 bit minimum: 0x40000 32 bit maximum: 0x17F00000 (383MB) 64 bit minimum: 0x40000 64 bit maximum: 0x40000000 (1GB) maxtsiz 기본값 32 bit: 256MB 64 bit: 1GB 허용값 32 bit minimum: 0x40000 32 bit maximum: 0x40000000 64 bit minimum: 0x40000 64 bit maximum: 0x400000000000 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title maxtsiz maxdsiz maxssiz maxssiz 를 너무 크게 잡으면 maxdsiz 가 차지하는 양이 줄어든다. 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title System Tables
HP-UX Tuning for Oracle Database maxusers, maxuprc Presentation Title 정의: 실제 사용자 제한이 아니라 자원 할당을 제어하기 위한 매크로 파라미터 한 user id 당 가질 수 있는 최대 프로세스 수 기본: maxusers: 32 maxuprc: 75 권장: maxusers: nproc 가 적당한 값이 되도록 설정한다 maxuprc: nproc - 2 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title 언제 증가하는가 ? maxusers 매크로는 시스템에 대한 동시사용자가 증가했을 경우 이를 시스템 자원할당에 대해 반영하고자할때 증가시킨다. 이 값이 증가하면 관련있는 커널의 여러가지 구조체들이 늘어나기 때문에 시스템 메모리를 더욱 소모하게 된다. 언제 줄이는가 ? maxusers 매크로는 커널의 사이즈를 줄여야 할 필요가 있을 경우나 또는 실제 동시 사용자수가 줄어들게 되었을 경우 감소시킨다. 하지만 커널이 작아짐에 따라 관련 데이타구조가 줄어들어 자원할당이 안되서 응용프로그램이 동작하지 않게 될 수도 있다. maxusers 매크로가 변경되는 경우 파라미터의 계산식에 가 들어있는 모든 파라미터도 함께 변경된다. nclist, nfile, ninode 와 nproc 와 같은 파라미터는 maxusers 와 직접적으로 관계가 있으며 ksi_alloc_max, ncallout, nkthread 와 nsysmap[64] 는 위에서 언급된 파라미터가 변경되면 같이 변경되는 파라미터 이므로 이또한 변경된다. 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database nproc, nflocks Presentation Title 정의: 시스템에서 동시에 존재할 수 있는 프로세스의 수 기본: (20+8*MAXUSERS), 권장: Oracle 9i >= 4096 주의: 8 cpu 이하 = 500 * CPU, 16 cpu 이하 = 400 * CPU 32 cpu 이하 = 300 * CPU, 64 cpu 이하 = 200 * CPU 수 가 적당 정의: 시스템 전체적으로 lockf() 를 통해서 가질 수 있는 file lock 의 수 기본: 200 권장: Oracle 8.1.7 >= 200 + 모든 Oracle instance 의 DB FILE 의 수 Oracle 9i = (nproc) (at least 4096) 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database nfile Presentation Title 정의: 시스템 전체적으로 동시에 열수 있는 File 의 개수 기본: 16*(nproc+16+maxusers)/10+32+ 2*(npty+nstrpty) 권장: Oracle 9i = (15 * NPROC + 2048) 주의: >= ((number of oracle processes) * (number of Oracle data files) + 2048) 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title nfile 의 값은 nproc, maxusers, npty 와 nstrpty 의 값의 조합에 의해서 지원되는 사용자 프로세스를 지원할 수 있을 만큼 충분히 커야 한다. 모든 프로세스는 최소 3개의 파일 디스크립터를 가지고 있다. (standard input, standard output, and standard error). 또한 모든 프로세스는 각 두개의 파이프를 가지게 되며 또한 각각은 pty 를 필요로 한다. 스트림타입의 파이프는 스트림스 ptys 를 가지게 되는데 이는 nstrpty 에 의해서 갯수가 제한되어 있다. 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database ncallout, ncsize Presentation Title 정의: 시스템에서 가질 수 있는 timeout 의 수 기본: nkthread + 64 권장: >= nproc + 16 정의: inode 공간을 위한 Directory Name Lookup Cache (DNLC) 의 사이즈 기본: 권장: >= Oracle 9i = ((8 * NPROC + 2048) + VX_NCSIZE) VX_NCSIZE is by default 1024. 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title ncallout 은 커널에 의해서 스케줄되는 타임아웃의 최대치를 나타낸다. 타임아웃은 다음에 의해서 사용된다. ? alarm(1), ? setitimer(1), ? select(1), ? 각종 드라이버들, ? uucp 프로세스, ? 프로세스 스케줄링. 타임아웃이 한계에 도달하게 되면 다음의 에러를 콘솔에 내고 시스템은 정지된다. panic: timeout table overflow 관련 파라미터 nproc 가 증가하면 은 이에 맞추어 적절한 값으로 증가되어야 한다. 일반적으로 하나의 프로세스가 여러개의 callout 을 사용하지 않는다면 프로세스당 하나의 callout 을 지정하면 된다. 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title Sys V IPC
msgmni, msgmap, msgtql, msgseg Presentation Title 정의: msgmni: Message Queue Identifier 의 개수 msgtql: 시스템에서 동시에 존재하는 메시지(헤더)의 수 msgmap: 시스템의 메시지 맵의수 msgseg: 시스템이 가질 수 있는 메시지 segment 수 권장: msgmni: Oracle 9i = (NPROC) msgtql: Oracle 9i = (NPROC) msgmap: Oracle 9i = (MSGTQL + 2) msgseg: Oracle 9i = (NPROC * 4) (at least 32767) 2018-12-03 HP-UX Tuning for Oracle Database
semmni, semmns, semmnu, semmap, semvmx Presentation Title semmni, semmns, semmnu, semmap, semvmx 정의: semmni: semaphore set 의 개수 semmns: 시스템 전체에 존재할 수 있는 semaphore 수 semmnu: semphore undo 구조체의 수 semmap: semaphore map 의 수 semvmx: 하나의 semaphore 가 가질 수 있는 최대값 권장: semmni: >= Oracle9i = 4096, Oracle9i = (nproc * 2) for HP-UX 11i v1.6 semmns: Oracle 9i = (semmni * 2), Oracle9i = (semmni * 4) for HP-UX 11i v1.6 semmnu: Oracle 9i = (NPROC – 4 semmap: (SEMMNI + 2) semvmx: 32768 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database shmmax Presentation Title 정의: 하나의 공유메모리 세그먼트의 최대 사이즈 기본: 0x40000000 (1GB = 1073741824 Bytes) 권장: db_block_size * db_block_buffers + shared_pool_size + log_buffer + shared memory for the application 주의: 32 bit Oracle 은 단일 Segment 로 1GB 를 넘을 수 없음 SGA 가 여러 개의 공유메모리 세그먼트의 조합으로 이루어진 것 보다는 하나의 공유 메모리 세그먼트로 되어 있는 것이 성능향상에 도움이 됨 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title HP-UX 32 Bit Process 의 Memory Layout 1GB Quadrant 단위로 구성 되어 있으므로 최대 shared memory 를 2.75 GB 까지 사용할 수 있어도 최대의 shared memory segment 의 단일 SIZE 는 1GB 단위가 된다. 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title SGA 는 DB BLOCKS (DB Buffer Cache) 로 이루어져 있는데 각각은 init.ora file 의 db_block_size 만큼 잡힌다. 디폴트로 설정되는 db_block_size 의 값은 2048 인데 HP 는 OLTP Database 에 대해서는 이값을 4096 에서 8192 로 , DSS/DW 같은 업무에 대해서는 8192 에서 16384 정도를 권고하고 있다. 최대 IO UNIT ? SYSTEM 의 IO UNIT 과 DB 의 BLOCK SIZE 를 동일하게 가져가서 IO 의 발생횟수를 줄인다는 목적으로 IO UNIT 의 사이즈에 대해서 물어보는 경우가 많다. JFS나 HFS 의 BLOCK SIZE 는 8K 이고 JFS 의 ALLOCATION UNIT 은 VARIABLE SIZE 라서 FILE SYSTEM 의 IO UNIT 이 얼마인가에 대해서는 File System 은 8K 라고 하는것이 일반적이다. 하지만 LVM 은 256 KB 단위로 DATA 를 ALIGN 하기 때문에 만약에 DB BLOCK SIZE 를 256 으로 맞추게 될때, DB 의 BLOCK 이 LVM 256 KB 내의 128KB 부터 시작하게 되면 오히려 IO 횟수가 증가할 수가 있다. 따라서 최대의 BLOCK SIZE 를 설정하려면 128 KB 로 설정하는 것이 유리하다. 하지만 이 경우도 HP 는 8K 나 16K 정도를 권고한다. 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title 기타
HP-UX Tuning for Oracle Database swapmem_on Presentation Title 정의: 메모리보다 적은 양의 SWAP 공간을 가질 수 있게 한다. 기본: 1 권장: 1 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title HP-UX 는 RUNNING 되는 프로세스가 운영중에 SWAP 이 부족하여 kill 되는 현상을 방지하기 위해서 프로세스가 생성되는 시점에 필요한 스왑공간을 계산하여 이를 미리 할당하고 실행되는 SWAP RESERVATION 이라는 기법을 사용한다. 이 기법은 시스템의 물리적인 스왑공간을 충분히 잡아줘야 한다. 하지만 수기가에서 수십기가까지의 대용량의 메모리를 사용하는 시스템에서는 대부분의 작업공간이 메모리내에서 이루어지기 때문에 이렇게 많은 공간을 스왑으로 할당하는 것은 비효율적이다. 따라서 물리적 메모리의 75% 를 가상스왑 (pseudo-swap)으로 지정하여 실제 스왑공간이 남아 있으면 프로세스는 계속해서 스왑 공간을 RESERVATION 하게 되고 물리적인 스왑공간이 다 사용한후에는 새로운 프로세스는 스왑공간을 사용하지 않고 메모리에 남아 있게 되는 기법을 사용하게 된다. . 2018-12-03 HP-UX Tuning for Oracle Database
Swchunk, maxswapchunks Presentation Title 정의: SWAP 공간이 할당되는 단위 swchunk: 4096 혹은 8192 maxswapchunks : 16384 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database HP-UX SCHED_NOAGE Presentation Title 정의: 일반적인 Time Share 스케줄링 POLICY 에 비해서 프로세스의 우선순위 (시간에 따른 AGING)를 조정하지 않으며 심지어 Preempt 되지도 않음 기본: HP-UX 11i 와 Oracle 9i 부터 사용가능 권장: Latch 나 Lock 과 같은 Oracle 의 매우 크리티컬한 자원을 갖고 있는 Oracle 프로세스가 다른 프로세스에 의해 Context-Switching 이 발생하면 성능에 영향을 줄 수 있는 OLTP Application 에 적합 설정: /etc/privgroup 에 다음을 추가 dba RTSCHED RTPRIO Oracle init.ora 에 HPUX_SCHED_NOAGE=<priority value> 을 추가 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Note Presentation Title HP-UX 11.0 에서는 우선순위를 153 에서 255 까지 줄 수 있고 HP-UX 11i 에서는 우선순위를 178 에서 255 까지 줄 수 있다 보통의 경우 /etc/privgroup 에는 다음의 항목들이 들어가게 된다. dba MLOCK RTSCHED RTPRIO 2018-12-03 HP-UX Tuning for Oracle Database
TCP/IP Parameters for Oracle Databases Presentation Title MC Seminar TCP/IP Parameters for Oracle Databases Walk-in HP logo
HP-UX Tuning for Oracle Database TCP 파라미터의 개요-1 Presentation Title DB 운영 시스템에서의 TCP/IP 파라미터 튜닝을 통하여 동시 접속에 대한 성공율과 성능을 향상시켜준다. 파라미터 분류 Connection 관련된 파라미터 tcp_keepalive_interval tcp_ip_abort_interval tcp_ip_abort_cinterval tcp_keepalive_detached_interval tcp_rexmit_interval_initial tcp_rexmit_interval_max tcp_rexmit_interval_ min 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database TCP 파라미터의 개요-2 Presentation Title 2. 소켓 버퍼에 관련된 파라미터 tcp_conn_request_max tcp_syn_rcvd_max tcp_recv_hiwater_def tcp_xmit_hiwater_def 3. Other tcp_fin_wait2_timeout tcp_time_wait_interval 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Students Note Presentation Title TCP 파라미터 확인방법 #ndd –h supported Dynamic 변경의 예 #ndd –get /dev/tcp tcp_keealive_interval #ndd –set /dev/tcp tcp_keepalive_interval 36000000 Static 변경 /etc/rc.config.d/nddconf 에서 지정하면 부팅후도 유효함 예) TRANSPORT_NAME[0]=tcp NDD_NAME[0]=tcp_keepalive_interval NDD_VALUE[0]=3600000 2018-12-03 HP-UX Tuning for Oracle Database
Connection management Presentation Title Connection management
1.tcp_keepalive_interval Presentation Title Keepalive probe을 보내는 Interval. tcp_keepalive_interval에서 이 지정된 시간 간격으로 keepalive probe을 보내어 처음 보낸 sequence와 두번째 보낸 sequence을 비교하여 응답이 있었는지 여부를 확인. Heavy load 시스템에서는 이 파라미터를 설정하여 RST가 없는 리모트와의 연결을 stop 할수 있음 (Sybase도 이 값을 지정할 것을 권고) Default : 7200000 ms = 7200 s = 60(1분) * 60(1시간) * 2 = 3600 * 2 = 2 hours 권고값:60000=1분 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Notes Presentation Title 10.20 이전은 remote에서 ACK 가 들어 오지 않을 경우 keepalive timer가 가동 되었으나 10.30이후부터는 세션이 기동되면 지정된 간격으로 매번 기동되며, 앞에 보낸 sequence와 뒤에 보낸sequence을 비교하여 그사이에 세션 변화가 있었는지 체크하여 변화가 없을 경우 세션에 이상이 있는 것으로 판단하여 재전송 mode로 들어 간다. 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Keepalive timer Presentation Title State Timer Default Established connection tcp_ip_abort_interval 600000 ms (10 분) Connection establishment tcp_ip_abort_cinterval 75000 ms (1.25분) terminating Establishment tcp_keepalive_detached_interval 120000 ms (2 분) 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Notes Presentation Title tcp_ip_abort_interval R2 for established connection Keepalive probe을 보낸후 응답이 없을 경우 retransmission time이 발생하고 이 시간 안에 응답이 없을 경우 세션이 abort가 됨 처음에는 tcp_rexmit_interval_initial 값에 의해 retransmission을 하고 다음부터는 계속 2배를 곱하여 재전송을 한다. 이 값이 tcp_rexmit_interval_max에 도달하면 connection이 close된다. Default : 600000(10분) 권고값: 60000 (1분) 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Notes Presentation Title 2. tcp_keepalive_detached_interval TCP 세션이 서버에서는 이미 close을 하였고( FIN을 보냈고 ) client에서 FIN이 tcp_keepalive_detached_interval time안에 들어 오지 않을때 keepalive probe packet이 발생된다. 이때 remote에서 응답이 없을 경우 normal keepalive probe timeout이 발생한다. Default: 120000 (2분) 권고값: 60000 (1분) 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title Transmission Timer
HP-UX Tuning for Oracle Database 2. Tcp_rexmit_interval Presentation Title tcp_rexmit_interval_initial Acknowledgement를 받지 못해 마지막 전송 데이터를 재전송할 때까지 기다리는 시간 Round-Trip Timeout (RTT) 을 계산하기 위해 사용됨 재전송율이 높으면 이 값을 증가할 필요가 있다 권고값: 2000 (2초) tcp_rexmit_interval_min < tcp_rexmit_interval_initial < tcp_rexmit_interval_max tcp_rexmit_interval_min 권고값: 1500 (1.5초) Minimum Round-Trip Time tcp_rexmit_interval_max 두개의 재전송 사이에 최대로 기다리는 시간 권고값: 10000 (10초) 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title Sockets
3.tcp_conn_request_max Presentation Title 동시에 Connection을 맺을 수 있는 각 소켓에 대한 listen queue 의 limit 을 나타냄 문제시 영향:대량의 DB connection이 발생하는 시스템에서는 connection refusal 이나 timeout 이 발생할 수 있음 오라클 listener log에 "HPUX Error: 233: No buffer space available" 에러가 발생하기도 함 Default값 : 20 권고값:어플리케이션 특성에 따라 다를 수 있으나 시스템 사이징에 따라 4096~10240 정도로 증가시키고 모니터링을 한다 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Student Notes Presentation Title 참고: tcp_conn_request_max 값은 소켓 프로그램에서 listen()에서 정의할 수 있는 최대 크기이고, 어플리케이션에서 생성한 소켓 포트 listen queue의 제한은 실제로 어플리케이션 프로그램 내부의 listen()에서 사용된 사이즈에 의해서 제한을 받는다. 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 4.tcp_syn_rcvd_max Presentation Title TCP의 SYN attack을 방어할 수 있도록 제어함 SYN packet을(netstat –an 에서 SYN_RECV부분 ) 보관하는 table space에 해당하고, 여기를 거쳐서 각 socket별로 listen queue에 들어 간다. Default : 500 connections 권고값: 1024 이상 2018-12-03 HP-UX Tuning for Oracle Database
5.Tcp_xmit_hiwater_def Presentation Title tcp_xmit_hiwater_def :송신 버퍼의 최대 크기 권고값: 65536 tcp_xmit_lowater_def : 송신 버퍼의 최소 크기 권고값:24576 tcp_recv_hiwater_def :수신버퍼 최대 크기 권고값:65536 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title 기타
6. tcp_fin_wait2_timeout Presentation Title Idle한 fin_wait_2 connection 을 중지할 수 있어 불필요한 DB connection을 제거함. Default 값은 0으로 connection이 계속 유지됨 권고값:60000 (1분) 2018-12-03 HP-UX Tuning for Oracle Database
Student Note httpd TCP TCP Java Thread SYN ACK,SYN ESTABLISHED ACK Presentation Title httpd TCP TCP Java Thread Connect() SYN accept() ACK,SYN ESTABLISHED ACK ESTABLISHED Read() Or Write() Application wants to close current socket connection FIN JAVA THREAD waiting for Some EVENT Cannot issue close() Close() FIN_WAIT_1 CLOSE_WAIT ACK EOF Waiting for thread to issue close() FIN_WAIT_2 Waiting for peer connection to be closed FIN If application issue close() then send FIN Close() TIME_WAIT ACK CLOSED 2018-12-03 HP-UX Tuning for Oracle Database
7. tcp_time_wait_interval Presentation Title Connection 이 종료될때 TIME_WAIT 상태로 빠지게 되는데 얼마동안 이상태에 있을것인가 결정 Default 값은 6000 (1min) 으로 2xMSL 의 시간을 나타냄 권고값:3000 (30sec) 2018-12-03 HP-UX Tuning for Oracle Database
Patch 정보 for Oracle Databases Presentation Title MC Seminar Patch 정보 for Oracle Databases Walk-in HP logo
HP-UX Tuning for Oracle Database 사전 고려 사항 Presentation Title 적용 대상 : 모든 Oracle RDBMS Version ( 32,64bit 포함 ) 고려 사항 : 1. Patch 의 Dependency 부분 빠져 있음 2. Superceded Patch 여부 확인 3. 최소한의 PATCH List 를 명시 (가장 최근의 PATCH 설치를 권고) 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Patch Bundle Presentation Title Support Plus Patch Bundle 을 말함 최소한의 Patch Level 11.00 : DECEMBER , 2002 11i : DECEMBER , 2002 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title 개별 Patch
HP-UX Tuning for Oracle Database 개별 PATCH – 11.11 (11i) Presentation Title PHSS_28880 ( NO Reboot ) HP aC++ -AA runtime libraries (aCC A.03.50) Recompile and Relink 대상 : aC++ ( 3.25 – 3.27 ) 에서 “–AA” Option Binary 확인방법 : chatr <executable/runtime library> | grep libstd_v2 No empty output 경우 –AA Option Binary PHSS_22868 HP aC++ -AA header files (aCC A.03.30) 설치 권고 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.11 (11i ) – 계속 Presentation Title PHKL_25506 ( Reboot ) Asyncio driver Patch ( 큰 SGAs 구성에서 늦은 DB 기동) PHNE_29211 ( Reboot ) ONC/NFS General Release / Performance Patch Panic 과 Memory Leak 해결 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.11 (11i ) – 계속 Presentation Title PHSS_30049 ( Reboot ) ld(1) and linker tools cumulative patch Hang and Memory Leak 해결 New Compile Option 추가 PHCO_25569 ( No Reboot ) libc cumulative header file patch Corruption 과 Hang 해결 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.11 (11i ) – 계속 Presentation Title PHCO_29495 ( No Reboot ) libc cumulative patch Corruption 과 Hang 해결 영향 받는 File Owner가 root 인 setuid program Others 에 의해 실행되는 것 invokes catopen(3C) depends on the NLSPATH 환경변수. 해결 방안 : PHCO_29328 후 /etc/default/nlspath 참고 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 Presentation Title PHKL_29648 ( Reboot ) Probe,IDDS,PM,VM,PA-8700,AIO,T600,FS,PDC,CLK init.ora parameter의 PGA_AGGREGATE_TARGET 가 HPUX Panic 을 일으키는 문제 해결 PHKL_21180 ( Reboot ) Improved largepage performance for data Page 크기가 큰 경우 성능 문제 해결 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHKL_29434 ( Reboot ) POSIX AIO;getdirentries;MVFS;rcp;mmap/IDS; HPUX Signal 문제 해결 주의 : gang scheduler 사용 시 Cumulative gang scheduling patch PHKL_21549 설치 권고 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHKL_28150 ( Reboot ) LVM Cumulative Patch w/Performance Upgrades Hang, Panic,Corruption 해결 현재 Warning Patch Mirror/UX 를 통한 Spare PV 의 경우 Warning 확인 방법 : vgdisplay | grep -ie "spare pvs " -e "vg name" 를 통한 PV 값이 0이 아닐 경우 사용 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHNE_27821 ( Reboot ) Streams Pty cumulative patch PHNE_20008 설치 후 다수의 CPU가 설치되어 있어도 1개의 CPU 만 Oracle 사용하는 문제 해결 PHKL_28693 ( Reboot ) VxFS 3.1 cumulative patch: CR_EIEM Memory Map 을 두개의 Process 가 Write 할 때 Hang 이 발생하는 문제 해결 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHNE_20915 ( Reboot ) trap-related panics/hangs CPU 를 추가했을 때 Deadlock/Hang 발생 문제 해결 PHCO_29959 ( No Reboot ) Pthread library cumulative patch multi threaded Pro*Lang / Java Programs 의 많은 문제 해결 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHSS_28302 ( No Reboot ) LIBCL patch ORA-7445 와 64 bit Oracle RDBMS의 Core Dump Generating Oracle Stack Trace 문제 해결 PHKL_18543 ( Reboot ) PM/VM/UFS/async/scsi/io/DMAPI/JFS/perf patch Vxfs 파일이 지워진 후 Space 가 free 안 되는 문제 해결 Hyperfabric의 사용 시 : PHNE_26651 설치 권고 Online JFS and DMAPI 사용 시 : PHKL_28552 설치 권고 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHCO_19648 ( No Reboot ) PFS cumulative patch Pfs_mount 를 통해서 Oracle CD를 Mount 했을 때 생기는 많은 문제와 Core Dump 생성문제 해결 PHNE_26771 ( Reboot ) cumulative ARPA Transport patch 많은 Network 문제들 해결 PHNE_26771 이후 PATCH 는 현재 Warning 상태 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHSS_30048 ( No Reboot ) ld(1) and linker tools cumulative patch Ld 를 통한 relink 시 생기는 다양한 문제해결 New Compile Option 추가 Debugging 시 GBD 3.1 이상 필요 PHCO_29633 ( Reboot ) libc cumulative patch Corruptiong 과 Hang 해결 PHCO_20555 는 반드시 Remove Oracle Spinning Connection 발생 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database 개별 PATCH – 11.00 – (계속) Presentation Title PHSS_29367 ( No Reboot ) X/Motif 32bit Runtime Periodic Patch PHCO_29369 ( No Reboot ) X/Motif 64bit Runtime Periodic Patch 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Patch 정보 출처 Presentation Title Oracle patch on metalink (login required) - Top Tech Docs - Data Server - Generic - Platform Information - Hewlett Packard - ALERT: HP-UX Patch Levels Advised or search direct for 43507.1 HP ITRC ( www.itrc.hp.com ) 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title ASYNC IO
HP-UX Tuning for Oracle Database Async IO 개념 Presentation Title Raw Device에만 적용 Shared Memory Segment 에 Batch Read 와 Write HP-UX 에 부하를 줄이고 병렬적으로 대량의 IO 를 처리 안정성: Oracle 자체에서 IO 를 검증 IO 의 완전한 종료 후 Oracle Commit 실행 Oracle 이 HP-UX 의 특별한 가상 Device 를 사용하여 병렬 처리 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Async IO 구성 - 1 Presentation Title Kernel Drive 추가 Sam 을 통한 kernel Device 추가 ( Async Disk Driver 추가 ) Kernel Compile Device 생성 /sbin/mknod /dev/async c 101 0x0 chown oracle:dba /dev/async chmod 660 /dev/async Async IO drive patch 11.11(11i) : PHKL_25506 11.00 : PHKL_29648 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Async IO 구성 - 2 Presentation Title 3. Privilege 설정 /usr/sbin/setprivgrp dba MLOCK /etc/privgroup 편집( DBA MLOCK ) Rebooting 시 MLOCK 적용 Init.ora 편집 use_async_io=true (Oracle 7.3) disk_async_io = true (Oracle 8.0, 8i) db_writers=1 ( < Oracle 7.3) Kernel 값 조정 Max_async_ports 값 조정 ( max. no of shadow processes + no of parallel querie slaves ) 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Async IO 확인 - 2 Presentation Title Glance 를 통한 확인 Dbwr process 선택 “F” 를 통해서 Open File 확인 /dev/async 의 값 확인 2018-12-03 HP-UX Tuning for Oracle Database
HP-UX Tuning for Oracle Database Q & A Presentation Title 2018-12-03 HP-UX Tuning for Oracle Database
Presentation Title