1. 미들웨어이야기/05. 상용미들웨어

Web System 튜닝을 위한 TCP 파라미터설명

OSSW(Open Source System SoftWare 2009. 6. 8. 15:05

TCP/IP Kernel Parameter

일반적으로 최초설치(Install) 운영체제(Operating System) 범용의 목적하에 Kernel Parameter 설정이 이루어지게 됩니다.. 따라서 Web Service만을 위한Kernel Parameter값은 반드시 최적화 시켜야 합니다. 특히 웹서버의 성능에 영향을 많이 주는 TCP/IP parameter setting 20~30% 정도의 성능 향상을 가져 있을 정도로 중요합니다. FAQ 문서에서는 웹서버의 형태로 운용되는 유닉스 서버의 TCP/IP 일반과 Tuning 관한 내용을 기술합니다.

TCP connection initiation background

TCP reliable connection oriented protocol 입니다. 2개의 machine사이에 데이터를 주고 받기 전에 connection 이뤄지는 것입니다.

Adrian Cockcroft(SunPerformance and Tuning, Java and the Internet, 2ndEdition의저자) TCP connection의설명을 Phone Call 비유를 하였씁니다. (dialing, talking, hanging up). Incoming Call 수동적으로(passive) open되고( Server Part에서 아무런동작 없이 일어남.) 그러나 ServerCall Accept하기 위해서 특별한 프로그램이 동작하고 있어야 합니다. Outgoing Call Server에서 시작되는데, 이것은 능동적인(active) open으로 분류됩니다. 이러한 경우의 예로서 다른host rlogin하는 경우에 해당이 됩니다. Connection 시작은 3-way handshake sequence 구성이 됩니다. 이러한 handshake process round-trip 시간과 모든 delay 영향을 받게 됩니다. 최초의 handshake SYN(synchronizesequence numbers) 구성된 incoming packet 입니다. Server 자신의 listen queue(tcp_conn_req_max_q0on solaris, tcp_syn_rcvd_maxon HP-UX) entry 만들고 connection SYN_RCVD 상태로 남게 됩니다. Server 고유한 SYN 포함하는 acknowledges(ACK) 가지고 SYN packet 응답을 합니다. Client에서 오는 다음 packet second SYN 대한acknowledge입니다. 두번째 SYN/ACK client로부터 받고 다음에 connectionaccepted listen queue (tcp_conn_req_max_qon Solaris, tcp_conn_request_maxon HP-UX) 이동합니다.



[
그림1.]TCP 흐름

 

만약 client SYN 보내기만 하고 어떤 ACK 받지 않으면 time out 때까지SYN_RCVD 상태로 남게 됩니다. 이러한 TCP 작동원리는 웹서버에서 권장하는 tcp파라메타를 이해하는데 충분한 설명 것입니다.

TCP Kernel Parameter의튜닝

UNIX 사용자가 tune 있도록 하고 있으며, 시스템 운영중에도 TCP/IP stack 관련한 다양한 파라메타는 set reset 가능합니다. 이러한 작업은 ‘ndd’명령어(network device driver) 가능합니다. Ndd명령은 시스템 재부팅 없이 변경이 가능하지만, 변경한 내용은 시스템 재부팅시 default 값이 되기 때문에 시스템start script 넣어주어야 합니다.

For Solaris Startup see : /etc/rc2.d/S69inet

For HP/UX 11.x Startup see : /etc/rc.config.d/nddconf

본문서에서 언급하는 파라메타는 time interval입니다. 모든 interval milisecond단위입니다.(e.g. 1000=1 second).

현재설정된TCP 커널파라미터의값확인

# ndd/dev/tcp\?

'1. 미들웨어이야기 > 05. 상용미들웨어' 카테고리의 다른 글

Tuxedo 구성정보 모니터링  (0) 2014.07.31
WebLogic JEUS 간 Global Transaction  (0) 2009.06.16
EJB 개념  (0) 2009.06.05
WebtoB URI 와 Alias  (0) 2009.06.05
WebtoB CSR 생성  (0) 2009.06.05