更新web
This commit is contained in:
55
test/test_dns_perf_stress.sh
Executable file
55
test/test_dns_perf_stress.sh
Executable 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 "--------------------------------------"
|
||||
Reference in New Issue
Block a user