Selaa lähdekoodia

fix(tool-moyu): 随机延时/数值改传 bash $RANDOM 种子, 消除同秒阶梯节奏

- 根因: mawk 每次新进程 srand() 以秒级时间自播种, 同秒多次调用同种子 → 延时/内容数值同值连用(阶梯式, 且内容相关性高)
- 修复: 所有 awk 'BEGIN{srand()...}' 改传 -v seed=$RANDOM(每次展开自推进、秒无关), 覆盖 rand_delay 时序与 gen_rand_lines 数值
- 实测: 12 次延时 215/398/299/131/... 真随机; 内容数值不再同秒聚集
b 1 kuukausi sitten
vanhempi
sitoutus
e6cdbf469a
1 muutettua tiedostoa jossa 6 lisäystä ja 6 poistoa
  1. 6 6
      tool-moyu.sh

+ 6 - 6
tool-moyu.sh

@@ -236,13 +236,13 @@ gen_rand_lines() {
 	for ((i = 0; i < n; i++)); do
 		r=$((RANDOM % 7))
 		case $r in
-		0) echo "ok  $(awk 'BEGIN{srand(); printf "%.3f", 0.05+rand()*1.5}')s" ;;
-		1) echo "dist/assets/index-*.js  $(awk 'BEGIN{srand(); printf "%.2f", 8+rand()*300}') kB │ gzip: $(awk 'BEGIN{srand(); printf "%.2f", 3+rand()*80}') kB" ;;
+		0) echo "ok  $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%.3f", 0.05+rand()*1.5}')s" ;;
+		1) echo "dist/assets/index-*.js  $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%.2f", 8+rand()*300}') kB │ gzip: $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%.2f", 3+rand()*80}') kB" ;;
 		2) echo "Progress: $((5 + RANDOM % 95))%..." ;;
 		3) echo "$((1 + RANDOM % 40)) test(s), $((RANDOM % 4)) failed" ;;
-		4) echo "deploy $(awk 'BEGIN{srand(); for(i=0;i<6;i++) printf "%c", 97+int(rand()*26)}')  · $(awk 'BEGIN{srand(); printf "%.1f", 0.1+rand()*3}')s · service healthy" ;;
-		5) echo "p99 latency: $(awk 'BEGIN{srand(); printf "%.1f", 5+rand()*180}') ms · $(awk 'BEGIN{srand(); printf "%.1f", 1+rand()*9}')k req/min" ;;
-		6) echo "mem: $(awk 'BEGIN{srand(); printf "%d", 120+rand()*400}') MB RSS · $(awk 'BEGIN{srand(); printf "%d", 3+rand()*12}')% over baseline" ;;
+		4) echo "deploy $(awk -v seed=$RANDOM 'BEGIN{srand(seed); for(i=0;i<6;i++) printf "%c", 97+int(rand()*26)}')  · $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%.1f", 0.1+rand()*3}')s · service healthy" ;;
+		5) echo "p99 latency: $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%.1f", 5+rand()*180}') ms · $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%.1f", 1+rand()*9}')k req/min" ;;
+		6) echo "mem: $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%d", 120+rand()*400}') MB RSS · $(awk -v seed=$RANDOM 'BEGIN{srand(seed); printf "%d", 3+rand()*12}')% over baseline" ;;
 		esac
 	done
 }
@@ -306,7 +306,7 @@ fi
 rand_delay() {
 	if [ "$DELAY_MS" -gt 0 ]; then
 		sleep "$(awk -v d="$DELAY_MS" 'BEGIN{printf "%.3f", d/1000}')"
-	else sleep "$(awk -v lo=80 -v hi=400 'BEGIN{srand(); printf "%.3f", (lo+int(rand()*(hi-lo+1)))/1000}')"; fi
+	else sleep "$(awk -v lo=80 -v hi=400 -v seed=$RANDOM 'BEGIN{srand(seed); printf "%.3f", (lo+int(rand()*(hi-lo+1)))/1000}')"; fi
 }
 
 # 按内容语义配色(优先级:命令 > 致命 > 错误 > 警告 > 成功 > 默认)