一次 Sysbench opening tables 卡慢的分析过程

一次 Sysbench opening tables 卡慢的分析过程

💡 原文中文,约4500字,阅读约需11分钟。
📝

内容提要

使用Sysbench进行压力测试时,性能仅为预期的10%。分析发现是由于表数量配置错误,导致部分表不存在。调整参数后,性能恢复正常。总结时强调抓包和分析的重要性,以识别潜在问题。

🎯

关键要点

  • 使用Sysbench进行压力测试时,性能仅为预期的10%。
  • 分析发现是由于表数量配置错误,导致部分表不存在。
  • 调整参数后,性能恢复正常。
  • 强调抓包和分析的重要性,以识别潜在问题。
  • 使用的Sysbench配置错误,将–tables=32设置成了–tables=64。
  • 别人的Sysbench默认添加了–mysql-ignore-errors=all,导致控制台看不到异常信息。
  • 抓包可以帮助识别错误,特别是表不存在的错误。
  • 开发中常见的问题是业务异常堆栈被吃掉,导致难以分析问题。
  • 建议使用perf/jstack等工具查看堆栈,抓取热点。
  • 分享个人的学习方法和经验,帮助他人成为合格的程序员。

延伸问答

Sysbench压力测试性能低的原因是什么?

性能低是由于表数量配置错误,导致部分表不存在。

如何解决Sysbench测试中的表不存在问题?

调整参数,将–tables设置为实际存在的表数量,确保配置正确。

在使用Sysbench时,如何识别潜在的错误?

可以通过抓包分析,查看是否有表不存在的错误信息。

Sysbench的默认配置有什么需要注意的?

默认添加了–mysql-ignore-errors=all,可能导致控制台看不到异常信息。

如何提高Sysbench的性能?

可以通过增加table_open_cache的大小和确保表配置正确来提高性能。

在压力测试中,如何分析MySQL的进程状态?

可以查看processlist和状态变量,分析CPU消耗和打开表的情况。

➡️

继续阅读