pgbench を使用して一連のテストを実行し、結果をログに記録しました。
run-params: 1 1 1
transaction type: SELECT only
scaling factor: 1
query mode: simple
number of clients: 1
number of threads: 1
duration: 90 s
number of transactions actually processed: 280465
tps = 3116.254233 (including connections establishing)
tps = 3116.936248 (excluding connections establishing)
run-params: 1 1 2
transaction type: SELECT only
scaling factor: 1
query mode: simple
number of clients: 1
number of threads: 1
duration: 90 s
number of transactions actually processed: 505943
tps = 5621.570463 (including connections establishing)
tps = 5622.811538 (excluding connections establishing)
run-params: 10000 10 3
transaction type: SELECT only
scaling factor: 10000
query mode: simple
number of clients: 10
number of threads: 1
duration: 90 s
number of transactions actually processed: 10
tps = 0.012268 (including connections establishing)
tps = 0.012270 (excluding connections establishing)
グラフ化するための値を抽出したい。同時にAWKを習得しようとしています。これが私のAWKプログラムです:
/run-params/ { scaling = $2 ; clients = $3 ; attempt = $4 }
/^tps.*excluding/ { print $scaling "," $clients "," $attempt "," $3 }
それを実行すると、次の出力が得られます。
$ awk -f b.awk -- b.log
tps,tps,tps,3116.936248
tps,tps,=,5622.811538
,,0.012270,0.012270
これは私が望むものではありません。
scaling = 1
1 がフィールド 1 を参照するタイミングを理解しています。この場合はたまたま tps です。スケーリング = 10000 の場合、行に 10000 フィールドがないため、null が返されます。を使用してスケーリングと友達を割り当てようとし"" $2
ましたが、役に立ちませんでした。
後続のアクションブロックで数値をどのように使用/報告しますか?