MySQL (최대 절전 모드)을 데이터베이스로 사용하는 Java (Tomcat) 응용 프로그램이 있습니다.Apache Tomcat 8 + MySQL 성능 문제
아주 간단한 Java Jsf 응용 프로그램이며 3 명의 사용자 만 시스템을 동시에 사용합니다 (두 가지 종류의 큰 테이블이 있으며 20k 라인이 있으며 일반적으로 정지 할 때 사용합니다).
시스템이 계속 울리며 다시 작동하려면 Tomcat 및 MySQL을 다시 시작해야합니다. 로그에서
내가 가진 : 또한
[WARN] 2017-11-08 16:53:02,438 com.zaxxer.hikari.pool.PoolBase isConnectionAlive - HikariPool-1 - Failed to validate connection [email protected]
:
[WARN] 2017-11-08 17:04:32,200 com.zaxxer.hikari.pool.HikariPool run - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m22s40ms97µs73ns).
그리고 (90X) : 또한
[WARN] 2017-11-08 17:04:35,438 com.zaxxer.hikari.pool.PoolBase isConnectionAlive - HikariPool-1 - Failed to validate connection [email protected] (No operations allowed after connection closed.)
:
java.lang.OutOfMemoryError: GC overhead limit exceeded
또한 나중에 나는 java.lang.OutOfMemoryError: Java heap space
을 얻었지만 760Mb 만 시스템에서 사용하고있었습니다.
모든 팁 (YES,하는 오류 많은 이것은 IT가 ME에 고정하는 방법도! 어려운 이유는, 거기)? 내가 사용중인 메모리를 확인하면
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx512m"
export CATALINA_OPTS="$CATALINA_OPTS -server"
보여줍니다 :
mysqld = 165.3 MiB
java = 662.0 MiB
을 나는 다음과 같은 설정 히카리 연결 풀을 사용하고
은 내가 setenv.sh에서 설정 한 :
<property name="hibernate.hikari.maximumPoolSize" value="200" />
<property name="hibernate.hikari.idleTimeout" value="30000" />
<property name="hibernate.hikari.maxLifetime" value="600000" />
<property name="hibernate.hikari.dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" />
<property name="hibernate.connection.provider_class" value="org.hibernate.hikaricp.internal.HikariCPConnectionProvider" />
서버 1GB의 램과 vCPU 1 개를 가진 디지털 오션 물방울에서 실행되는
wait_timeout = 360
interactive_timeout = 420
: 도끼 연결은 152
MySQL로 의 my.cnf 설정을 설정합니다. 이 서버에 대해 가장 좋은 tomcat + mysql + hiraki 구성은 무엇입니까?
감사합니다.
[EDITED]
은 내가 Xms512m 및 Xmx512m PARAMS을 제거하고 20에 maximumPoolSize를 감소하고 서버의 몇 시간 후 실행 확인 내가 가지고 : 인 문제의
ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - HikariPool-1 - Connection is not available, request timed out after 30004ms.
javax.persistence.PersistenceException:
org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
또한 스왑 메모리 1Gb – jNewbie