一台数据库服务器能够承受多大的并发量受内外两方面因素影响。
内在因素
搞清楚需要估算的数据库服务器是什么配置:
1. 确定数据库是MySQL还是Oracle亦或是DB2、PostgreSQL等;
2. CPU是几核?现代数据库应用都充分的运用了多核CPU的并行处理能力;
3. 内存多大?数据库的索引数据、缓存数据都会进入内存中;
4. 磁盘IO能力:数据库文件都存储在磁盘中,所以磁盘的IO能力将是影响数据库性能的最直接因素;
5. 网络带宽:网络的上行和下行带宽,数据库服务器可支持的最大连接数是多少。
外在因素
无论是应用程序开发还是SQL查询、操作都遵循“天下武功,唯快不破”的道理。更快意味着服务器资源的快速释放,以便CPU能继续处理其他的任务请求。
做评估数据库的并发量的时候,需要结合使用数据库的程序,否则数据库服务器性能再好,也是属于纸上谈兵。
做数据库并发量评估最好的办法是做数据库压力测试,压力测试的时候,我们可以一点一点的加压力,逐步的得出数据库的:
• QPS:Queries Per Second 每秒处理的查询数(如果是数据库,就相当于读取)
• TPS:Transactions Per Second 每秒处理的事务数(如果是数据库,就相当于写入、修改)
• IOPS:每秒磁盘进行的I/O操作次数
得出这些数据,便能做到心中有数,也能准确的判断出能否支撑住接入的程序和业务。
常用的压测工具:
• sysbench
• Tpcc-mysql
• mysqlslap
如何使用的问题大家可以自行搜索一下,也可以使用这些工具实验一下。
没有固定的公式去计算服务器的并发量,即使相同配置下的不同服务器,也无法做到相同水平的处理能力,必须结合服务器自身的情况和业务的具体情况做大致的预估,并最终进行全场景业务压力测试来确定具体并发数值。