主要涉及数据库、应用服务器的性能分析
一、 测试数据
1、并发请求50个,两个Url,相当100并发数
应用服务器一直保持CPU占用率为20%-40%
数据库进程连接数提升20个,增加20左右会话数
2、并发请求10个,两个Url,相当200并发数
二、 性能理解
1、 内存数提升,访问Url时,需要请求数据库操作,虽然操作完成关闭连接,但因一直并发请求时,关闭连接马上又请求数据库操作,使数据库进程连接数一直保持在一定数量。
三、 总结
1、 对于数据库的压力测试:可根据数据库连接数/主要接口并发请求时占用的连接数,比如:进程连接数1000,并发100用户,会占用40连接数,那理论上数据库可承受5000并发数据库请求
当然,实际项目中并不只有主要接口,20/80原则中的其他数据库操作时,也会占用数据库连接数,具体也根据不同应用,业务来进行压力测试和调整。
解决方式:对于数据库本身来说,除了基本数据库操作,对于索引优化、读写分离、垂直分库、水平拆分、数据库拆分等优化操作,也需要考虑和设计
2、 应用服务器压力:主要有cpu、内存
接口请求时,处理业务逻辑时,会增加CPU的运算能力和内存的存储占用,当核心逻辑复杂时,会占用CUP的处理能力,单服务器的并发数测试,取决于CPU占用数,比如:并发50个用户,CPU占用率20%,理论上最终可同时支持250个并发。
解决方式:优化业务代码,从业务、数据结构、算法等方面提升处理能力;应用服务器集群;增加应用缓存;消息服务