mysqlslap压力测试时出现"Can't connect to MySQL server"
mysqlslap -utest -h 192.168.1.12 -p'test' --concurrency=100 --iterations=500 --create-schema='my_db'
结果压了10来秒,就频繁报告
mysqlslap: Error when connecting to server: 2003 Can't connect to MySQL server
这时用netstat -tnp查看tcp连接,发现有2万多的tcp连接,全部停留在time_wait状态。怀疑是端口用尽了。网上查了一下资料,发现一篇文章提供的信息很有用
http://blog.csdn.net/fanyun7654/article/details/20725783
程序可用的端口范围,是一个内核参数
shell> sysctl -a | grep port
net.ipv4.ip_local_port_range = 32768 61000
解决的办法
一、加大端口范围,不过作用有限
shell> echo "net.ipv4.ip_local_port_range = 10240 61000" >> /etc/sysctl.conf
shell> sysctl -p
二、允许端口重用
sysctl net.ipv4.tcp_tw_reuse=1
或者
net.ipv4.tcp_tw_reuse=1 写入 /etc/sysctl.conf
转:http://yeyingxian.lofter.com/post/1cc6ccfe_65f74af