新闻资讯
领先云端方案商,专注云桌面、云手机研发,凭核心虚拟化技术与云端算力,
打造安全高效数字化平台,提供全周期支持。
分类
相关文章
热门标签

运维工程师教你怎么压测跳板机好坏的 包含脚本示例与结果分析方法

2026年5月6日

跳板机压测实战 — 运维工程师视角

1. 精华:压测前先做权限与范围审批,避免影响生产。

2. 精华:用可控并发、指标驱动(连接成功率/延迟/资源占用)来判定跳板机承载能力。

3. 精华:关注sshdMaxStartups)与系统资源(如文件描述符、TCP端口耗尽),这些往往决定压测结果好坏。

作为一名资深运维工程师,我强调操作前审批与快照。对跳板机压测必须在非高峰窗口、使用测试账号,并确保有回滚与速停开关(如iptables限流)。本篇将给出安全且实用的脚本示例与结果分析方法,帮助你判断跳板机是否能承受并发接入压力。

压测目标与指标:主要关注并发延迟)、连接成功率、以及CPU内存使用率、系统负载。配合监控

前提检查:确认sshdMaxStartups即文件描述符上限;查看conntrack表和TCP端口可用范围。

脚本A:使用并行ssh创建短连接(需要安装 sshGNU parallel 或 xargs)。此脚本以密钥认证模拟并发登录并执行简单命令,适合验证sshd

#!/bin/bash
TARGET=bastion.example.com
KEY=~/.ssh/id_rsa_test
CONCURRENCY=100
TOTAL=1000

seq 1 ${TOTAL} | xargs -I{} -P ${CONCURRENCY} bash -c '
  start=$(date +%s%N)
  ssh -i '"${KEY}"' -o StrictHostKeyChecking=no -o BatchMode=yes -o ConnectTimeout=5 testuser@'"${TARGET}"' "echo ok" >/dev/null 2>&1
  rc=$?
  end=$(date +%s%N)
  printf "%s,%s,%d\n" "$(date +%s)" "$rc" $(( (end-start)/1000000 ))
'
  

脚本B:用netcat(nc)或socat仅建立TCP三次握手并保持连接一段时间,适用于测试TCP资源(如TIME_WAIT、连接跟踪)。

#!/bin/bash
TARGET=bastion.example.com
PORT=22
CONC=200
for i in $(seq 1 ${CONC}); do
  nc -vz ${TARGET} ${PORT} >/dev/null 2>&1 & 
done
wait
echo "done"
  

压力执行时同时采集系统级指标:用 topvmstatiostatssnetstatdstat 或 Prometheus exporter。示例命令:ss -s、ss -tnp | grep sshd、cat /proc/net/sockstat、lsof -p $(pidof sshd)。

结果分析方法(可量化):

1) 成功率 = 成功连接数 / 总尝试数。若成功率低于95%,说明并发能力不足或配置限制。

2) 延迟分布:统计连接建立耗时的P50/P90/P99(脚本A输出的ms值),高P99值说明偶发阻塞或排队。

3) 资源占用:观察压测期间CPU内存、IO和网络带宽,若CPU接近饱和或上下文切换异常,说明需要扩容CPU或优化sshd配置。

4) 文件描述符与socket:如果出现 "too many open files" 或 ss 显示大量 TIME_WAIT/ESTABLISHED,需提高ulimit -n,调整tcp_tw_reuse或优化连接重用。

常见瓶颈与优化建议:

- sshdMaxStartups

- 系统资源:提升文件描述符

- 网络与防护:对外使用负载均衡或多个跳板机集群,并在防火墙上做源IP限流与白名单,防止意外拥塞。

结论:通过以上可控的脚本与指标采集,你作为运维工程师能快速判断跳板机

如果你需要,我可以根据你的环境(CPU、内存、sshd配置与并发目标)生成一套定制化的压测计划和可视化分析模板,直接发来配置我来帮你算出合理的并发阈值。


来源:运维工程师教你怎么压测跳板机好坏的 包含脚本示例与结果分析方法