2013-09-16 10 views
3

얼마 전에 우리는 웹 애플 리케이션 중 하나를 Resin 및 Java 6에서 VMware vFabric tc Server 및 Java 7로 이동했습니다. 또한 Resin 구현에서 모든 JNDI 데이터 소스 이동 Oracle UCP. 나는 내가 로컬에서 응용 프로그램을 실행할 때 내 CPU 사용량이 매우 높다는 것을 알고 있습니다.자바 1.7 + TC 서버에서 오라클 UCP 높은 CPU 사용량

enter image description here

내 로컬 구성은 다음과 같습니다 : 윈도우 7x64, 자바 1.7.0_25x32 (JDK) 및 표준 vFabric tc를 서버 2.7 I를 TC에 따라 VisualVM과를 부착 한 후 내 CPU를 소모 오라클 UCP 것으로 나타났습니다 .0. 릴리스. 여기에 내가 context.xml에서 데이터 소스를 구성하는 방법입니다 :

<WatchedResource>WEB-INF/web.xml</WatchedResource> 

    <Resource name="jdbc/oracle" 
      auth="Container" 
      factory="oracle.ucp.jdbc.PoolDataSourceImpl" 
      type="oracle.ucp.jdbc.PoolDataSourceImpl" 
      connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource" 
      url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=h1.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=h2.com)(PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=SERVICENAME)))" 
      user="user" 
      password="password" 
      minPoolSize="0" 
      initialPoolSize="1" 
      maxPoolSize="50" 
      ONSConfiguration="nodes=h1:6200,h2:6200" 
      connectionWaitTimeout="60" 
      inactiveConnectionTimeout="900" 
      abandonedConnectionTimeout="900" 
      fastConnectionFailoverEnabled="false" 
      validateConnectionOnBorrow="true" 
      connectionPoolName="NAME"/> 

자극 상자에 모든 것이 잘 작동하는 것이 재미있다. 나는 정확한 설정을 모르지만 그들과 핫스팟 7에 Fedora 또는 CentOS가 설치되어있다.

필자는 표준 Tomcat 데이터 소스 구현을 시도했지만 내 경우에는 제대로 작동하지 않는다. 로컬 컴퓨터와 DB 클러스터 간의 연결 매우 불안정하기 때문에 자동 복구 및로드 밸런싱이 중요합니다. 또한, 내 로컬 설정을 prod와 비슷하게 설정하면 다른 풀을 사용하는 것이 바람직하지 않습니다.

어쩌면 누군가가 똑같은 문제에 직면하고 해결책을 알고 있을까요? 어쩌면 일부 JVM arg 또는 기본 라이브러리가 누락되었을 수 있습니까? 그것은 기여 중 하나가 될 수 있기 때문에

+1

디 컴파일러와 UCP 소스 코드에 파고 후 자세한 내용은 아래의 링크를 찾아주세요, 우리는 원인이 잠재적 인 문제 및 무한 루프를 발견했습니다. 젠장, 오라클! – madhead

답변

1

친절하게 (모두 유휴 연결에서 보낸

더 많은 시간을 abandonedConnectionTimeout

1))

2

inactiveConnectionTimeout 요인 아래 매개 변수의 제한 시간 (초)을 줄이기 위해 고려 빌려 사용 가능) 연결을 유지하려면 더 많은 메모리가 필요합니다.

웹 응용 프로그램을 사용하면 간접적으로 높은 메모리 사용으로 인해 더 많은 CPU가 사용될 수 있습니다.

하는

Optimizing Universal Connection Pool Behavior

CPU usage VS RAM