总结自己的系统性能瓶颈定位和性能调优方法,建立一个粗略的分析模型。
在进行分析时,对于产生的问题,可以从3方面入手分析:
1 测试端问题:
包括测试工具本身固有的缺陷和测试机器资源问题,在测试中都有可能导致用例失败情况。所以,好的测试人员,需要对使用的工具很熟悉,了解该工具的优点和缺陷,扬长避短。反之,如果不熟悉工具的缺陷,将会对问题的真正来源产生错误判断。
比如JMeter等性能测试工具,每一个agent都存在一个可支持的最大线程数,一旦使用远大于该数目的线程,可能会大量产生socket错误。那么,对于不了解这种情况的测试人员,就可能认为是服务端产生了问题。我们应该避免这种情况。
同时,需要了解测试机器本身资源对测试工具的支持情况,包括CPU和内存,甚至socket资源等。可以预先计算或试验出测试机器所能支持的最大socket线程数,在测试执行时,分配小于该数目的线程数,以避免因测试机器资源紧张产生用例失败。
2 网络问题
分析测试端、服务端之间网络连接是否存在带宽不足、有时延等通信问题。
.
3 服务端问题:
下面对于网络错误可能的原因进行分析,并给出配置方法,通过该方法,进行配置调优,并进行重复测试,确认性能有提升:
1)、由于socket的listen队列太小,而导致socket连接产生大量超时错误、重连接错误
在Linux下,修改AF_INET类型socket的listen队列长度SOMAXCONN:
方法: