About Gatling single machine performance

I have one CentOS physical machine(CPU: 56, MEM: 512G) and JVM(-Xmx=4g, -Xms=4g, -Xss=256M)

I use constantUsersPerSec method

param set 15000, report is: pic1

param set 20000, report is: pic2

param set 25000, report is: pic3

First, the tested backend service have no performance, because I have three CentOS (every machine param set 10000 == total 30000) to load it, it’s OK.

pic3 why?

the single gatling only can request 20000 constantUsersPerSec?