티스토리 뷰

1. Apache Keep Alive 옵션 조절

Apache 같은 web server로 운영한다면, KeepAlive Option 을 고려할 수 있습니다.

KeepAlive Option을 On 으로 해놓을 경우 Client를 접속시킨 채로 특별한 요청없이 지속적인 연결을 허용하게 됩니다. 이경우 KeepAliveTimeout 설정으로 연결유지 타임을 설정할 수 있습니다.

(이경우 web server에서 응답시 헤더에 Connection : close 의 정보가 없이 날라가게 됨)


하지만 위의 설정은 약이되고 독이될 수 있어 보입니다.

Client 가 정해져있는 server to server http 연동 I/F 용으로 사용되는 웹서버의 경우 위 설정으로 TIME_WAIT 을 줄이는 효과를 기대할 수 있을거 같습니다.

하지만 web 서비스 를 하는 용도라면 불필요하게 커넥션을 유지하여 오히려 http thread 갯수만 늘어나서 독이될 수 있습니다.

(최대 용량은 아직 놀고있으면서 커넥션이 안되어서 TPS가 현저하게 떨어질 것으로 예상..)

용도별로 Apache Port 분리하여 KeepAlive Option을 적절히 이용하는게 해법일 수 있겠습니다.


2. 커널 파라미터 튜닝net.ipv4.tcp_fin_timeout = 30

: FIN_TIMEOUT 대기 시간을 줄이면 끊어진 소켓의 소거 시간을 줄일 수 있음


net.ipv4.tcp_rfc1337 = 1

: 클라이언트의 소켓으로부터 RST를 받아 TIME_WAIT 상태로 가는 경우 즉시 소켓을 종료시킴


net.ipv4.tcp_max_tw_buckets =2000000

: 동시에 유지 가능한 timewait 소켓의 수


위 커널 파라미터를 적절히 튜닝하는게 좋겠습니다. 특히 웹서버인경우 FINE_TIMEOUT 대기시간을 먼저 줄여보는 방법이 좋아보입니다.

'서버 > 리눅스 이야기' 카테고리의 다른 글

Undefined Symbol: Unixd_config  (0) 2015.12.09
mod_expires  (0) 2015.12.09
mod_deflate  (0) 2015.12.09
Fail2ban install & config  (0) 2015.12.09
Apache - TIME_WAIT 줄이기기기  (1) 2015.11.19
Snopy Logger : 사용자 세부 사항 및 커맨드 키록  (0) 2015.11.19
댓글
댓글쓰기 폼