Відмінності між версіями «До моніторингу пам'яті в Linux»
(не показані 26 проміжних версій 2 учасників) | |||
Рядок 1: | Рядок 1: | ||
<h1><b><font face="Comic Sans MS" color="#FF0000">Лабораторна робота № 8 Моніторинг пам'яті в Linux</font></b></h1> | <h1><b><font face="Comic Sans MS" color="#FF0000">Лабораторна робота № 8 Моніторинг пам'яті в Linux</font></b></h1> | ||
− | + | [[Файл:Linux2012.gif||right]] | |
Ця стаття допоможе студентам при виконанні даної лабораторної роботи. Стаття написана з власного досвіду. | Ця стаття допоможе студентам при виконанні даної лабораторної роботи. Стаття написана з власного досвіду. | ||
− | + | <h1><b><font face="Comic Sans MS" color="#20B2AA">Теоретичний блок</font></b></h1> | |
<b>Віртуальна пам'ять</b>- це комплекс апаратних і програмних засобів(апаратні це оперативна пам'ять+жорсткий диск, при чому вони обоє форматуються однаково). На комп'ютері їх можна побачити як СВАП - файл чи СВАП - розділ. СВАП - це область на жорсткому диску яка розбита точно так само як оперативна пам'ять. ЗАПАМ'ЯТАЙТЕ розмір оперативної пам'яті може розростися до 2 в степені розрядність процесора. якщо розрядність 32 то ми отримуємо 2 в степені 32 = 4 ГБ. | <b>Віртуальна пам'ять</b>- це комплекс апаратних і програмних засобів(апаратні це оперативна пам'ять+жорсткий диск, при чому вони обоє форматуються однаково). На комп'ютері їх можна побачити як СВАП - файл чи СВАП - розділ. СВАП - це область на жорсткому диску яка розбита точно так само як оперативна пам'ять. ЗАПАМ'ЯТАЙТЕ розмір оперативної пам'яті може розростися до 2 в степені розрядність процесора. якщо розрядність 32 то ми отримуємо 2 в степені 32 = 4 ГБ. | ||
+ | |||
<b>Важливо:</b> оперативна пам'ять + СВАП розділи утворюють Віртуальну пам'ять. | <b>Важливо:</b> оперативна пам'ять + СВАП розділи утворюють Віртуальну пам'ять. | ||
− | + | ||
+ | <h1><b><font face="Comic Sans MS" color="#20B2AA">Практична частина</font></b></h1> | ||
<b><font color="#0000CD">Вивести інформацію про використання оперативної пам’яті</font></b> | <b><font color="#0000CD">Вивести інформацію про використання оперативної пам’яті</font></b> | ||
для цього можна скористатися командою htop. Завантажуємо линукс, запускаємо термінал, і потім пишемо команду htop, В нас буде виведено інформацію про використання оперативної пам'яті. Наприклад там буде написано memory 497 MB | для цього можна скористатися командою htop. Завантажуємо линукс, запускаємо термінал, і потім пишемо команду htop, В нас буде виведено інформацію про використання оперативної пам'яті. Наприклад там буде написано memory 497 MB | ||
− | + | [[Файл:Htop.png||200px|thumb|right|моніторинг оперативної пам’яті командою htop (натисніть для збільшення)]] | |
<b><font color="#0000CD">Вивести інформацію про використання процесами віртуальної пам’яті.</font></b> | <b><font color="#0000CD">Вивести інформацію про використання процесами віртуальної пам’яті.</font></b> | ||
Рядок 18: | Рядок 20: | ||
<b><font color="#0000CD">Вивести інформацію по використанню віртуальної пам'яті при підключеному своп-розділі.</font></b> | <b><font color="#0000CD">Вивести інформацію по використанню віртуальної пам'яті при підключеному своп-розділі.</font></b> | ||
− | + | [[Файл:Htop no swap.png||200px|thumb|right|моніторинг пам'яті при відключеному своп-розділі (натисніть для збільшення)]] | |
аналогічно як в попередньому прикладі дивимось використання памяті,(htop), тільки перед цим треба відключити СВАП, для цього: в терміналі пишемо: sudo swapoff -a | аналогічно як в попередньому прикладі дивимось використання памяті,(htop), тільки перед цим треба відключити СВАП, для цього: в терміналі пишемо: sudo swapoff -a | ||
Рядок 26: | Рядок 28: | ||
<b><font color="#0000CD">Вивести інформацію по використанню віртуальної пам'яті конкретним процесом.</font></b> | <b><font color="#0000CD">Вивести інформацію по використанню віртуальної пам'яті конкретним процесом.</font></b> | ||
− | + | [[Файл:Memory_1_procesa.png||200px|thumb|right|використанню віртуальної пам'яті конкретним процесом(натисніть для збільшення)]] | |
Спочатку треба дізнатись ID конкретного процесса. Можна запустити системний монітор і там переглянути id процеса. Наприклад id нашого процеса 1460 Тепер в терміналі пишемо: pmap -x 1460. Буде виведена інформація про використання процесом памяті. Шукаєм слово Total KB 1826. Це означає що процес з id 1460 використовує 1826 KB. | Спочатку треба дізнатись 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 | ||
<b><font color="#0000CD">Увага! додаткове питання на 5 балів</font></b> | <b><font color="#0000CD">Увага! додаткове питання на 5 балів</font></b> | ||
− | Треба показати адресацію конкретного процеса. Для цього дізнаємся id процеса. | + | Треба показати адресацію пам'яті конкретного процеса. Для цього дізнаємся id процеса. А далі ваша фантазія... |
+ | |||
+ | '''Примітка''' | ||
+ | |||
+ | Програми сторонніх виробників для моніторингу ОЗП (з репозитарію Cannonical): | ||
+ | |||
+ | * XOSVIEW | ||
+ | |||
+ | * GKRELLM SYSTEM MONITOR | ||
+ | |||
+ | * MGM SYSTEM MONITOR |
Поточна версія на 11:40, 11 грудня 2013
Лабораторна робота № 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