'파라메타'에 해당되는 글 2건

  1. 2011.03.28 Solaris : Network TCP Parameter Script
  2. 2011.03.27 Solaris : 파라미터 튜닝 가이드

Solaris : Network TCP Parameter Script

|

간단한거지만, 노가다 하는 청춘들을 위해..

 

$ touch /etc/init.d/nddset.sh

$ chmod 755 /etc/init.d/nddset.sh

$ cd /etc/rc2.d ; ln -s ../init.d/nddset.sh ./S99nddset

$ vi /etc/init.d/nddset.sh

#!/bin/sh
#
# Solaris Kernel/Network Parameters
#
#

case "$1" in
  'start')
 ### IP forwarding을 하지 않음
 #ndd -set /dev/ip ip_forwarding 0
 #ndd -set /dev/ip ip_strict_dst_multihoming 0
 #ndd -set /dev/ip ip_forward_directed_broadcasts 0
 #ndd -set /dev/ip ip_forward_src_routed 0

 ### echo request Broadcast 핑 응답 무시
 #ndd -set /dev/ip ip_respond_to_echo_broadcast 0

 ### TCP parameter
 ndd -set /dev/tcp tcp_time_wait_interval 30000
 ndd -set /dev/tcp tcp_conn_req_max_q 2048
 ndd -set /dev/tcp tcp_conn_req_max_q0 2048
 ndd -set /dev/tcp tcp_ip_abort_interval 60000
 ndd -set /dev/tcp tcp_keepalive_interval 300000
 ndd -set /dev/tcp tcp_xmit_hiwat 262144
 ndd -set /dev/tcp tcp_recv_hiwat 262144
 ndd -set /dev/tcp tcp_fin_wait_2_flush_interval  60000
 ;;
  'stop')
 ### IP parameter
 #ndd -set /dev/ip ip_forwarding 0
 #ndd -set /dev/ip ip_strict_dst_multihoming 0
 #ndd -set /dev/ip ip_forward_directed_broadcasts 1
 #ndd -set /dev/ip ip_forward_src_routed 1

 ### echo request Broadcast 핑 응답
 #ndd -set /dev/ip ip_respond_to_echo_broadcast 1

 ### TCP parameter
 #ndd -set /dev/tcp tcp_ip_abort_cinterval 180000
 #ndd -set /dev/tcp tcp_conn_req_max_q0 1024
 #ndd -set /dev/tcp tcp_conn_req_max_q 128
 ;;
  'status')
 ### IP parameter
 #echo "ip_forwarding : `ndd /dev/ip ip_forwarding`"
 #echo "ip_strict_dst_multihoming : `ndd /dev/ip ip_strict_dst_multihoming`"
 #echo "ip_forward_directed_broadcasts : `ndd /dev/ip ip_forward_directed_broadcasts`"
 #echo "ip_forward_src_routed : `ndd /dev/ip ip_forward_src_routed`"

 #echo "arp_cleanup_interval : `ndd /dev/arp arp_cleanup_interval`"
 #echo "tcp_ip_abort_cinterval : `ndd /dev/tcp tcp_ip_abort_cinterval`"

 ### echo request Broadcast
 #echo "ip_respond_to_echo_broadcast : `ndd /dev/ip ip_respond_to_echo_broadcast`"

 ### TCP parameter
 echo "tcp_time_wait_interval : `ndd /dev/tcp tcp_time_wait_interval`"
 echo "tcp_conn_req_max_q0 : `ndd /dev/tcp tcp_conn_req_max_q0`"
 echo "tcp_conn_req_max_q : `ndd /dev/tcp tcp_conn_req_max_q`"
 echo "tcp_ip_abort_interval : `ndd /dev/tcp tcp_ip_abort_interval`"
 echo "tcp_keepalive_interval : `ndd /dev/tcp tcp_keepalive_interval`"
 echo "tcp_xmit_hiwat : `ndd /dev/tcp tcp_xmit_hiwat`"
 echo "tcp_recv_hiwat : `ndd /dev/tcp tcp_recv_hiwat`"
 echo "tcp_fin_wait_2_flush_interval : `ndd /dev/tcp tcp_fin_wait_2_flush_interval`"
 ;;
  *)
 echo "usage: $0 {start|stop|status}"
 exit 1
 ;;
esac

exit 0

$ ./S99nddset status

$ ./S99nddset start

$ ./S99nddset status

'OS > UNIX' 카테고리의 다른 글

Solaris : 해상도 확인 및 변경  (0) 2011.03.29
Solaris : Network – Snoop 사용방법  (0) 2011.03.29
Solaris : Network TCP Parameter Script  (0) 2011.03.28
Solaris : IPMP(Probe, Link-Base) 구성  (4) 2011.03.28
Solaris : 패스워드 8자 이상 사용  (0) 2011.03.28
Solaris : ADSL 사용  (0) 2011.03.28
Trackback 0 And Comment 0

Solaris : 파라미터 튜닝 가이드

|

시스템 파라미터 튜닝 가이드

시스템을 위한 최적의 파라미터 값은 정해져 있지 않으므로 반드시 충분한 테스트 후에 튜닝을 수행하여야 한다.

 

1. 웹/Gateway 서비스 대상 튜닝 가이드

NO 파라미터 Default value Tuning value 비고

tcp_time_wait_interval 240000 30000

tcp_conn_req_max_q 128 1024

tcp_conn_req_max_q0 1024 4096

tcp_ip_abort_interval 480000 60000

tcp_keepalive_interval 7200000 900000

tcp_rexmit_interval_initial 3000 3000

tcp_rexmit_interval_max 60000 10000

tcp_rexmit_interval_min 400 3000

tcp_smallest_anon_port 32768 1024

tcp_slow_start_initial 4 4

tcp_xmit_hiwat 16384 32768

tcp_recv_hiwat 16384 32768

 

2. ORACLE 대상 튜닝 가이드

Parameter Name Value Description

SHMMAX 4294967295 10737418240 하나의 Share Memory Segment Size의 최대 값 (4GB)

물리적 메모리와 크기를 맞춘다.

시스템 Physical Memory Size에 따라 유동적 - 최대 SGA SIZE (10GB)

SHMMIN 1 하나의 Share Memory Segment Size의 최소 값

SHMMNI 100 시스템 내 Share Memory Segments의 Max 수

SHMSEG 10 한 Process가 갖을 수 있는 Share Memory Segments의 Max 수

SEMMNI 2048 시스템 내 Semaphore Sets의 Max 수

SEMMSL 100 Minimum recommended value, SEMMSL should be 10 plus the largest PROCESSES parameter of any Oracle database on the system

SEMMNS 1024 시스템 내 Semaphore 생성 Max 수, Minimum recommended value. SEMMNS should be set to the sum of the PROCESSES paramter for each Oracle datatabase, add the largest one twice, plus add an additional 10 for each database

SEMOPM 100 Maximum number of operations per semop call

SEMVMX 32767 Maximum value of the semaphore

NOFILES 1024 한 Process가 Open 할 수 있는 최대 file개수 (File Descriptor)

noexec_user_stack 1  

tcp_conn_req_max_q 10240 Ndd parameter

tcp_conn_req_max_q0 10240 Ndd parameter

tcp_close_wait_interval 60000 Ndd parameter

tcp_xmit_hiwat 32768 Ndd parameter

tcp_recv_hiwat 32768 Ndd parameter

tcp_slow_start_initial 2 Ndd parameter

*Ndd parameter 설정은 Cluster환경에서 주로 권장함.

 

A. Solaris 8,9 의 적용

- /etc/system 파일에 오라클 파라미터 값 적용 방법

#vi /etc/system

 

 

set rlim_fd_cur=1024

set rlim_fd_max=4096

 

forceload:sys/shmsys

forceload:sys/semsys

 

set shmsys:shminfo_shmmax = 4294967295

set shmsys:shminfo_shmmin = 1

set shmsys:shminfo_shmmni = 100

set shmsys:shminfo_shmseg = 10

 

set semsys:seminfo_semmni = 2048

set semsys:seminfo_semmsl = 200

set semsys:seminfo_semmns = 1024

set semsys:seminfo_semopm = 100

set semsys:seminfo_semvmx = 32767

 

 

 

B. Solaris 10의 적용

/etc/project 파일에 적용

 

만들고자 하는 계정의 ID선택

*** solaris 10 default sem&shm 관련 파라미터 ***

# projadd -U 계정ID -K "project.max-sem-ids=(priv,2048,deny)" user.계정ID ;; seminfo_semmni

# projmod -a -K "project.max-shm-memory=(priv,4294967295,deny)" user.계정ID ;; shminfo_shmmax

# projmod -a -K "process.max-sem-nsems=(priv,200,deny)" user.계정ID ;; seminfo_semmsl

# projmod -a -K "process.max-sem-ops=(priv,100,deny)" user.계정ID ;; seminfo_semopm

# projmod -a -K "process.max-shm-ids=(priv,100,deny)" user.계정ID ;; shminfo_shmmni

*** message queue 관련 파라미터 ***

# projmod -a -K "process.max-msg-qbytes=(priv,1048576,deny)" user.계정ID ;; msginfo_msgmnb

# projmod -a -K "project.max-msg-messages=(priv,100,deny)" user.계정ID ;; msginfo_msgtql

# projmod -a -K "project.max-msg-ids=(priv,100,deny)" user.계정ID ;; msginfo_msgmni

 

Example)

*** solaris 10 default sem&shm 관련 파라미터 ***

projadd -U oracle -K "project.max-sem-ids=(priv,2048,deny)" user.oracle

projmod -a -K "project.max-shm-memory=(priv,4294967295,deny)" user.oracle

projmod -a -K "process.max-sem-nsems=(priv,200,deny)" user.oracle

projmod -a -K "process.max-sem-ops=(priv,100,deny)" user.oracle

projmod -a -K "process.max-shm-ids=(priv,100,deny)" user.oracle

 

 

*** message queue 관련 파라미터 ***

projmod -a -K "project.max-msg-messages=(priv,100,deny)" user.oracle

projmod -a -K "project.max-msg-ids=(priv,100,deny)" user.oracle

projmod -a -K "process.max-msg-qbytes=(priv,1048576,deny)" user.oracle

 

 

수정하고자 하는 파라메터값 선택

projmod -s -K "project.max-sem-ids=(priv,값입력, deny)" user.oracle

projmod -s -K "project.max-shm-memory=(priv,값입력,deny)" user.oracle

projmod -s -K "process.max-sem-nsems=(priv,값입력,deny)" user.oracle

projmod -s -K "process.max-sem-ops=(priv,값입력,deny)" user.oracle

projmod -s -K "process.max-shm-ids=(priv,값입력,deny)" user.oracle

 

projmod -s -K "project.max-msg-messages=(priv,값입력,deny)" user.oracle

projmod -s -K "project.max-msg-ids=(priv,값입력,deny)" user.oracle

projmod -s -K "process.max-msg-qbytes=(priv,값입력,deny)" user.oracle

 

삭제하고자하는 파라메터값 선택

projmod -r -K "project.max-sem-ids=(priv,2048,deny)" user.oracle

projmod -r -K "project.max-shm-memory=(priv,4294967295,deny)" user.oracle

projmod -r -K "process.max-sem-nsems=(priv,200,deny)" user.oracle

projmod -r -K "process.max-sem-ops=(priv,100,deny)" user.oracle

projmod -r -K "process.max-shm-ids=(priv,100,deny)" user.oracle

 

projmod -r -K "project.max-msg-messages=(priv,100,deny)" user.oracle

projmod -r -K "project.max-msg-ids=(priv,100,deny)" user.oracle

projmod -r -K "process.max-msg-qbytes=(priv,1048576,deny)" user.oracle

 

파라메터 적용 값 확인

# more /etc/project

# prctl -i project user.계정ID

# projects -l

 

삭제하고자 하는 프로젝트(계정ID)

# projdel user.계정ID

# more /etc/project

 

 

3. ALTIBASE 대상 튜닝 가이드

Parameter Name Value Description

SHMMAX >= 4294967295 하나의 Share Memory Segment Size의 최대 값 (4GB)

SHMMIN 1 하나의 Share Memory Segment Size의 최소 값

SHMMNI > = 500 시스템 내 Share Memory Segments의 Max 수

SHMSEG >= 200 한 Process가 갖을 수 있는 Share Memory Segments의 Max 수

SEMMNS 8192 시스템 내 Semaphore 생성 Max 수

SEMMNI 5029 시스템 내 Semaphore Sets의 Max 수

SEMMSL 2000 Semaphore Sets내의 생성 Semaphore 수

SEMMAP 5024 시스템 내 Semaphore Map Max 수

SEMMNU 1024 시스템 내 Semaphore Undo Structure 수

SEMOPM 512 Maximum number of operations per semop call

SEMUME 512 32bit

rlim_fd_max 4096 64bit

rlim_fd_cur 1024 유의사항 2참고

유의사항1:

위에 명시한 shminfo_shmmni, shminfo_shmseg 설정값은 알티베이스서버가 단독으로 서버에서 운영될 경우이며 별도의 어플리케이션프로그램(예:오라클)이 동시에 운영될 경우 해당 어플리케이션의 설정값을 합산하여 설정해야 한다. 알티베이스계정으로 시스템에 로그인한 후 ulimt -a 를 수행하였을 때 "nofiles" 값이 너무 적게 설정되어 있을 경우 Altibase 실행유저의 .profile를 vi로 열어서 ulimit 명령을 삽입하여 적절한 값으로 늘려주어야 한다. (예) ulimit -n 4096

유의사항2:

rlim_fd_cur 값이 rlim_fd_max 값보다 작은 경우, Altibase 실행유저의 .profile 를 vi로 열어서 'ulimit -n <num>' 을 이용하여 두 값이 같아지도록 한다.

- /etc/system 파일에 ALTIBASE 파라미터 값 적용 방법

#vi /etc/system

 

 

set rlim_fd_cur=1024

set rlim_fd_max=4096

 

set shmsys:shminfo_shmmax = 4294967295

set shmsys:shminfo_shmmin = 1

set shmsys:shminfo_shmmni = 500

set shmsys:shminfo_shmseg = 200

 

set semsys:seminfo_semmns = 8192

set semsys:seminfo_semmni = 5029

set semsys:seminfo_semmsl = 2000

set semsys:seminfo_semmap = 5024

 

set semsys:seminfo_semmnu = 1024

set semsys:seminfo_semopm = 512

set semsys:seminfo_semume = 512

 

Example)

*** solaris 10 default sem&shm 관련 파라미터 ***

projadd -U altibase -K "project.max-sem-ids=(priv,5029,deny)" user.altibase

projmod -a -K "project.max-shm-memory=(priv,4294967295,deny)" user.altibase

projmod -a -K "process.max-sem-nsems=(priv,2000,deny)" user.altibase

projmod -a -K "process.max-sem-ops=(priv,512,deny)" user.altibase

projmod -a -K "process.max-shm-ids=(priv,1,deny)" user.altibase

 

*** message queue 관련 파라미터 ***

projmod -a -K "project.max-msg-messages=(priv,100,deny)" user.altibase

projmod -a -K "project.max-msg-ids=(priv,100,deny)" user.altibase

projmod -a -K "process.max-msg-qbytes=(priv,1048576,deny)" user.altibase

 

 

수정하고자 하는 파라메터값 선택

projmod -s -K "project.max-sem-ids=(priv,값입력, deny)" user.altibase

projmod -s -K "project.max-shm-memory=(priv,값입력,deny)" user.altibase

projmod -s -K "process.max-sem-nsems=(priv,값입력,deny)" user.altibase

projmod -s -K "process.max-sem-ops=(priv,값입력,deny)" user.altibase

projmod -s -K "process.max-shm-ids=(priv,값입력,deny)" user.altibase

 

projmod -s -K "project.max-msg-messages=(priv,값입력,deny)" user.altibase

projmod -s -K "project.max-msg-ids=(priv,값입력,deny)" user.altibase

projmod -s -K "process.max-msg-qbytes=(priv,값입력,deny)" user.altibase

 

 

삭제하고자하는 파라메터값 선택

projmod -r -K "project.max-sem-ids =(priv,5029,deny)" user.altibase

projmod -r -K "project.max-shm-memory=(priv,4294967295,deny)" user.altibase

projmod -r -K "process.max-sem-nsems=(priv,2000,deny)" user.altibase

projmod -r -K "process.max-sem-ops=(priv,512,deny)" user.altibase

projmod -r -K "process.max-shm-ids=(priv,1,deny)" user.altibase

 

projmod -r -K "project.max-msg-messages=(priv,100,deny)" user.altibase

projmod -r -K "project.max-msg-ids=(priv,100,deny)" user.altibase

projmod -r -K "process.max-msg-qbytes=(priv,1048576,deny)" user.altibase

 

파라메터 적용 값 확인

# more /etc/project

# prctl -i project user.계정ID

# projects -l

 

삭제하고자 하는 프로젝트(계정ID)

# projdel user.계정ID

# more /etc/project

 

 

 

# more /etc/project

system:0::::

user.root:1::::

noproject:2::::

default:3::::

group.staff:10::::

user.oracle:100::::process.max-sem-nsems=(privileged,256,deny);project.max-shm-ids=(privileged,100,deny);project.max-shm-memory=(pri

vileged,4294967295,deny)

user.timesten:101::::process.max-file-descriptor=(privileged,8192,deny);process.max-msg-messages=(privileged,8192,deny);process.max-

msg-qbytes=(privileged,98304,deny);process.max-sem-nsems=(privileged,512,deny);project.max-msg-ids=(privileged,512,deny);project.max

-sem-ids=(privileged,512,deny);project.max-shm-ids=(privileged,512,deny);project.max-shm-memory=(priv,137438953472,deny)

user.authoper:102::::process.max-file-descriptor=(privileged,8192,deny);process.max-msg-messages=(privileged,8192,deny);process.max-

msg-qbytes=(privileged,98304,deny);project.max-msg-ids=(privileged,256,deny);project.max-sem-ids=(privileged,128,deny);project.max-s

hm-ids=(privileged,128,deny);project.max-shm-memory=(priv,4294967296,deny)

'OS > UNIX' 카테고리의 다른 글

Solaris : ADSL 사용  (0) 2011.03.28
Solaris : Password 분실 복구  (0) 2011.03.27
Solaris : 파라미터 튜닝 가이드  (0) 2011.03.27
Solaris : Raid 1(미러링)장애디스크 교체  (0) 2011.03.27
Solaris : SWAP 늘리기  (0) 2011.03.27
Solaris : fmdump 삭제  (0) 2011.03.27
Trackback 0 And Comment 0
prev | 1 | next