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

本文总结了Linux系统性能测试中的瓶颈定位和调优方法,包括测试端问题、网络问题和服务端问题的分析。针对服务端问题,提到了调整socket的listen队列长度、增加最大打开文件数限制、处理CLOSE_WAIT和TIME_WAIT状态的TCP连接等问题,通过配置优化提升系统性能。
最低0.47元/天 解锁文章
1176

被折叠的 条评论
为什么被折叠?



