网络分析技能在MySQL调优中的应用

        网络分析工具在系统运维当中常常起到意想不到的作用,因为它能把网络请求数据和回应数据一五一十的客观记录下来,然后通过分析工具仔细分析异常出现的点在哪一侧,哪一点。往往在查找问题的时候可以发挥奇效。那么,这么好的工具在MySQL调优中有没有什么作用呢?答案是:当然有,不但有,还非常好用。

        下面,我就拿几个场景来看看使用网络分析工具能给我带来什么帮助。

压力测试中的作用:

        一个项目上线前,一般都会进行一次压力测试,用来评测系统的业务承载能力基准。虽然只是比较简单的测试,也往往也能发现一些性能问题。一般我们会关注服务器响应时间和并发连接数两个指标,在服务器响应时间可以接受的范围内,看并发连接能达到多大;另外一个就是看应用服务器跑满后,后端数据库是否依然能够稳定运行。这两点都通过了,上线前的压测基本就完成了,是否能够上线,能支撑多大的压力,基本也就心中有数了。

        测试中,一切顺利达到比较理想的数量级,当然是最理想的结果,但我们要解决的就是不理想的问题,一种问题是并发量并没有随着应用服务器的压力上升有明显提高,但服务器响应时间却在不断增加,什么原因呢,如何确定我们的猜测呢,如果在测试中使用了网络分析工具把整个请求和响应的网络请求数据全部抓取下来,就很容易佐证我们的猜想。

        通过分析抓取的全量测试过程网络请求,我们可以非常容易的获取到几个数据,一个就是服务端和客户端的响应时间,另一个就是测试过程中,有多少网络会话和每个会话的持续时间和网络通讯量。我发现测试过程中的会话数量有限,会话中的服务器响应时间波动不大,客户端空闲时间不断增加,基本可以确定并非数据服务器性能不足,而是客户端堆积了大量请求,不能及时和数据服务器进行通讯,原因是客户端开启的会话数量受限,虽然这样的设计有利于控制和后端数据服务器建立的通信连接数,但在业务压力上来后,也会影响请求处理的及时性,请求会被排入队列,得不到及时响应。至此,很好的确定了问题所在,接下来解决问题往往就比较简单了。

业务问题的线上现场保存和问题分析:

        网络分析工具在这个场景下也能发挥不可替代的作用,因为MySQL是不能直观的记录一个客户端网络会话中都提交了哪些请求的,这些请求中包含哪些数据库操作,哪些是查询,哪些是变更,具体的语句是哪些。但网络分析工具可以啊,这些都是网络分析工具的强项。利用网络分析工具可以非常方便、直观的提供这些数据。还可以结合网络分析工具提供的查找功能,极其方便的定位到我们关心的内容,为我们找到问题的来源提供高效、准确的数据支撑。

推荐的网络分析工具:

        科来网络分析工具,tcpdump。

你可能感兴趣的:(玩味数据,tcpdump,网络协议,wireshark,压力测试,linux)