iostat -x
실제 값이 표시되지 않습니다. iostat -x 1
을 실행하고 초당 값을 보면 분명합니다. iostat -x 1 2
을 실행하면 정확한 선과 그 다음 값을 가져 와서 원하는 값을 얻을 수 있다고 생각했습니다. 라인 (15)으로부터iostat 두 번째 샘플을 얻는 방법
iostat -x 1 2 | awk '{gsub(/,/,"."); if (NR==15) printf ("%s,%s,%s,", $1, $3 ,$4); else if (NR == 18) printf ("%s,", $14);}'
라인 18 %의 SDA로부터 내게 % 사용자 % 시스템 %의 iowait가 제공.
여러 디스크가있는 컴퓨터가 여러 개 있기 때문에 불행히도이 작업을 수행 할 수 없습니다. iostat -x
을 실행하면 sda가 21 행 또는 다른 행의 18 행에있을 수 있습니다.
iostat -x
을 실행하고 두 번째 샘플 만 얻으려면 어떻게해야합니까? 또는 선에 대해 원하는 값을 얻으려면 어떻게해야합니까?
저는 iostat -x 1 2 | awk '/^sda/ {print $14}'
을 생각한 다음 두 번째 값만 얻었습니다. 그러나이 방법을 따르면 나는 원하는 모든 값을 얻는데 8 초가 필요합니다.
iostat -x 1 2
Linux 3.10.0-327.28.3.el7.x86_64 (sth) 13/12/2016 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0,70 0,00 0,23 0,09 0,00 98,98
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme0n1 0,00 0,00 0,00 0,00 0,03 0,00 38,29 0,00 0,13 0,13 0,00 0,02 0,00
sda 0,01 0,18 0,23 7,52 38,37 3132,67 819,15 1,26 162,49 219,88 160,76 3,74 2,89
sdb 0,00 0,00 0,62 0,00 78,93 0,00 255,56 0,00 0,40 0,40 0,00 0,24 0,01
dm-0 0,00 0,00 1,02 2,10 21,16 156,62 113,89 0,11 34,80 4,22 49,58 2,13 0,66
dm-1 0,00 0,00 0,00 0,00 0,01 0,00 59,16 0,00 0,54 0,36 3,15 0,42 0,00
dm-2 0,00 0,00 0,01 0,01 0,13 0,76 84,61 0,00 177,30 0,58 287,55 28,81 0,06
avg-cpu: %user %nice %system %iowait %steal %idle
0,03 0,00 0,03 0,00 0,00 99,94
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme0n1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
sda 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
sdb 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00