команда iostat

Thank you for reading this post, don't forget to subscribe!

IOSTAT, лег­кая ста­ти­сти­ка ввода/вывода, явля­ет­ся попу­ляр­ным инстру­мен­том мони­то­рин­га систе­мы в Linux, кото­рая поз­во­ля­ет поль­зо­ва­те­лям иден­ти­фи­ци­ро­вать раз­лич­ные про­бле­мы с про­из­во­ди­тель­но­стью, а так­же полу­чить CPU и систем­ную инфор­ма­цию из систе­мы сбо­ра ста­ти­сти­че­ских дан­ных, кото­рые она соби­ра­ет. Эти ста­ти­сти­че­ские дан­ные, как и пред­по­ла­га­ет назва­ние IOSTAT, вклю­ча­ют опе­ра­ци­он­ную систе­му хра­не­ния дан­ных вво­да и выво­да. Как инстру­мент сбо­ра ста­ти­сти­ки, iostat явля­ет­ся цен­ным для любо­го систем­но­го администратора.

Эта ста­тья охва­тит уста­нов­ку и исполь­зо­ва­ние iostat на сер­ве­ре с опе­ра­ци­он­ной систе­мой Linux.

 

Начало

Для завер­ше­ния этой ста­тьи необ­хо­ди­мо следующее:

  • выде­лен­ный сер­вер на базе Linux

Руководство

Про­цесс уста­нов­ки iostat очень прост. iostat явля­ет­ся частью паке­та sysstat, кото­рый мож­но уста­но­вить на вашей соот­вет­ству­ю­щей систе­ме одной из команд ниже:

CentOS

Ubuntu / Debian

Запуск IOSTAT

IOSTAT инстру­мент, кото­рый досту­пен через коман­ду iostat. Вве­ди­те эту коман­ду, что­бы уви­деть, как она работает:

Вот при­мер выво­да при вызо­ве коман­ду iostat:

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 210.53 1022.33 1394.72 2214048305 3845623328
sda1 160.20 473.24 1422.29 1844686896 3295752889
sda2 21.00 320.12 145.21 1000012186 1668872653

 

Хотя этот отчет может, на пер­вый взгляд, пока­зать­ся очень слож­ным, на самом деле доволь­но прост. Мы объ­яс­ним, по раз­де­лам, каж­дый аспект IOSTAT отче­та, так что вы може­те лег­ко исполь­зо­вать отче­ты для себя:

 

Раз­дел 1: Отчет CPU

В пер­вой части отче­та (пло­щадь с про­цент­ны­ми зна­че­ни­я­ми), вы най­де­те ста­ти­сти­ку CPU. Здесь мы раз­би­ва­ем для вас ста­ти­сти­ку, кото­рую вы най­де­те. Для полу­че­ния соот­вет­ству­ю­щей ста­ти­сти­ки, мы доба­ви­ли полез­ные дан­ные жир­ным шриф­том, так что вы може­те уви­деть, что вклю­ча­ет в обзор:

Что каса­ет­ся исполь­зо­ва­ния ЦП на уровне пользователя/приложения с и без при­о­ри­те­та, так и на уровне системы/ядра:

  • %user: В этом столб­це отоб­ра­жа­ет­ся про­цент загруз­ки цен­траль­но­го про­цес­со­ра, что про­изо­шло во вре­мя выпол­не­ния на уровне поль­зо­ва­те­ля / приложения.
  • %nice: В этом столб­це так­же отоб­ра­жа­ет­ся про­цент загруз­ки цен­траль­но­го про­цес­со­ра, кото­рая про­ис­хо­дит во вре­мя выпол­не­ния на поль­зо­ва­тель­ском уровне, одна­ко на этот раз с хоро­шим при­о­ри­те­том. Это озна­ча­ет, что толь­ко коман­ды вызы­ва­ет­ся с Linux коман­дой, что сни­жа­ет при­о­ри­тет ниже стан­дарт­но­го уров­ня, при­ве­де­ны в этой статистике.
  • %system: В этой колон­ке вы може­те уви­деть про­цент загруз­ки цен­траль­но­го про­цес­со­ра, про­ис­хо­дя­ще­го во вре­мя выпол­не­ния в систе­ме (так­же извест­ный как ядро) уровне, в отли­чие от при­ве­ден­ных выше ста­ти­сти­че­ских данных.

Что каса­ет­ся про­стоя про­цес­со­ра и вре­мя ожидания:

  • %iowait: Эта ста­ти­сти­ка явля­ет­ся про­цент вре­ме­ни, когда про­цес­сор или про­цес­со­ры про­ста­и­ва­ли, в тече­ние кото­ро­го систе­ма име­ла выда­ю­щий­ся диск запро­са вво­да / вывода.
  • %steal: Вто­рой в послед­ней колон­ке про­дол­жа­ет пока­зы­вать про­цент вре­ме­ни, про­ве­ден­но­го в непро­из­воль­ном ожи­да­нии вир­ту­аль­ным про­цес­со­ром или про­цес­со­ра­ми в то вре­мя как гипер­ви­зор обслу­жи­вал дру­гой вир­ту­аль­ный процессор.
  • %idle: Послед­няя колон­ка в этом раз­де­ле пока­зы­ва­ет про­цент вре­ме­ни, когда про­цес­сор или про­цес­со­ры про­ста­и­ва­ли, и систе­ма не име­ла запрос к дис­ку I/O (вход/выход).

 

Раз­дел 2: Отчет исполь­зо­ва­ние устройства

Вто­рая часть отче­та IOSTAT, кото­рый мно­го раз боль­ше, чем в пер­вой сек­ции, пере­чис­ле­ны все устрой­ства и отоб­ра­жа­ет ста­ти­сти­ку, кото­рая каса­ют­ся их исполь­зо­ва­ния. Этот раз­дел чита­ет­ся по гори­зон­та­ли, с каж­дой стро­ки, где отоб­ра­жа­ют­ся ста­ти­сти­че­ские дан­ные для соот­вет­ству­ю­ще­го устройства:

  • Device: Самый пер­вый стол­бец пока­зы­ва­ет имя устрой­ства или раз­де­ла , как ука­за­но в ката­ло­ге /Dev.
  • tps: Сле­ду­ю­щий стол­бец пока­зы­ва­ет ста­ти­сти­ку для дан­но­го устрой­ства, и отоб­ра­жа­ет коли­че­ство пере­дач в секун­ду (tps) , кото­рые были выда­ны на устрой­стве. Заня­ты­ми про­цес­со­ра­ми будет иметь боль­шее количество.
  • Blk_read/s: Эта ста­ти­сти­ка, бло­ки счи­ты­ва­ния в секун­ду, пока­зы­ва­ет объ­ем дан­ных, счи­ты­ва­е­мых из устрой­ства, как выра­же­но в ряде бло­ков (напри­мер , кило­бай­тах) в секунду.
  • Blk_wrtn/s: Ана­ло­гич­но, бло­ки запи­си в секун­ду пока­зан с объ­е­мом дан­ных, запи­сы­ва­е­мых на устрой­ство так­же экс­прес­си­ру­ет­ся в ряде бло­ков (напри­мер , кило­бай­тах) в секунду.
  • Blk_read: Общее чис­ло бло­ков, счи­ты­ва­е­мых для каж­до­го устрой­ства отоб­ра­жа­ют­ся во вто­ром в послед­ней колонке.
  • Blk_wrtn: Точ­но так же, отоб­ра­жа­ет­ся общее коли­че­ство бло­ков, запи­сан­ных для каж­до­го устрой­ства, нахо­дит­ся в послед­нем столбце.

 

Расширенные отчет IOSTAT

1. Пока­зать мега­байт вме­сто байта

По умол­ча­нию, систе­ма вво­да и выво­да IOSTAT изме­ря­ет в еди­нич­ных бай­тах. Но как толь­ко байт ста­но­вит­ся мал, для более лег­кой усво­я­е­мо­сти людь­ми мы можем пре­об­ра­зо­вать отчет для отоб­ра­же­ния отче­тов с мега­бай­тах, кото­рые зна­чи­тель­но круп­нее и гораз­до лег­че понять с пер­во­го взгля­да. Вызов IOSTAT исполь­зуя флаг -m для отоб­ра­же­ния мега­бай­та внут­ри отчетов:

 

Обра­ти­те вни­ма­ние на то, как выход в насто­я­щее вре­мя изме­нен, как пока­за­но в этом при­ме­ре вывода:

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 210.53 0.63 0.74 1033680 1732461
sda1 160.20 0.28 0.64 1102131 1104562
sda2 21.00 0.16 0.14 392451 321456

 

2. Рас­ши­рен­ный ста­тус вывода

В то вре­мя как пер­во­на­чаль­ный отчет все еще содер­жит мно­го полез­ной инфор­ма­ции, мы можем полу­чить еще боль­ше инфор­ма­ции с помо­щью фла­га -x с коман­дой IOSTAT для того, что­бы отоб­ра­зить рас­ши­рен­ные отчеты:

 

Выход IOSTAT теперь будет так­же вклю­чать в себя рас­ши­рен­ный диск ввода/вывода ста­ти­сти­че­ской инфор­ма­ции, как пока­за­но в дан­ном при­ме­ре ниже. Обра­ти­те вни­ма­ние, что мы пока­за­ли вывод, обер­ну­тый в инфор­ма­ци­он­ную стро­ку заго­лов­ка для столб­цов устрой­ства очень вели­ко по срав­не­нию с ранее:

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s \
sda 7684.00 19.00 2321.00 523.00 81848.00 5287.00 \
avgrq-sz avgqu-sz await svctm %util
29.86 32.99 11.17 0.34 100.00

 

Для того, что­бы понять, что озна­ча­ют новые рас­ши­рен­ные столб­цы, вы може­те посмот­реть на стра­ни­це руко­вод­ства для IOSTAT, либо с помо­щью команды:

 

3. Запу­сти­те IOSTAT с задержкой

Мож­но ука­зать IOSTAT при­ни­мать несколь­ко отче­тов с задерж­кой, извест­ный как интер­вал. Это дела­ет­ся с помо­щью пара­мет­ра OPTIONS, при­сво­ен­ный коман­де IOSTAT. Одна­ко, если толь­ко пара­метр INTERVAL задан, то IOSTAT будет непре­рыв­но гене­ри­ро­вать отче­ты на этом интер­ва­ле, пока вы не оста­но­ви­те его! Таким обра­зом, мы так­же предо­ста­вим вто­рой пара­метр, извест­ный как пара­метр COUNT, кото­рый так­же явля­ет­ся числом.

Они предо­став­ля­ют­ся IOSTAT в виде:

 

Для при­ме­ра ситу­а­ции, когда мы хотим гене­ри­ро­вать три отче­та с трех­се­кунд­ным интер­ва­лом меж­ду сооб­ще­ни­я­ми, и пока­зы­вать в мега­бай­тах, выпол­ни­те сле­ду­ю­щую команду:

 

Послед­ние две циф­ры в при­ве­ден­ной выше коман­де пред­став­ля­ют пара­метр интер­ва­ла и пара­метр под­сче­та. Пара­метр интер­ва­ла, пер­вый 3 в при­ме­ре, ука­зы­ва­ет IOSTAT подо­ждать три секун­ды меж­ду каж­дым отче­том, с каж­дым после­ду­ю­щим отче­том, содер­жа­щий ста­ти­сти­че­ские дан­ные за вре­мя, про­шед­шее с преды­ду­ще­го отче­та. Пара­метр счет­чи­ка, вто­рой 3 в при­ме­ре, гово­рит IOSTAT, сколь­ко отче­тов долж­но быть сфор­ми­ро­ва­но в общей слож­но­сти. Воз­вра­ща­ясь к наше­му при­ме­ру, вывод дол­жен выгля­деть при­мер­но сле­ду­ю­щим образом:

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 210.53 0.62 0.74 1022670 1752461
sda1 160.20 0.29 0.64 1012132 1204462
sda2 21.00 0.17 0.14 394452 312446

 

Через три секунды.

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 210.53 0.62 0.74 1022670 1752461
sda1 160.20 0.29 0.64 1012132 1204462
sda2 21.00 0.17 0.14 394452 312446

 

Еще через три секунды.

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 210.53 0.62 0.74 1022670 1752461
sda1 160.20 0.29 0.64 1012132 1204462
sda2 21.00 0.17 0.14 394452 312446

 

4. Выво­дить толь­ко один отчет на раздел

IOSTAT так­же поз­во­ля­ет изме­нять отчет, пока­зать толь­ко пер­вый раз­дел CPU или толь­ко раз­дел вто­ро­го дис­ка. Для того, что­бы пока­зать толь­ко ста­ти­сти­ку CPU, мы можем исполь­зо­вать флаг -c с IOSTAT с помо­щью команды:

 

Мы будем исполь­зо­вать при­мер ситу­а­ции, в кото­рой мы хотим пока­зать раз­дел CPU толь­ко, исполь­зуя двух-секунд­ных интер­ва­ла, и отоб­ра­жать инфор­ма­цию пять раз (то есть, сде­лать в общей слож­но­сти пять отче­тов с одно­го отче­та каж­дые две секун­ды толь­ко для сек­ции CPU). Для это­го выпол­ни­те сле­ду­ю­щую команду:

 

Вывод будет выгля­деть при­мер­но сле­ду­ю­щим образом:

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60

 

Через две секунды.

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60

 

Еще через две секунды.

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60

 

Еще через две секунды.

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60

 

Еще через две секунды.

Linux 2.6.32x86_64 (dev-db) 03/01/2016
avg-cpu: %user %nice %system %iowait %steal %idle
4.00 0.00 0.40 1.00 0.00 94.60