петак, 19 априла, 2024
Како да...?

Администрација линукс система – Праћење перформанси система (2. део)

Аутор: Михајло Богдановић

Поздрав Линери! Као што је обећано настављамо даље са програмима/алатима са којима можемо утврдити заузеће диска као и његове перформансе, такође у овом броју бавићемо се и заузећем процесора. Па да кренемо полако.

Заузеће диска и његове перформансе

Заузеће диска се лако може прaтити командом df и du. Команда df приказује стање расположивог простора на диску док команда du приказује колико је простора заузето на диску.

Употребом опције -k команде df може се видети заузеће диска у килобајтима

У данашњим приликама извештај ће бити најчитљивији употребом опције -h

Опција -h потпуно разјашњава колико имамо расположивог простора у сваком систему датотеке.

Ако употребимо опцију -l добићемо само податке о простору на диску који се физички налази на систему али не и за повезане мрежне системске датотеке нити за дискове којима приступамо даљински.

Када желимо да утврдимо колики део простора на диску се користи, употребићемо команду du. Њена основна синтакса је

du [opcija] datoteka

sysadmin@server ~/backup # du -h
7.7G .

sysadmin@server ~/backup # du -k
8015940 .

sysadmin@server ~/backup # du -m
7829 .

sysadmin@server ~/backup # du -s
8015940 .

h – приказује извештај у јединицама које су најчитљивији кориснику
k -приказује резултате у килобајтима
m -приказује резултате у мегабајтима
s -приказује само збирне вредности

Улазно-излазне операције са диском обично су уско грло система. Оперативна меморија и процесор раде више хиљада пута брже од најбржег диска. Срећом, језгро оперативног система и савремени чврсти дискови користе софтверску и хардверску меморијску оставу, међумеморију за предходно учитавање и одложено записавиње на хард диск да би прикрили и смањили поменуту разлику у брзини рада. Ипак, као администратор система и даље би требали знати да утврдите проблеме и изборите се са њима када се појаве на улазно-излазним операцијама са диском.

Корисно је да се упознате са следећим фразама које се често користе за описивање перформанси система:

Средње време приступања (Average seek time) – процена просечног трајања операције приступања
Максимално време приступања (Maximum seek time) – трајање кретања главе диска између две стазе на диску које су међусобно највише удаљене
Минимално време приступања (Minimum seek time) – трајање кретања главе диска између две суседне стазе
Кашњење лоцирања (Queuing delay) – време потребно контролеру диска да утврди где на диску треба да прочита/упише податке
Ротационо кашњење (Rotational latency) – време потребно да се право место на диску доведе испод главе за читање/уписивање, изражено бројем обрта у минуту (RPM)
Кашњење приступања (Seek latency) – време потребно глави за читање/уписивање да се позиционира на одређени цилиндар диска
Време приступања (Seek time) – Време потребно глави за читање/уписивање да пређе са једне стазе диска на другу

За утврђивање проблема са перформансама улазно-излазних операција најчешће се користи команда iostat. Слично команди vmstat и команда iostat се најједноставније задаје на следећи начин

iostat [интервал] [број]

Интервал дефинише број секунди између два узастопна извештаја, а број представља укупан број извештаја.

tps – број операција преноса података (или улазно-излазних захтева за прекид) у секунди послатих диску
Blk_read/s – број блокова података учитаних са уређаја у секунди
Blk_wrtn/s – број блокова података уписаних на уређај у секунди
Blk_read – укупан број учитаних података
Blk_wrtn – укупан број уписаних података

Ако детаљније желимо да испитамо улазно-излазне перформансе диска, употребићемо опцију -x, задајући и диск односно партицију која нас занима. Опција -x омогућава детаљнију статистику улазно-излазних операција задатих дискова или свих дискова ако не задамо диск.

Наредна команда приказује снимак активности диска /dev/sda током превођења језгра оперативног система (такође [интервал=5] [број=5]). Због опције -d команда iostat не приказује збирни извештај о коришћену процесора

rrqm/s – број спојених захтева за читање података у секунди
wrqm/s – број спојених захтева за уписивање података у секунди
r/s – број захтева за читање података у секунди
w/s – број захтева за уписивање података у секунди
rsec/s – број учитаних сектора у секунди
wsec/s – број уписаних сектора у секунди
avgrq-sz – просечна величина захтева у секторима
avgqu-sz – просечна дужина реда за чекање захтева
await – просечно време чекања улазно-излазне операције на извршење изражено у милисекундама
svctm – просечно време извршавања улазно-излазне операције изражено у милисекундама
%util – проценат заузећа процесора захтевима за улазно-излазне операције

Коришћење процесора

Најпознатији услужни програм за праћење коришћења процесора јесте top, који приказује најзахтевније процесе. Програм top прати рад процесора у реалном времену, што значи да приказује листу активних процеса који га највише користе. Приказ се подразумевано ажурира на сваке три секунде, мада је интервал ажурирања променљив у току извршавања команде top, са d или s и задатом вредношћу.

Пример замене интервала ажурирања на 6 секунде

Приказ команде top

Први ред приказује укупно време рада система, слично резултату команде uptime. Следећа два реда резултата команде top сумирају коришћење процесора (у апсолутним бројевима, односно у процентима) приказујући активне процесе, процесе који су привремено заустављени, зомбије и трајно заустављене процесе. Зомби (енгл. zombie) је процес који се завршио пре него што је његов родитељски процес успео да то сазна. Они се зову зомби-процеси јер су “мртви” и не заузимају ресурсе (осим одреднице у табели процеса језгра оперативног система), али се ипак појављују при излиставању процеса. У четвртом и петом реду резултата сумирано је актуелно коришћење меморије, на начин као што то приказује команда free. Шести ред је у ствари заглавље за преостале податке – процесе који највише оптерећују процесор, подразумевано приказане по опадајућем редоследу према заузећу процесора.

PID – идентификатор процеса
USER – име корисника који је покренуо процес
PRI – приоритет извршавања процеса
NI – измена приоритета процеса (nice)
SIZE – величина меморије потребна за извршавање процеса
RSS – величина физичке меморије коју процес заузима
SHARE или SHR – величина дељене меморије коју процес користи
STAT или S – актуелно стање процеса
%CPU – проценат укупног процесорског времена који користи процес
%MEM – проценат укупне физичке меморије коју користи процес
TIME – укупно потрошено време процесора на извршење процеса
COMMAND – команда којом је процес покренут, приказана у заградама ако је процес одложен у виртуелну меморију

Жељени процес можемо “убити” у самом приказу команде top, са тастером k или K уписујући PID (идентификатор процеса).
Приказ

Стање процеса може да буде D (привремено заустављен на одређено време), R (извршава се), S (привремено заустављен), T(заустављен или праћен) или Z (зомби). Ако се иза ознаке стања процеса налази знак <, процес има негативну измену приоритета, а ако је знак N, његова измена приоритета је позитивна. Уколико ту стоји знак W, процес је одложен у виртуелну меморију. Иначе, редослед приказаних процеса можемо да променимо тако што ћемо команди top дати налог да осим заузећа процесора узме у обзир и неки други критеријум. Док програм top ради притисните тастер o или O а затим тастер у приказу листе испод да би приказ био уређен по жељеном критеријуму.

a или A – редослед покретања
m или M – заузеће физичке меморије
n или N – бројчана вредност идентификатора
p или P – заузеће процесора
t или T – утрошено процесорско време

Од конзолних програма за надгледање перформанси система сличан програму top je htop.
Приказ


Толико за овај број.

Не пропустите у наредном броју још један важан сегмент у администрацији линукс система а то је надгледање рада у мрежи.