目前是16核64GB内存服务器
后端是springboot写的,并发访问过大之后还是会出现访问超时错误,调整配置
之后有所改善,但还是在几个并发量比较大的节点会出现超时错误,业务性质比较复杂所以负载均衡分布式这种解决方案比较麻烦,所以想请教一下如下图的配置来说
还有没有提升的可能,或者有哪些更好的配置方案,希望能够有前辈帮我解惑,如果说
是服务器配置问题,升级到24核128G内存,能否解决,并且如果升级配置的话能否贴出比较好的配置方案,感激不尽!
还有声明一下要解决的问题是MYSQL的配置是否正确 而不是CPU核心架构等等这种探讨
springboot的配置yml文件
MySQL的配置文件
核心多没有什么意义,要cpu主频高,硬盘采用高速的ssd
另外就是多用冗余存储,比如分库、临时表、索引来优化
单服务、单库仅通过优化DB配置解决高并发问题很难做到
你的问题还是需要先观察日志,定位问题。建议阈值设为1s
排查处理时间慢于阈值的代码;如果日志不全,通过AOP补齐请求日志、SQL执行日志,定位处理时间大于阈值的代码块
解决方式:
1、补齐表字段索引
2、限制翻页页码
3、将常用表冗余数据备份出去,表中数据量尽量别超过100w;如无法控制数据量,建表时设置表分区
4、不要用like,需要全文检索考虑用solr
5、避免大量查询blob字段
6、尽量利用缓存来缓解DB压力
7、优化执行速度慢的SQL,无法优化的SQL考虑能否从redis读取数据/能否改为非实时查询/能否对相关代码块加锁,这些都要结合你的业务具体分析。关系型数据库终极方案还是读写分离、分库分表
8、非即时请求采用消息队列单独启动线程处理
9、非实时展示数据,设置定时器,定时将数据发布为静态页面展示给客户
如果是程序业务复杂,计算多,升级CPU, 多线程处理,会好一点,如果是读取数据复杂,就升级内存。具体可以做个压力测试,大概判断需要升级多少。