До моніторингу пам'яті в Linux

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Лабораторна робота № 8 Моніторинг пам'яті в Linux

Linux2012.gif

Ця стаття допоможе студентам при виконанні даної лабораторної роботи. Стаття написана з власного досвіду.

Теоретичний блок

Віртуальна пам'ять- це комплекс апаратних і програмних засобів(апаратні це оперативна пам'ять+жорсткий диск, при чому вони обоє форматуються однаково). На комп'ютері їх можна побачити як СВАП - файл чи СВАП - розділ. СВАП - це область на жорсткому диску яка розбита точно так само як оперативна пам'ять. ЗАПАМ'ЯТАЙТЕ розмір оперативної пам'яті може розростися до 2 в степені розрядність процесора. якщо розрядність 32 то ми отримуємо 2 в степені 32 = 4 ГБ.

Важливо: оперативна пам'ять + СВАП розділи утворюють Віртуальну пам'ять.

Практична частина

Вивести інформацію про використання оперативної пам’яті

для цього можна скористатися командою htop. Завантажуємо линукс, запускаємо термінал, і потім пишемо команду htop, В нас буде виведено інформацію про використання оперативної пам'яті. Наприклад там буде написано memory 497 MB

моніторинг оперативної пам’яті командою htop (натисніть для збільшення)

Вивести інформацію про використання процесами віртуальної пам’яті.

для цього знову скористаємось командою htop і згадаємо що віртуальна память це оперативна + СВАП. Розмір СВАП дивимось після виконання команди htop. Там буде написано Swp:327МВ. В нашому випадку це 327мегабайтів.

Вивести інформацію по використанню віртуальної пам'яті при підключеному своп-розділі.

моніторинг пам'яті при відключеному своп-розділі (натисніть для збільшення)

аналогічно як в попередньому прикладі дивимось використання памяті,(htop), тільки перед цим треба відключити СВАП, для цього: в терміналі пишемо: sudo swapoff -a

Вивести інформацію по використанню віртуальної пам'яті при відключеному своп-розділі.

аналогічно як в попередньому завданні. тільки треба тепер підключити СВАП. Для цього в терміналі пишемо: sudo swapon -a

Вивести інформацію по використанню віртуальної пам'яті конкретним процесом.

використанню віртуальної пам'яті конкретним процесом(натисніть для збільшення)

Спочатку треба дізнатись ID конкретного процесса. Можна запустити системний монітор і там переглянути id процеса. Наприклад id нашого процеса 1460 Тепер в терміналі пишемо: pmap -x 1460. Буде виведена інформація про використання процесом памяті. Шукаєм слово Total KB 1826. Це означає що процес з id 1460 використовує 1826 KB.

Корисно пам'ятати опції

  • -x extended -розширений формат
  • -d device -показ формату пристрою
  • -q quiet -сховати деякі поля таблиці
  • -V show version - версія програми

та поля

  • Address: початкова адреса карти
  • Kbytes: розмір карти в кілобайтах
  • RSS: поточний розмір адрес
  • Dirty: всі (в тому числі приховані та системні) сторінки
  • Mode: дозволи та права: read, write, execute, shared, private
  • Mapping: режим виводу карти '[ anon ]', '[ stack ]'
  • Offset: зміщення у файлі
  • Device: ім'я пристрою

команди pmap.

Для виводу карт адрес усіх процесів можна задати циклічний запис карт у текстовий файл за допомогою комбінації команд терміналу:

for PID in `ps -ef| awk '/<someprocessname>/ {print $2}'`; do pmap -x $PID > ${PID}.outfile; done

або (з використанням конвеєра)

ps -eo pid | 
 while read; do
   pid="$(($REPLY))"
   pmap > ./pmap_"$pid" -x "$pid" 2>/dev/null ||
     printf 'error printing address space map for pid %d\n' "$pid" >&2
 done

Увага! додаткове питання на 5 балів

Треба показати адресацію пам'яті конкретного процеса. Для цього дізнаємся id процеса. А далі ваша фантазія...

Примітка

Програми сторонніх виробників для моніторингу ОЗП (з репозитарію Cannonical):

  • XOSVIEW
  • GKRELLM SYSTEM MONITOR
  • MGM SYSTEM MONITOR