Skip to the content.

Springで高スループット出すときに気にしたこと

Javaヒープサイズ

JVM起動する際にヒープサイズを指定しないと物理メモリに対して非常に小さいメモリが割当たる。
以下のように環境変数で指定する。

JDK_JAVA_OPTIONS="-XX:MinRAMPercentage=60 -XX:InitialRAMPercentage=60 -XX:MaxRAMPercentage=80"

Tomcatの最大スレッド数

Spring Bootでビルドしたjarを起動すると組み込みTomcatで動作する。
最大スレッド数はデフォルトで200となっており、それ以上に同時接続が来る場合は待ちになる。
applications.properties に以下のような形で指定する。

server.tomcat.max-threads=1000

DBコネクションプール最大数

DBコネクションプール数が足りなくなるとクエリが待ちになる。
applications.properties に以下のような形で指定する。

spring.datasource.hikari.maximum-pool-size=200