I am load testing a Grails 4.0.10 app using JMeter. The app is connected to a MySQL 8 database. The JDK I am using is JDK 8.
I am testing registration feature simulating 2000 users trying to register at once.
Registration process consist of these steps:
I am first testing with this database and pool size configuration:
production:
dataSource:
# dialect: org.hibernate.dialect.MySQL5InnoDBDialect
dbCreate: none
url: jdbc:mysql://localhost:3306/dev2?useUnicode=yes&characterEncoding=UTF-8
username: root
password: password
properties:
minimumIdle: 5
maximumPoolSize: 10
poolName: main-db
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
Using this db configuration the number of successful registrations I am getting is 1167.
After that I change the pool size to 10 times:
production:
dataSource:
# dialect: org.hibernate.dialect.MySQL5InnoDBDialect
dbCreate: none
url: jdbc:mysql://localhost:3306/dev2?useUnicode=yes&characterEncoding=UTF-8
username: root
password: password
properties:
minimumIdle: 50
maximumPoolSize: 100
poolName: main-db
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
With this configuration, the total successful registration I am getting is 1169.
The error shown for the missing registration is this:
Why is the db configuration change not taking effect? Am I doing something wrong?
Update
I am running the Grails app as standalone. I am using the following command on my server:
nohup java -Dgrails.env=prod -Duser.timezone=US/Mountain -jar RoadRace4-0.1.jar &