До моніторингу пам'яті в Linux
Лабораторна робота № 8 Моніторинг пам'яті в Linux
Ця стаття допоможе студентам при виконанні даної лабораторної роботи. Стаття написана з власного досвіду.
Теоретичний блок
Віртуальна пам'ять- це комплекс апаратних і програмних засобів(апаратні це оперативна пам'ять+жорсткий диск, при чому вони обоє форматуються однаково). На комп'ютері їх можна побачити як СВАП - файл чи СВАП - розділ. СВАП - це область на жорсткому диску яка розбита точно так само як оперативна пам'ять. ЗАПАМ'ЯТАЙТЕ розмір оперативної пам'яті може розростися до 2 в степені розрядність процесора. якщо розрядність 32 то ми отримуємо 2 в степені 32 = 4 ГБ.
Важливо: оперативна пам'ять + СВАП розділи утворюють Віртуальну пам'ять.
Практична частина
Вивести інформацію про використання оперативної пам’яті
для цього можна скористатися командою htop. Завантажуємо линукс, запускаємо термінал, і потім пишемо команду htop, В нас буде виведено інформацію про використання оперативної пам'яті. Наприклад там буде написано memory 497 MB
Вивести інформацію про використання процесами віртуальної пам’яті.
для цього знову скористаємось командою 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