generate_percentiles.sh

来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· Shell 代码 · 共 48 行

SH
48
字号
#/bin/sh

. parameters

PERCENTILES="0 .25 .50 .75 .99 .999 .9999 1"

for t in $*; do
  cat /dev/null > ${t}.avg.dat
  for p in $PERCENTILES; do
    cat /dev/null > ${t}$p.percentile.dat
  done

  for c in $NCONSUMERS; do
    echo $t $c
    INPUT=${t}.${c}.16.txt
    awk -v c=$c '/^HISTO/ {
                   n++;
                   s += $3
                 }
                 END {
                   printf("%d %f\n", c, s/n);
                 }' $INPUT >> ${t}.avg.dat

    TFILE=/tmp/${t}.$$
    awk '/^HISTO/ {print $3}' $INPUT | sort -n | uniq -c > $TFILE
    for p in $PERCENTILES; do
        awk -v N=$ITERATIONS '{print $2, $1 / N}' $TFILE |
        awk -v c=$c -v p=${p} '\
BEGIN { x = 0; l = 0; }
{ s += $2;
  l = $1;
  if (x == 0 && s >= p) {
      x = $1;
  }
}
END {
  if (s < p) {
    x = l;
  }
  printf("%d %f\n", c, x);
}' >> ${t}${p}.percentile.dat
    done
    /bin/rm -f $TFILE

  done

done

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?