Відмінності між версіями «До моніторингу пам'яті в Linux»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
(не показані 14 проміжних версій 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|]]
+
[[Файл:Linux2012.gif||right]]
 
Ця стаття допоможе студентам при виконанні даної лабораторної роботи. Стаття написана з власного досвіду.
 
Ця стаття допоможе студентам при виконанні даної лабораторної роботи. Стаття написана з власного досвіду.
  
Рядок 14: Рядок 14:
  
 
для цього можна скористатися командою htop. Завантажуємо линукс, запускаємо термінал, і потім пишемо команду htop, В нас буде виведено інформацію про використання оперативної пам'яті. Наприклад там буде написано memory 497 MB  
 
для цього можна скористатися командою htop. Завантажуємо линукс, запускаємо термінал, і потім пишемо команду htop, В нас буде виведено інформацію про використання оперативної пам'яті. Наприклад там буде написано memory 497 MB  
[[Файл:Htop.png‎||200px|thumb|right|виконання команди htop (натисніть для збільшення)]]
+
[[Файл:Htop.png‎||200px|thumb|right|моніторинг оперативної пам’яті командою htop (натисніть для збільшення)]]
 
<b><font color="#0000CD">Вивести інформацію про використання процесами віртуальної пам’яті.</font></b>
 
<b><font color="#0000CD">Вивести інформацію про використання процесами віртуальної пам’яті.</font></b>
  
Рядок 20: Рядок 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
  
Рядок 28: Рядок 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

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