This commit is contained in:
Alex Yang
2026-01-16 11:09:11 +08:00
parent 8159577be0
commit cdac4fcf43
284 changed files with 2813570 additions and 14 deletions

55
test_dns_perf_stress.sh Executable file
View File

@@ -0,0 +1,55 @@
#!/bin/bash
# DNS压力测试脚本
SERVER="127.0.0.1"
DOMAIN="example.com"
THREADS=20
QUERIES=1000
# 创建临时文件存储进程ID
pids=()
echo "开始DNS压力测试..."
echo "服务器: $SERVER"
echo "域名: $DOMAIN"
echo "线程数: $THREADS"
echo "总查询数: $QUERIES"
echo "--------------------------------------"
# 记录开始时间(秒)
start_time=$SECONDS
# 运行并发查询
for ((i=1; i<=THREADS; i++)); do
for ((j=1; j<=$((QUERIES/THREADS)); j++)); do
dig @$SERVER $DOMAIN A +short > /dev/null &
pids+=($!)
done
# 每启动5个线程暂停一下避免系统资源瞬间耗尽
if (( $i % 5 == 0 )); then
echo "线程 $i 已启动,已完成 $i/$THREADS 个线程..."
sleep 0.5
fi
done
echo "所有 $THREADS 个线程已启动,共执行 $QUERIES 个查询,等待完成..."
# 等待所有查询完成
for pid in "${pids[@]}"; do
wait $pid
done
# 计算执行时间
elapsed=$((SECONDS - start_time))
# 计算QPS每秒查询数
if [ $elapsed -eq 0 ]; then
elapsed=1 # 避免除以零
fi
qps=$((QUERIES / elapsed))
echo "--------------------------------------"
echo "所有查询已完成!"
echo "执行时间: $elapsed"
echo "QPS: $qps 次/秒"
echo "--------------------------------------"