Liberty 튜닝
Liberty의 매개변수 및 속성을 튜닝할 수 있습니다.
이 태스크 정보
프로시저
- JVM을 튜닝하십시오. JVM 튜닝은 개발 환경을 구성하는지 또는 프로덕션 환경을 구성하는지 여부에 관계 없이 가장 중요한 튜닝 단계입니다. JVM for Liberty를 튜닝하는 경우 ${server.config.dir} 디렉토리에서 jvm.options 파일을 사용하십시오. 사용하려는 각 JVM 인수를 행당 한 옵션씩 지정할 수 있습니다. 자세한 정보는 Liberty 환경 사용자 정의의 내용을 참조하십시오.jvm.options 파일의 예는 다음과 같습니다.
-Xms50m -Xmx256m
개발 환경에서는 좀 더 빠른 서버 설정에 관심을 둘 수 있으므로, 최소 힙 크기는 작은 값으로 설정하고 최대 힙 크기는 애플리케이션에 필요한 값으로 설정하십시오. 프로덕션 환경에서 최소 힙 크기와 최대 힙 크기를 동일한 값으로 설정하면 힙 확장과 축소가 없어지므로 최상의 성능을 제공할 수 있습니다.
- 전송 채널 서비스를 튜닝하십시오. 전송 채널 서비스는 클라이언트 연결, HTTP에 대한 I/O 처리, 스레드 풀, 연결 풀을 관리합니다. Liberty의 애플리케이션에는, 런타임 성능, 확장성 또는 둘 다를 개선하는 데 사용할 수 있는 여러 요소에 다음 속성을 사용할 수 있습니다.
- httpOptions의 maxKeepAliveRequests
- 지속적 연결이 사용되는 경우 이 옵션은 단일 HTTP 연결에 허용되는 지속적 요청의 최대 수를 지정합니다.
-1 값은 무제한을 의미합니다. 이 옵션은 새로운 연결을 구축하는 데 비용이 많이 드는 상황에서 사용되는 SSL 연결과,
낮은 지연 또는 높은 처리량 애플리케이션을 지원합니다. 다음은 server.xml 파일에서 이 옵션을 코딩하는 방법의 예입니다.
<httpOptions maxKeepAliveRequests="-1" />
- connectionManager의 maxPoolSize
- 이 옵션은 연결 풀에 대한 최대 실제 접속 수를 지정합니다.
기본값은 50입니다. 최적 설정은 애플리케이션 특성에 따라 다릅니다.
모든 스레드가 데이터베이스에 대한 연결을 획득하는 애플리케이션의 경우
coreThreads 속성에 대한 1:1 맵핑으로 시작하십시오. 다음은 server.xml 파일에서 이 옵션을 코딩하는 방법의 예입니다.
<connectionManager ... maxPoolSize="40" />
- connectionManager의 purgePolicy
- 이 옵션은 시간이 경과된(stale) 연결이 풀에서 발견되는 경우 영구 삭제할 연결을 지정합니다.
기본값은 전체 풀입니다. 실패한 연결만 제거하는 것이 좋습니다. 다음은 server.xml 파일에서 이 옵션을 코딩하는 방법의 예입니다.
<connectionManager ... purgePolicy="FailingConnectionOnly" />
- connectionManager의 numConnectionsPerThreadLocal
- 이 옵션은 각 실행기 스레드의 캐시와 데이터베이스 연결 수를 지정합니다. 이 설정은 각 스레드에 지정되는 데이터베이스의 연결 수를 예약하여 대형의 멀티 코어(8+) 시스템에서 상당한 개선을 보일 수 있습니다.
- 연결에 대해 스레드 로컬 스토리지를 사용하면 멀티 스레드 시스템의 애플리케이션에서 성능이 향상될 수 있습니다.
numConnectionsPerThreadLocal을 1
이상으로 설정하면 이러한 스레드당 연결이 스레드 로컬 스토리지에 저장됩니다.
numConnectionsPerThreadLocal을 사용하는 경우에는
다음 두 개의 기타 값을 고려하십시오.
- 애플리케이션 스레드의 수
- 연결 풀 최대 연결 수
<connectionManager ... numConnectionsPerThreadLocal="1" />
- dataSource의 statementCacheSize
- 이 옵션은 연결당 준비된 캐시 명령의 최대 수를 지정합니다.
이 옵션을 설정하려면 다음 전제조건을 완료하십시오.
- 모든 고유한 준비된 명령문에 대해 애플리케이션 코드(또는 데이터베이스나 데이터베이스 드라이버를 통해 수집하는 SQL 추적)를 검토하십시오.
- 캐시 크기가 명령문 수보다 큰지 확인하십시오.
<dataSource ... statementCacheSize="60" >
- dataSource의 isolationLevel
- 데이터 소스 격리 레벨은 데이터 무결성 정도와 동시성을 지정하고 이는 다시
데이터베이스 잠금 레벨을 제어합니다.
최상의 성능(최저의 무결성)에서 최악의 성능(최고의 무결성) 순으로 다음과 같은 네 개의 옵션이 제공됩니다.
- TRANSACTION_READ_UNCOMMITTED
- 더티 읽기, 반복 불가능 읽기 및 팬텀 읽기가 발생할 수 있습니다.
- TRANSACTION_READ_COMMITTED
- 더티 읽기가 금지되고 반복 불가능 읽기 및 팬텀 읽기가 발생할 수 있습니다.
- TRANSACTION_REPEATABLE_READ
- 더티 읽기 및 반복 불가능 읽기가 금지되고 팬텀 읽기가 발생할 수 있습니다.
- TRANSACTION_SERIALIZABLE
- 더티 읽기, 반복 불가능 읽기 및 팬텀 읽기가 금지됩니다.
<dataSource ... isolationLevel="TRANSACTION_READ_COMMITTED">
- 기본 실행기를 튜닝하십시오.
Liberty 기본 실행기는 자체 튜닝되며 스레드를 동적으로 추가하거나 제거하여 현재 워크로드에 맞게 조정됩니다. 대부분의 워크로드에서 실행기는 튜닝이 필요하지 않으며, 스레드 작성에서 특정 문제점이 발생하는 경우를 제외하고 실행기 설정을 변경하지 않는 것이 좋습니다.
필요한 경우, Liberty 자동 튜닝 코드에 대한 하한 및 상한을 설정하도록 server.xml 파일에서 executor 요소의 coreThreads 및 maxThreads 매개변수를 구성할 수 있습니다. 실행기가 교착 상태 시나리오에서 벗어나도록 스레드를 추가하는 공격적 반교착 상태 코드가 실행기에 포함되어 있으므로 대개 coreThreads 설정이 필요하지 않습니다. 드물게, 반교착 상태 코드가 필요한 스레드를 추가합니다. 이 상황에서 executor 요소의 maxThreads 매개변수를 사용하여 실행기가 작성할 수 있는 스레드 수의 한계를 지정할 수 있습니다.
- 서블릿의 응답 시간을 줄이십시오.
서블릿의 응답 시간을 줄이려면 다음 속성을 server.xml 파일에 추가하십시오.
<webContainer skipMetaInfResourcesProcessing="true"/>
- 유휴 서버 CPU 시간을 줄이십시오.
유휴 서버 CPU 시간을 줄이려면 server.xml 파일에 다음 속성을 추가하십시오.
<applicationMonitor dropinsEnabled="false" updateTrigger="disabled"/> <config updateTrigger="disabled"/>
속성이 추가될 때 서버는 더 이상 구성 또는 애플리케이션 업데이트를 모니터하지 않습니다.
- 시작 시간을 튜닝하십시오.
- CDI 1.2
- 기본적으로 CDI 1.2 기능은 모든 애플리케이션 아카이브를 스캔합니다. CDI 1.2 기능을 사용하면
시작 시간이 상당히 증가할 수 있으므로 대형 애플리케이션에 가장 큰 영향을 미칩니다. enableImplicitBeanArchives
값을 false로 설정하여 어노테이션에 대한 내재적 아카이브 스캔을
사용 안함으로 설정할 수 있습니다. 아카이브에 beans.xml 파일이 없으면
이 설정은 아카이브 스캔을 건너뜁니다.
<cdi12 enableImplicitBeanArchives="false"/>
참고: webProfile-7.0 및 javaee-7.0과 같은 다른 기능에 cdi-1.2 기능이 포함되어 있으므로 cdi-1.2 기능이 server.xml 파일의 <features> 섹션에 없더라도 이 기능이 포함될 수 있습니다. messages.log 파일에서 "The server installed the following features:"를 검색하여 cdi-1.2가 설치되었는지 확인하십시오.
하위 주제
- 보안 애플리케이션을 위해 Liberty 튜닝
보안 애플리케이션의 성능을 최적화하도록 Liberty를 튜닝할 수 있습니다. - Liberty에서 연합 LDAP 저장소 튜닝
server.xml 파일에서 캐시 및 컨텍스트 풀 요소를 모니터 및 조정하여 연합 LDAP 저장소의 성능을 개선할 수 있습니다.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_tun
파일 이름: twlp_tun.html