当前位置: 首页>数据库>正文

mysql 能支持十万级QPS吗 mysql能抗住多少qps

上一章简述了 利用 sysbench 进行测压时,数据库能抗下多少 QPS, TPS等数据库服务器的指标。
但是本质上 如果你的机器性能特别好。可能你采用 10个 线程 ,20个线程等,是无法测试出数据库的最高负载能力。

那么,我们可以通过不断增加线程数量,同时观察机器的性能。让数据库去承载更高的QPS

四、关于生产环境下的MySQL(下)(sysbench 压测)

4-1 为什么我们在不停增加线程数的时候,要密切关注机器性能?有什么意义呢?

  • 首先 不断增加线程数,可以测试出数据库能承载更高的QPS。
  • 至于密切关注机器性能。
        首先假设你的数据库当前测试下QPS是1500。此时你的 CPU、内存、IO、网络 负载都处理合理范围内且偏高(硬件还没到极致)
        但是如果你不断增加线程,此时数据库可以抗下QPS 2500 ,但是此时CPU、内存、IO、网络 已经满负载了,此时机器都快挂了。你此时说 机器能抗下QPS 2500是没有实际意义的。(生产环境根本扛不住)。
         所以在测试中,可以不断加线程 提高QPS,同时关注机器指标。当到达一个临界值时,就不能继续增加线程数了。

4-2 如何观察 CPU、内存、磁盘IO、网络负载的情况

  • CPU: 可以利用 top命令进行观察。

    top - 13:04:13 up 2:26, 1 user, load average: 0.33, 0.34, 0.36
  • 13.04.13 是当前时间
  • up 2:25 表示 运行了2.25个小时
  • 1 user 表示 只有一个用户在使用
  • load average 0.32 0.34 0.36 表示 CPU 最近 1 分钟 5分钟 15分钟内的平均负载数值
  • 关于负载数值:负载=1,表示CPU中的一个核心已经跑满了。
  • 内存负载情况 : 同样使用 top命令查看

    KiB Mem : 10060320 total, 6279428 free, 2598168 used, 1182724 buff/cache
  • 总大小为 10060320 KB, 空闲 6279428 KB, 缓冲区: 1182724KB
  • 如果你内存到达 70~80 % 就差不多了
  • 磁盘IO情况: 使用 dstat 命令 (如果没有安装 请自行安装)
  • 磁盘IO吞吐量: 使用 dstat -d
  • mysql 能支持十万级QPS吗 mysql能抗住多少qps,mysql 能支持十万级QPS吗 mysql能抗住多少qps_数据库,第1张

  • 上图表示磁盘每秒 读取数据量 和 写入数据量
  • 磁盘的IOPS: 使用 命令 dstat -r
  • mysql 能支持十万级QPS吗 mysql能抗住多少qps,mysql 能支持十万级QPS吗 mysql能抗住多少qps_mysql_02,第2张

  • 上图表示 随机磁盘读取每秒多少次,随机磁盘写入每秒多少次
  • 候密切观察机器的磁盘IO情况,如果磁盘IO吞吐量已经太高了,都达到极限的每秒上百
    MB了,或者随机磁盘读写每秒都到极限的两三百次了,此时就不要继续增加线程数量了,否则磁盘IO负载就太高了。
  • 网络负载: dstat -n
  • 表示每秒通过网卡发送多少kb,接收了多少kb



https://www.xamrdz.com/database/66g1962830.html

相关文章: