在线tcping能测端口并发上限吗?
不能。
原因很简单。tcping 只做一件事。发一个 SYN。看对面回不回。回得多快。
一个连接。就一个。
那么它回答的是端口开没开。不是能扛多少连接。
有人看到十几个节点全绿,就以为这服务扛得住一波流量。这是两件事。
tcping 能测出什么
端口通不通。握手多久。不同地区差多少,香港 20 毫秒,广州 2 秒。连着测会不会偶发失败。
这一条有点用。连着测出现零星超时,说明服务端开始顶了。但这不是上限,只是接近了。
| 能测 | 测不了 |
|---|---|
| 端口是否开放 | 并发上限是多少 |
| 单次握手耗时 | 吞吐量 QPS |
| 多地区差异 | 连接池耗尽点 |
| 偶发失败率 | 长连接能稳住多久 |
上限是一串参数
服务端这边:somaxconn、worker 数、连接池、fd 上限。
中间还有:防火墙连接表、NAT 端口、云厂商清洗阈值。
客户端这边:你的出口带宽、能用多少源端口。
tcping 一个都不碰。它只测第一跳。
真要测并发用什么
wrk、ab、vegeta 都行。思路一样。外部机器打,逐步加并发,看哪一档开始拐弯。
wrk -t4 -c200 -d30s https://你的域名/
c 从 50 加到 200,再到 500。每档看三个数。错误率、P99、服务端 CPU。
错误率开始涨的那档,就是拐点附近。
测之前先改两个参数。不然测的是内核,不是服务。
sysctl -w net.core.somaxconn=65535
ulimit -n 65535
nginx 还有 worker_connections。默认 512。这个不调,几十个并发就到顶。压出来全是 502。
坑说两个。
别直接压生产。我图省事在生产上跑过。跑到一半监控告警,差点把服务打挂。
别在办公网测。出口带宽和 NAT 端口先到顶。你测出来的是自己路由器。
拨测在这件事上还有用吗
有。两个用。
压测前后各跑一次,当基线。同一批节点,握手耗时涨了多少,比绝对值有用。
然后看分组。只有某个运营商慢,多半是链路。全都慢,才是服务端。
三个常见的搞混。
端口开着,不代表服务正常。进程可能已经卡死,只留了个 listen。
握手快,不代表处理快。先连上再慢慢回,用户还是转圈。
单节点慢,不代表服务端有问题。先拿拨测看是不是只有那一片。
在线 tcping 入口:https://t.bt.cn/http/
想测通不通,tcping 够。想测扛不扛,它不够。