tcp 파라미터 보기
#!/bin/sh
# Check TCP/IP Parameter
#
echo "tcp_time_wait_interval: " `/usr/sbin/ndd -get /dev/tcp tcp_time_wait_interval`
# echo "tcp_mss_max: " `/usr/sbin/ndd -get /dev/tcp tcp_mss_max`
# echo "tcp_fin_wait_2_flush: " `/usr/sbin/ndd -get /dev/tcp tcp_fin_wait_2_flush_int
erval`
echo "tcp_conn_req_max_q: " `/usr/sbin/ndd -get /dev/tcp tcp_conn_req_max_q`
echo "tcp_conn_req_max_q0: " `/usr/sbin/ndd -get /dev/tcp tcp_conn_req_max_q0`
# echo "ip_path_mtu_discovery: " `/usr/sbin/ndd -get /dev/tcp ip_path_mtu_discovery`
echo "tcp_xmit_hiwat: " `/usr/sbin/ndd -get /dev/tcp tcp_xmit_hiwat`
echo "tcp_recv_hiwat: " `/usr/sbin/ndd -get /dev/tcp tcp_recv_hiwat`
# echo "tcp_cwnd_max: " `/usr/sbin/ndd -get /dev/tcp tcp_cwnd_max`
echo "tcp_keepalive_interval: " `/usr/sbin/ndd -get /dev/tcp tcp_keepalive_interval`
echo "tcp_ip_abort_interval: " `/usr/sbin/ndd -get /dev/tcp tcp_ip_abort_interval`
echo "tcp_ip_abort_cinterval: " `/usr/sbin/ndd -get /dev/tcp tcp_ip_abort_cinterval`
echo "tcp_rexmit_interval_initial: " `/usr/sbin/ndd -get /dev/tcp tcp_rexmit_interval_init
ial`
echo "tcp_rexmit_interval_min: " `/usr/sbin/ndd -get /dev/tcp tcp_rexmit_interval_min`
echo "tcp_rexmit_interval_max: " `/usr/sbin/ndd -get /dev/tcp tcp_rexmit_interval_max`
echo "ip_ignore_redirect: " `/usr/sbin/ndd -get /dev/tcp ip_ignore_redirect`
tcp time_wait_interval
= 커넥션이 종료 됬을때 Time_wait 상태로 머물게 되는 시간 설정 디폴트 ( 240,000ms = 4분 )
짧은 시간에 많은 클라이언트가 접속을 하면 네트워크 성능에 영향을 줄 수 있으므로 1분
( 60,000ms = 1분 ) 추천
ICQ : tcp_conn_req_max_q0, CCQ : tcp_conn_req_max_q
= 솔라리스는 클라이언트의 request 를 3way-handshake 를 통해 받는데,
ICQ(Incomplete connections Queue), CCQ(Completed Connections Queue)가 있는데,
ICQ 는 시스템에 전달되는 모든 SYN 패킷을 저장한다.
즉 처음으로 커넥션을 시도하는 request 는 일단은 여기에 머물고, 3way-handshake 를 통해
완벽하게 established 상태가 되지 않은 모든 커넥션에 대한 내용도 바로 이 Queue 에 저장된다.
CCQ 는 3way-handshake 를 통해 커넥션이 성립된 것들이 저장되는 Queue다.
CCQ 에 대기하면서 다시 accept를 호출 하는 것을 기다리고, accept 된 것들은 큐에서 사라진다.
모든 queue는 설정된 값(기본 128개)에 의해 제한을 받는데 어떤 이유에서든 CCQ 에서 지워지지 않고, 큐가 꽉 차면 커널은 더 이상의 커넥션을 받지 않는다.
Timeout 값은 큐에 저장된 SYN 세그먼트에 의해 결정되며, 큐에 저장된 SYN 패킷에 대해 ACK가
수신되지 않는 경우 (SYN_RCVD 상태)에는 시간이 경과되고 그 결과 그냥 패킷이 지워진다.
결과적으로 클라이언트가 아무리 SYN을 보내도 이러한 커넥션은 ICQ 에 머물게 되며,
3way hand-shake 를 하지 않으므로 CCQ로 넘어가지 않는다. 이런 이유로 인해 두 개의 큐
설정 값은 was 서버의 성능에 영향을 주게 된다.
tcp_conn_req_max_q0
= 기본 1024, 권장 1024 이상
tcp_conn_req_max_q
= 기본 128, 권장 128 이상
tcp_ip_abort_cinterval
= 연결에 대한 제한 시간을 중단 ( abort timeout )
3way-handshake 방식에서 사용되는 중단 타이머
기본값은 (180,000ms) 3분, 1분 권장
tcp_ip_abort_interval
= 연결된 후에 사용되는 중단 시간 간격 ( abort interval )
연결된 동안의 중단 제한 시간, Reset 세그먼트가 보내지기 전에 연결이 설정된 상태
에서 Tcp 재전송되는 최대 시간
기본값은 8분 (480,000ms), 1분 권장
* 메일 서버가 설정된 서버에서는 값을 5분 이하로 줄이지 말것
sendmail : SYSERR : collect : read timeout on connection from
tcp_keepalive_interval
= 서버 어플리케이션에서 Keep alives 가 설정되어 있고, 응답하지 않은 연결이 계속 활성화
된 경우 검사하는 간격 지정
tcp_keepalive_interval에 설정된 시간이 지나면 프로브(probe)가 보내지고 연결이
해제되어 응답하는 클라이언트가 없는 상태인 tcp_ip_abort_interval에 설정된 시간이
될 때까지 tcp_keepalive_interval 에 probe가 재전송 된다.
기본값은 2시간 ( 7,200,000ms )
tcp_xmit_hiwat
= 연결된 상태에서 보낼 때 사용되는 버퍼 공간의 기본값을 지정
UNACK 데이터를 보낼 때 할당되는 버퍼 공간의 크기, 대부분의 경우
tcp_xmit_hiwat 값과 tcp_recv_hiwat 의 값은 같다.
기본값은 ( 8K )
tcp_recv_hiwat
= 연결된 동안 사용되는 수신 버퍼 공간의 기본값을 지정
수신된 데이터에 대해 할당되는 버퍼 공간의 크기로 사용 가능한 최대 크기를
Receive window 에 알려준다. 대부분의 경우 tcp_recv_hiwat 값과 tcp_xmit_hiwat
값은 같다. 기본값은 ( 8K )
tcp_rexmit_interval_max
= 재전송을 위한 최대 시간 간격, 두 번 연속되는 전송 과정에서의 최대 대기 시간 간격
기본값은 1분 ( 60,000 ms ) 에서 4분으로 ( 240,000 ms ) 로 변경
tcp_rexmit_interval_min
= 재전송을 위한 최소 시간 간격, 첫 번째 재전송 후 최소 대기 시간의 간격
기본값은 (200,000 ms )
==> 출처 : http://twins.tomeii.com/entry/%ED%8E%8C-%EC%86%94%EB%9D%BC%EB%A6%AC%EC%8A%A4-TCP-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0-%ED%8A%9C%EB%8B%9D-%EC%B0%B8%EA%B3%A0
위 값은 솔라리스 9 인가보다
솔라리스 10 에서는 기본값이 틀림
==> 참고2 http://www.gurkulindia.com/main/2012/08/solaris-network-performance-tuning-know-about-tcp-window-size/
==> 참고3 http://www.sean.de/Solaris/soltune.html
'Work > Solaris' 카테고리의 다른 글
ldom 설치, 삭제 (0) | 2015.01.26 |
---|---|
solaris 자동완성 (0) | 2015.01.13 |
while 문 사용하기 (0) | 2015.01.07 |
solaris IPMP 설정 ( 네트워크 bonding or Teaming ) (0) | 2015.01.07 |
zfs 파일 시스템 (0) | 2014.12.30 |