06 生产经验:互联网公司的生产环境数据库是如何进行性能测试的?
1.机器申请下来后要对数据库进行压测,这时你心里应该清楚,如果你申请的是8核16G的机器,就大概知道这个数据库每秒可以抗一两千请求,你申请16核32G的机器部署mysql就知道大概可以每秒抗两三千或者三四千的并发请求
2.把机器交给DBA,让他部署Mysql,接着DBA搞定这台机器上的数据库后把用户名密码给你你就可以用了,连接java应用系统,执行各种各样的sql去实现业务逻辑了
3.有数据库就可以基于他开发系统了吗?并不是,需要用工具对数据库进行压测,观察它的cpu负载,磁盘IO负载,网络IO负载,内存复杂,看数据库每秒能处理这1000条,还是只能处理500条,这就是压测。系统的压测是数据库压测是两回事,可能数据库能抗2000并发,系统应用只能抗500也是有可能的
4.QPS和TPS是什么?
QPS是数据库每秒可以抗的最大的请求,也就是每秒可以处理多少条sql。TPS是数据库每秒可以处理的事务数量,包括提交事务,回滚事务
5.IO相关的压测性能指标
(1)IOPS: 机器的随机IO并发处理能力,比如机器可以达到200个IOPS,意思是每秒可以执行200个随机IO读写。这个指标很关键,你在内存的脏数据,最后都会由IO随机线程在不确定的时间,刷回到磁盘里去,这就是随机IO的过程,指标低的话效率就不高
(2)吞吐量 :这个指标是机器的磁盘存储每秒可以读写多少字节的数据量
执行sql的时候回记录redo log日志,然后这些日志文件会直接写入磁盘,所以一台机器他的存储每秒可以读写多少字节的数据量,就决定他每秒可以处理多少redo log日志写入磁盘的数量
(3)latency : 这个指标是往磁盘写入一条数据的延迟,指标越低越好
6.压测的时候还需要关注的其他指标
(1)CPU负载:比如现在每秒可以抗3000请求,但是cpu的负载特别高,那也已经到极限了
(2)网络负载:比如你的网络宽带是每秒可以传输100M,现在1000个请求,这时候宽带都占用拉满了,这时候也不能继续压测了
(3)内存负载:就是压测到一定的时候看看内存占用多少,如果内存占满,那么也不能继续压测下去了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)