My goal:

make sure when using kamailio as engine I can achieve:

Test bed:
CPU: 4 cores , 4G RAM

Kamailio 5 with Mysql. 

Test sourceļ¼šanother server running SIPp

10k subscriber in Mysql .  6000 Register Per Second ,  reuse 10k user to register , it works fine.  If register 50 every second for per user it seem 300 k subscribers should work. 
(about 300% cpu used of totally 400% cpu. All requests finished without retransmit and fail. )

add 90k subscriber into Mysql .
100k subscirbers in Mysql . 1000 Register Per Second , a lot of failure and can not work . 

(cpu are not used much at that time. IO is not high.)

My question : 
What is the root cause of bad performance when there is 100k subscribers' data in the Mysql database. 

How can I deploy a kamailio with 300k  subscriber in database, and support 6000 register per second at the same time ?
Maybe use ram database instead of Mysql?   

Thanks with regards,
David