ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <아파치-톰캣 기술지원 전문기업 (주)제스트정보기술> - Web Server Performance 튜닝(OS Kernel Parameter)
    WEBWAS/Apache,Tomcat 2023. 7. 24. 19:07

    안녕하세요 (주)제스트정보기술 입니다.

    오늘은 Tomcat 내에서 WEB/WAS Server Performance에 상당히 중요한

    OS Kernal Parameter 튜닝에 대해 알아보겠습니다.

    OS Kernal Parameter 중 네트워크 관련된 설정 값이 있고 중요합니다만

    WEB서버와 WAS 서버는 socket 연결과 thread 생성에 대한 부분도 중요합니다.

    이번 포스팅은 max user processes, open files 관련 내용입니다.

    해당 설정들은 ulimit -a, ulimit -aH 명령어로 확인이 가능하며

    각각 soft, hard 설정 정보를 확인 할 수 있는 명령어 입니다.

    1. max user processes

    -. linux에서는 thread도 하나의 process로 인식합니다.

    -. WEB및 WAS에서는 thread의 생성 가능 숫자와 max user processes 값이 밀접한 관련이 있습니다.

    -. jvm thread 생성하고 각 thread마다 넘버링하는 간단한 app을 실행시키면 max user processes 수 만큼 생성이 되는 것을 확인할 수 있습니다.

    -. 기본 적으로 OS에서 작동하는 process가 있기 때문에 max user processes 보다는 다소 적게 생성되고 openfiles보다는 큰 값이 생성되는 것을 확인할 수 있습니다.

    -. max user processes 임계치를 넘어서는 thread가 생성이 되면 "java.lang.OutofMemoryError: unable to create new native thread Error"가 발생합니다.

    -. 아래 파일에서 vi편집기로 수정이 가능 합니다.

    vi /etc/security/limits.d/20-nproc.conf

    * soft nproc 2047

    * hard nproc 16384

    2. open files

     

    -. 프로세스가 가질 수 있는 소켓과 파일의 수 입니다.

    -. 30분동안 sleep 되는 웹 페이지를 하나 생성하고 openfiles 보다 많은 수를 요청해 보면 openfiles 수에 근접할때 "IOException: 열린 파일이 너무 많음" error가 발생합니다.

    -. 테스트시 설정된 openfiles수는 1024였고 실제 연결을 맺은 수는 4097정도.

    -. ls -l /proc/$PID/fd | wc -l 명령어로 해당 프로세스가 오픈한 파일 갯수를 확인할 수 있습니다.

    -. soft가 1024였고 hard가 4096으로 설정되어있음.

    -. 이유를 찾아보니 Java의 MaxFDLimit 설정 때문이었습니다.

    -. MaxFDLimit 기본값이 true인데 이 설정 값은 리눅스에서 JDK 실행시 openfiles의 limit 사이즈를 자동으로 hard 값으로 설정된 수 까지 증가 시키는 설정입니다.

    -. java -XX:+PrintFlagsFinal -version | grep MaxFDLimit 으로 설정을 확인할 수 있습니다.

    -. 아래 파일에서 vi편집기로 수정 가능합니다.

    /etc/security/limits.conf

    * soft nofile 1024

    * hard nofile 4096

     
     
     
     

    **결론**

    프로세스가 소켓 및 파일 open 가능한 수는 open files 값에 영향을 받고

    Thread수는 max user processes 값에 영향을 받는 것을 확인하였습니다.

    WEB 서버나 WAS의 config중 socket 연결 수와 thread 생성 가능 수 관련된 설정들이 있을 텐데

    이 설정 값들은 Linux OS의 max user processes, open files에 영향이 있습니다.

    max user processes, open files 수를 hardware spec이 가능한한 적정한 수로 설정을 해야하고

    WEB,WAS의 설정은 이 값을 넘지 않게 해야합니다.


    <제스트정보기술 기술지원>

     

    (주)제스트정보기술은 전산시스템 구축에 오픈소스 SW로 구성

    요구사항 분석과/공개 소프트웨어 설치 및 기술지원/서비스 연동/교육 및 컨설팅을 수행 하고 있습니다.

    -. 공개 소프트웨어 기술 지원체계 수립

    -. 공개 SW 교육 지원

    수요기관의 SW 구조/기능을 분석하고, 공개 SW 도입을 위한 분석, 솔루션을 검토함.

    -. 오픈소스 SW 구축을 위한 최근 개발경향 분석

    -. 해당 기능/역할에 대한 공개 소프트웨어 기술데이터 분석

    -. 개방형 OS 도입 및 인프라 기반 WEB/WAS, 오픈 DB 기술지원 체계 수립

    -.Apache, Jboss(Wildfly) was, Linux OS, 오픈 DBMS 구축, 기술지원

    제스트정보기술은 20년 이상의 WEB/WAS 기술지원 경험과 노하우를 바탕으로

    고객의 인프라 상용소프트웨어(Jeus, weblogic,JBoss EAP, Oracle DB등)에 소요되는 제반비용

    (도입, 운영, 유지보수 비용등)을 획기적으로 절감하도록 계획과 방법을 제안하고 있으며

    시스템 서비스의 성능을 전반적으로 개선하여 기술지원, 컨설팅을 제공하고 있습니다.

    시스템 구축 이후에도 서비스 안정화를 위해 지속적인 서비스 모니터링 지원하고 있으며 ,

    고객의 시스템을 안정적으로 운영하기 위해 최선의 노력을 다하고 있습니다.​

     

    <오픈소스 기술지원 문의>

    영업지원 : sales@xest.kr

    전화번호 : 02-558-5918

    팩스번호 : 02-558-5913

    홈페이지 : http://www.xest.kr

Designed by Tistory.