中断stress-ng DCCP压力测试后无法重启,如何解绑端口?
解决stress-ng DCCP端口占用无法重启的问题
问题原因
意外中断后,DCCP连接会进入TIME_WAIT状态,系统会暂时保留该端口一段时间(默认几分钟),而netstat -nutlp仅显示处于LISTEN状态的进程,无法检测到TIME_WAIT状态的端口占用,导致stress-ng无法重新绑定端口。
解决步骤
1. 确认TIME_WAIT状态的DCCP端口
使用ss命令查看所有DCCP相关连接,包括TIME_WAIT状态:
sudo ss -udt state time-wait # 或者查看所有DCCP连接 sudo ss -ua
找到对应被占用的DCCP端口(stress-ng默认使用5001端口)。
2. 临时释放端口(立即生效)
通过调整内核参数,允许重用TIME_WAIT状态的DCCP端口:
sudo sysctl -w net.dccp.tw_reuse=1 sudo sysctl -w net.dccp.tw_recycle=1
执行后重新运行你的stress-ng命令即可。
3. 永久生效内核参数(可选)
如果频繁遇到该问题,编辑/etc/sysctl.conf文件,添加以下内容:
net.dccp.tw_reuse=1 net.dccp.tw_recycle=1
保存后执行以下命令使配置生效:
sudo sysctl -p
4. 临时换端口绕过问题
直接指定stress-ng使用其他DCCP端口运行,比如5002:
sudo stress-ng --dccp 1 --dccp-port 5002 --timeout 60s --metrics-brief
内容的提问来源于stack exchange,提问作者MinionPole
相关产品推荐
相关产品推荐

