튜닝및모니터링 Linux 권고커널파라미터 2014. 12. 11
Linux 권장커널파라미터 1. 커널파라미터별설명및설정방법 1.1 nofile ( max number of open files ) 설명 : 지원되는열린파일수를지정합니다. 기본설정이보통대부분의응용프로그램에대해충분합니다. 이매개 변수에설정된값이너무낮으면파일열기오류, 메모리할당장애또는연결설정오류가발생할수있습니다. 보기또는설정방법 : 다른쉘의구문은 ulimit 명령에대한 UNIX 참조페이지를확인하십시오. KornShell 쉘 (ksh) 에대 해 ulimit 명령을 8192 으로설정하려면 ulimit -n 8192 명령을발행하십시오. 시스템자원에대한모든한계의현재값 을표시하려면 ulimit -a 명령을사용하십시오. 기본값 :SLES 9(SUSE Linux Enterprise Server 9) 의경우기본값은 1024 입니다. 권장값 :8192 이상 1.2 nproc ( max user processes ) 설명 : user 에서생성할수있는최대 process 개수이며, process 와 Thread 를합한개수입니다. 만약적게설정되어 있을경우에 native thread 를생성할수없다는등의에러가발생할수있습니다. 보기또는설정방법 : 다른쉘의구문은 ulimit 명령에대한 UNIX 참조페이지를확인하십시오. KornShell 쉘 (ksh) 에대 해 ulimit 명령을 8192 으로설정하려면 ulimit -u 8192 명령을발행하십시오. 시스템자원에대한모든한계의현재값을 표시하려면 ulimit -a 명령을사용하십시오. 기본값 :SLES 9(SUSE Linux Enterprise Server 9) 의경우기본값은 1024 입니다. 권장값 :8192 이상 1.3 연결백로그 설명 : 수신연결요청의높은비율이연결실패가될때다음매개변수를변경하십시오. echo 3000 > /proc/sys/net/core/netdev_max_backlog echo 3000 > /proc/sys/net/core/somaxconn 2
1.4 timeout_timewait 매개변수 설명 :TCP/IP 가닫힌연결을해제하고그의자원을다시사용하기전에경과해야하는시간을판별하십시오. 닫힘과해제사이의이간격을TIME_WAIT 상태또는2MSL(twice the maximum segment lifetime) 상태라고합니다. 이기간동안, 클라이언트와서버로의연결을다시여는비용은새연결을설정하는비용보다저렴합니다. 이항목의값을줄이면TCP/IP 가닫힌연결을더빨리해제할수있어서새연결을위해더많은자원을제공할수있습니다. 실행중인응용프로그램에서빠른해제와새연결의작성이필요하고TIME_WAIT 상태에있는많은연결로인해처리량이낮은경우이매개변수를조정하십시오. 보기또는설정방법 : 다음명령을발행하여 timeout_timewait 매개변수를 30 초로설정하십시오. echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout 기본값 :75 초 권장값 :15 초 1.5 TCP_KEEPALIVE_INTERVAL 설명 : tcp_keepalive_intvl 값은상대로부터활성화상태지속응답이수신되지않을경우 TCP/IP 에서활성화상태지 속전송을반복하는빈도를결정합니다. 응답이없는연속적인활성화상태지속전송수가 tcp_keepalive_probes 의 값을초과할경우연결이중단됩니다. 응답시간이길것으로예상될경우이값을늘려오버헤드를줄여야할수 있습니다. 상대가손실되었는지확인하는데소비되는시간을줄여야할경우이값또는 tcp_keepalive_probes 값을 줄여보십시오. Linux 에서는활성화상태지속메시지를재전송하기전에 75 초동안활성화상태지속응답을대기하는것이기본 값입니다. 종종값에 15 초를선택하여손실된상대를더빨리감지합니다. 보기또는설정방법 : 다음명령을발행하여값으로설정하십시오. echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl 기본값 :75 초 권장값 :15 초 1.6 TCP_KEEPALIVE_PROBES 설명 :tcp_keepalive_probes 값은 TCP/IP 가기존연결에대한수신확인되지않은활성화상태지속메시지를재전송하는횟수를결정합니다. 네트워크품질이낮을경우이값을늘려효과적인통신을유지해야할수있습니다. 네트워크품질이높을경우이값을줄여상대가손실되었는지확인하는데걸리는시간을줄여도됩니다. Linux 에서는연결중단을결정하기전에 9개의수신확인되지않은활성화상태지속메시지를전송하는것이기본값입니다. 종종값에 5를선택하여손실된상대를더빨리감지합니다. 3
보기또는설정방법 : 다음명령을발행하여값으로설정하십시오. echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes 기본값 :9 초 장값 :5 초 1.7 TCP_ KEEPALIVE _TIME 설명 :tcp_keepalive_time 값은 TCP/IP 가대기연결이계속원래상태를유지하는지확인을시도하는빈도를제어합니다. 이시간동안활동이없었을경우활성화상태지속전송이제출됩니다. 네트워크가원래상태를유지하며상대가활성상태일경우상대가응답합니다. 손실된상대에대해민감하게되려는경우 ( 즉, 상대가손실되었음을더빨리인식해야할경우 ) 이값을줄여보십시오. 오랜기간동안비활성상태를유지하는연결은공통이고손실된상대는공통이아닐경우이값을늘려오버헤드를줄여도됩니다. 7,200 초 (2시간) 동안대기연결이비활성상태일경우 Linux 에서는활성화상태지속메시지를전송하는것이기본값입니다. 종종값에 1,200초를선택하여반쯤닫힌연결을 20분마다감지합니다. 보기또는설정방법 : 다음명령을발행하여값으로설정하십시오. echo 10 > /proc/sys/net/ipv4/tcp_keepalive_time 기본값 :7200 초 권장값 :1200 초 2. 커널파라미터영구적으로적용하는방법 2.1 ulimit n 값확인 (max number of open files ) - max number of open files 값이디폴트값이 1024 이며, 최소 8192 이상으로설정권고합니다 - 아래와같이 /etc/security/limits.conf 파일에서수정하면영구적으로적용됩니다. [ 확인방법 ] stech:/home/tech2> ulimit -a : ( 생략 ) max number of open files (-n) 65536 [ 변경방법 ] /etc/security/limits.conf 를추가하는방법이있습니다. /etc/security/limits.conf 에아래의내용을추가합니다. # nofile tunning - max number of open files * soft nofile 65536 * hard nofile 65536 4
2.2 ulimit -u 값확인 (max user processes ) - max user processes 값이디폴트값이 1024 이며, 최소 8192 이상으로설정권고합니다. - 아래와같이 /etc/security/limits.conf 파일에서수정하면영구적으로적용됩니다. [ 확인방법 ] stech:/home/tech2> ulimit -a : ( 생략 ) max user processes (-u) 65536 [ 변경방법 ] /etc/security/limits.conf 를추가하는방법이있습니다. /etc/security/limits.conf 에아래의내용을추가합니다. : 아래는예제이며, tmax 라는사용자계정에 nproc 값을설정하였습니다. # nproc tunning - max user processes tmax hard nproc 65536 tmax soft nproc 65536 2.3 TCP 커널파라미터튜닝및확인방법 /etc/sysctl.conf 파일을아래와같이수정한다. 그리고, 바로적용하기위해서 root 권한에서 sysctl -p 명령을실행합 니다. 그러면, OS 를 restart 하더라도설정한 TCP 커널파라미터값들이초기화되지않습니다. 적용된내용을확인하는방법은 sysctl a 명령을실행하면결과값이출력됩니다. #tcp tuning net.ipv4.tcp_fin_timeout = 30 net.core.netdev_max_backlog = 3000 net.core.somaxconn = 3000 net.ipv4.tcp_keepalive_intvl = 15 net.ipv4.tcp_keepalive_probes = 5 net.ipv4.tcp_keepalive_time = 1200 3. 참고자료 1) Linux 성능조정 http://publib.boulder.ibm.com/wasce/v1.0.1/ko/tasks/tuning/linux.html 5
Copyright 2015 TmaxSoft Co., Ltd. All Rights Reserved. Trademarks Tmax, WebtoB, WebT, JEUS, ProFrame, SysMaster and OpenFrame are registered trademarks of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Contact Information TmaxSoft can be contacted at the following addresses to arrange for a consulting team to visit your company and discuss your options. Korea TmaxSoft Co., Ltd 5, Hwangsaeul-ro 329beon-gil, Bundang-gu, Seongnam-si, Gyeonggi-do. South Korea Tel: +82-31-8018-1000 Fax: +82-31-8018-1115 Email: info@tmax.co.kr Web (Korean): http://www.tmaxsoft.com Technical Support: http://technet.tmaxsoft.com USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ 07632. U.S.A Tel: +1-201-567-8266 Fax: +1-201-567-7339 Email: info@tmaxsoft.com Web (English): http://www.tmaxsoft.com Russia Tmax Russia L.L.C. Grand Setun Plaza, No A204 Gorbunova st.2, Moscow, 121596 Tel: +7(495)970-01-35 Email: info.rus@tmaxsoft.com Web (Russian): http://ru.tmaxsoft.com Singapore Tmax Singapore Pte. Ltd. 430 Lorong 6, Toa Payoh #10-02, OrangeTee Building. Singapore 319402 Tel: +65-6259-7223 Email: info.sg@tmaxsoft.com United Kingdom TmaxSoft UK Ltd. Surrey House, Suite 221, 34 Eden Street, Kingston-Upon- Thames, KT1 1ER United Kingdom Tel: + 44-(0)20-8481-3776 Email: info.uk@tmaxsoft.com Web (English): http:/www.tmaxsoft.com Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073 Japan Tel: +81-3-5765-2550 Fax: +81-3-5765-2567 Email: info.jp@tmaxsoft.com Web (Japanese): http://www.tmaxsoft.co.jp China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2 North Rd Dong San Huan, Chaoyang District, Beijing, China, 100027. China Tel: +86-10-6410-6145~8 Fax: +86-10-6410-6144 Email: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn Brazil TmaxSoft Brazil Avenida Copacabana, 177-3 andar 18 do Forte Empresarial, Alphaville - Barueri, Sao Paulo, SP-Brasil CEP 06472-001 Email: contato.brasil@tmaxsoft.com TN-JSTN-D1211001 6