Skip Navigation

XE 레이아웃 카메론 XE LAYOUT CAMERON XE1.7.5.7



조회 수 4632 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. File Descriptor

 

File Descriptor는 주로 각 소켓 커넥션(Socket Connection)으로 사용되는데 File Descriptor의 제한에 의해 영향을 받는 경우는 보통 소켓을 부적절하게 사용하는 경우이지만, 그 외에도 다음과 같은 에러가 발생하기도 한다.

-Too many open files

-Broken pipe

-ClassNotFound

물론 Broken pipe 에러는 다양한 경우에 발생하는 에러이지만 File Descriptor의 제한으로 인해 발생할 수 있다. 소켓 이외에 디스크로부터 클래스를 얻어 로드하는 경우 File Descriptor가 사용되는데, 부족하면 해당 시스템에 클래스가 존재하고도 ClassNotFound와 같은 에러가 표시되기도 한다.

다음의 예는 솔라리스에서 File Descriptor를 설정하는 예이다.

 

-ulimit 커맨드를 사용해 File Descriptor을 확인한다.

-ulimit 커맨드를 사용해 현재 프로세서에서의 Descriptor의 제한을 일시적으로 변경한다.

csh 경우)

limit descriptors 1024

sh, ksh 경우)

ulimit -n 1024

-File Descriptor의 값을 영구적으로 설정하기 위해 /etc/system 파일에 다음을 설정한다.

set rlim_fd_max= 최대값을 설정한다.

set rlim_fd_cur = 디폴트값을 설정한다.

 

현재 웹서버 1024로 설정

 

 

2. TCP 파라미터

 

TCP 파라미터를 적용함에 있어 ndd 명령어를 사용하며 재부팅후에도 계속 같은 설정값을 사용하고자 한다면 /etc/rc2.d/S69inet 에 값을 설정한다.

 

tcp_time_wait_interval

-커넥션이 종료됐을 때 TIME_WAIT 상태로 머물게 되는 시간을 설정

디폴트는 4(240000ms)으로 짦은 시간에 많은 클라이언트가 접속을 하면 네트워크 성능 에 영향을 줄 수 있기 때문에 1(60000ms) 정도로 변경할 것을 추천한다.

 

ICQ: tcp_conn_req_max_q0 , CCQ: tcp_conn_req_max_q

-솔라리스에는 클라이언트의 리퀘스트를 3웨이 핸드세이크(3-way handshake)를 통해 받는 다. 여기에는 ICQ(Incomplete Connec tions Queue), CCQ(Completed Connections Queue)가 있는데, ICQ는 시스템에 전달되는 모든 SYN 패킷을 저장한다.

즉 처음으로 커넥션을 시도하는 리퀘스트(Request)는 일단은 여기에 머물고, 3웨이 핸드세이크를 통해 완벽하게 established 상태가 되지 않은 모든 커넥션에 대한 내용도 바로 이 큐(Queue)에 저장되는 것이다.

CCQ3웨이 핸드세이크를 통해 커넥션이 성립된 것들이 저장되는 큐다. CCQ에서 대기하면서 다시 accept를 호출 하는 것을 기다리고 accept된 것들은 큐에서 사라진다.

모든 큐는 설정된 값(기본 128)에 의해 제한을 받는데 어떤 이유에서든 CCQ에서 지워지지 않고, 큐가 꽉 차면 커널은 더 이상의 커넥션을 받지 않는다.

타임아웃(Timeout) 값은 큐에 저장된 SYN 세그먼트에 의해 결정되며, 큐에 저장된 SYN 패킷에 대해 ACK가 수신되지 않는 경우(SYN_RCVD 상태)에는 시간이 경과되고 그 결과 그냥 패킷이 지워진다. 결과적으로 클라이언트가 아무리 SYN를 보내도 이러한 커넥션은 ICQ에 머물게 되며 3웨이 핸드세이크를 하지 않으므로 CCQ로 넘어가지 않는다. 이런 이유로 인해 두 개의 큐 설정 값은 WAs 서버의 성능에 큰 영향을 주게 된다.

tcp_conn_req_max_q0

tcp_conn_req_max_q

기본 1024

기본 128

권장1024 이상

권장 128 이상

 

tcp_ip_abort_cinterval

-연결에 대한 제한 시간을 중단(Abort Timeout)합니다., 3-Way 핸드셰이크 방식에서

사용되는 중단 타이머(Abort Timer)입니다.

기본값은 3(180000ms)입니다. 1분 권장

 

tcp_ip_abort_interval

-연결된 후에 사용되는 중단 시간 간격(Abort Interval)으로, 연결된 동안의 중단 제한

시간(Abort Timeout)입니다. , RESET 세그먼트가 보내지기 전에 연결이 설정된 상태

에서 TCP가 재전송되는 최대 시간입니다.

기본값은 8(480000ms)입니다. 1분 권장

메일서버가 설정된 서버에서는 값을 5분 이하로 줄이지 말것 아래와 같은 에러가 발생

sendmail: SYSERR: collect: read timeout on connection from

 

tcp_keepalive_interval

-서버 애플리케이션에서 KEEPALIVES가 설정되어 있고 응답하지 않은 연결이 계속 활성화

된 경우 검사하는 간격을 지정합니다.

tcp_keepalive_interval에 설정된 시간이 지나면 프로브(probe)가 보내지고 연결이

해제되어 응답하는 클라이언트가 없는 상태인 tcp_ip_abort_interval에 설정된 시간이

될 때까지 tcp_keepalive_interval에 프로브가 다시 보내집니다.

기본값은 7200000밀리초(2시간)입니다.

 

tcp_xmit_hiwat

-이 매개 변수는 연결된 상태에서 보낼 때 사용되는 버퍼 공간의 기본값을 지정합니다.

, UNACK 데이터를 보낼 때 할당되는 버퍼 공간의 크기입니다. 대부분의 경우

tcp_xmit_hiwat값과 tcp_recv_hiwat의 값은 같습니다. 기본값은 8192바이트(8K)입니다.

 

tcp_recv_hiwat

-이 매개 변수는 연결된 동안 사용되는 수신 버퍼 공간의 기본값을 지정합니다. ,

수신된 데이터에 대해 할당되는 버퍼 공간의 크기로 사용 가능한 최대 크기를

Receive Window에 알려줍니다. 대부분의 경우 tcp_recv_hiwat 값과 tcp_xmit_hiwat

값은 같습니다. 기본값은 8192바이트(8K)입니다.

 

tcp_rexmit_interval_max

-재전송을 위한 최대 시간 간격입니다. 두 번 연속되는 전송 과정에서의 최대 대기

시간의 간격입니다.

기본값은 60000밀리초(1)에서 240000밀리초(240)로 변경되었습니다

 

tcp_rexmit_interval_min

-재전송을 위한 최소 시간 간격입니다.

, 첫 번째 재전송 후 최소 대기 시간의 간격입니다.

기본값은 200밀리초입니다.

 

현재 /etc/rc2.d/S69inet 에 설정된 내용

/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 8192

/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 8192

/usr/sbin/ndd -set /dev/tcp tcp_ip_abort_cinterval 60000

/usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 60000

/usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 10000

/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 7000

/usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 65536

/usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 65536

/usr/sbin/ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 70000

/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_max 60000

/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_min 200

 

1. 수동으로 끄기 (일시적으로만 먹힘)system-config-securitylevelsetenforce 0

2. 커널 명령행에 다음 옵션 추가. (grub.conf 등에)selinux=0

3. /etc/selinux/config 파일 수정 ***추천***SELINUX=어쩌구~ 써있는 것을 SELINUX=disabled로 수정


List of Articles
번호 카테고리 제목 글쓴이 날짜 조회 수
138 Linux pydio 8 하단 메시지 수정 Alex 2017.10.09 771
137 Linux Pydio 메인언어 수정 Alex 2017.10.09 547
136 Linux Pydio ZIP 압축시 한글이름 깨짐 Alex 2017.10.09 581
135 Linux yum 으로 phpmyadmin 설치 Alex 2016.03.24 2628
134 Mac 관리자 패스워드 재설정 방법 Alex 2015.03.27 1833
133 Mac Mac Address 변경 (OSX) Alex 2015.03.14 1756
132 Windows PC의 무선랜카드를 공유기로 설정하는 방법 Alex 2015.02.28 1884
131 Windows 무선랜끼리 데이터 공유 Alex 2015.02.28 3847
130 Windows PC를 무선공유기로 설정하는 방법 file Alex 2015.02.18 3888
129 데이터베이스 Another Mysql Deamon ... Alex 2015.02.03 1022
128 Linux Ajaxplorer 한글 폴더 에러 처리 Alex 2014.02.08 4682
127 Linux Centos 6 에서 php-mcrypt 설치하기 Alex 2014.02.08 3069
126 Linux Centos 6.5 Ajaxplorer 설치하기 Alex 2014.02.08 6449
125 유닉스 Tar 분할압축 해제하기 Alex 2013.11.20 4338
124 Mac hosts파일 편집 명령 Alex 2012.10.21 3151
123 데이터베이스 Mysql 자동 백업 복구 스크립트 Alex 2012.06.28 6657
» Linux 파일 개수 및 TCP 트래픽 제어 Alex 2012.06.27 4632
121 Linux 제로보드 XE 설치후 짧은 주소 사용 (mod_rewrite) 기능이 작동 안될 때 확인 해야 할 사항. Alex 2012.06.27 4652
120 Linux 리눅스 하드디스크 추가장착 방법 솔나무 2011.03.21 3194
119 Linux tar 명령어 옵션들 솔나무 2010.02.09 2412
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7