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