IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [680]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [357]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [171]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1340
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2015 » Май » 9 » Администрирование систем Linux. Управление распределением памяти
    14:09
    Администрирование систем Linux. Управление распределением памяти

    Администрирование систем Linux. Управление распределением памяти

    Оригинал: Memory management
    Автор: Paul Cobbaut
    Дата публикации: 12 марта 2015 г.
    Перевод: A. Панин
    Дата перевода: 31 марта 2015 г.

    Глава 18. Управление распределением памяти

    Из данной главы вы узнаете о том, как управлять распределением оперативной памяти и кэшей.

    В начале главы рассматриваются простые команды, предназначенные для вывода информации о состоянии памяти: free -om, top и cat /proc/meminfo.

    После них описывается методика управления пространством подкачки, причем в описании используются такие понятия, как перемещение страницы памяти в область подкачки (swapping), перемещение страницы памяти в оперативную память (paging) и виртуальная память (virtual memory).

    Последняя часть главы посвящена утилите vmstat, которая используется для мониторинга использования пространства подкачки.

    18.1. Вывод информации о памяти и кэшах

    18.1.1. Файл /proc/meminfo

    Просмотрев содержимое файла /proc/meminfo, вы можете получить достаточно большой объем информации об использовании памяти вашего компьютера, работающего под управлением Linux.

     

    paul@ubu1010:~$ cat /proc/meminfo 
    MemTotal: 3830176 kB
    MemFree: 244060 kB
    Buffers: 41020 kB
    Cached: 2035292 kB
    SwapCached: 9892 kB
    ...
    

     

    Первая строка содержит информацию об общем объеме физической оперативной памяти, вторая строка - информацию об объеме неиспользованной оперативной памяти. В строке, начинающейся со слова "Buffers" содержится информация об объеме оперативной памяти, использованной для буферизации файлов, со слова "cached" - информация об объеме оперативной памяти, используемой в качестве кэша, а со слова "SwapCached" - информация об объеме памяти из пространства подкачки, используемой в качестве кэша. Данный файл также содержит много другой информации, рассмотрение которой в рамках данного курса является нецелесообразным.

    18.1.2. Утилита free

    Утилита free выводит информацию из файла /proc/meminfo в более удобном для чтения формате. В примере ниже показан вывод рассматриваемой утилиты, содержащий краткую информацию об использовании памяти со значениями в мегабайтах.

     

    paul@ubu1010:~$ free -om
     total used free shared buffers cached
    Mem: 3740 3519 221 0 42 1994
    Swap: 6234 82 6152
    

     

    8.1.3.Утилита top

    Обычно утилита top применяется для выявления процессов, которые наиболее интенсивно используют ресурс центрального процессора, но при этом данная утилита также выводит информацию о состоянии памяти в четвертой и пятой строке (эти строки могут скрываться и восстанавливаться с помощью клавиши m).

    Ниже приведен пример вывода утилиты top после запуска на рассматриваемой системе ubu1010.

     

    top - 10:44:34 up 16 days, 9:56, 6 users, load average: 0.13, 0.09, 0.12
    Tasks: 166 total, 1 running, 165 sleeping, 0 stopped, 0 zombie
    Cpu(s): 5.1%us, 4.6%sy, 0.6%ni, 88.7%id, 0.8%wa, 0.0%hi, 0.3%si, 0.0%st
    Mem: 3830176k total, 3613720k used, 216456k free, 45452k buffers
    Swap: 6384636k total, 84988k used, 6299648k free, 2050948k cached
    

     

    18.2. Управление пространством подкачки

    18.2.1. Информация о пространстве подкачки

    Если операционной системе требуется объем памяти, превышающий объем имеющейся физической оперативной памяти, она может задействовать пространство подкачки. Пространство подкачки располагается на более медленном, но более дешевом устройстве для хранения данных. Обратите внимание на то, что хотя жесткие диски и используются чаще всего в качестве хранилищ для пространств подкачки, их значения времени доступа к данным в сотни тысяч раз хуже соответствующих значений оперативной памяти.

    Пространство подкачки может быть представлено файлом, разделом жесткого диска или комбинацией файлов и разделов жесткого диска. Вы можете получить информацию об используемых пространствах подкачки выполнив либо команду free, либо команду cat /proc/swaps.

     

    paul@ubu1010:~$ free -o | grep -v Mem
     total used free shared buffers cached
    Swap: 6384636 84988 6299648
    paul@ubu1010:~$ cat /proc/swaps
    Filename Type Size Used Priority
    /dev/sda3 partition 6384636 84988 -1
    

     

    Необходимый объем пространства подкачки зависит главным образом от предназначения рассматриваемого компьютера.

    18.2.2. Создание раздела подкачки

    Вы можете активировать и деактивировать пространство подкачки с помощью утилит swapon и swapoff соответственно. Новое пространство подкачки может быть создано с помощью утилиты mkswap. В приведенном ниже примере показан процесс создания и активации раздела подкачки.

     

    root@RHELv4u4:~# fdisk -l 2> /dev/null | grep hda
    Disk /dev/hda: 536 MB, 536870912 bytes
    /dev/hda1 1 1040 524128+ 83 Linux
    root@RHELv4u4:~# mkswap /dev/hda1
    Setting up swapspace version 1, size = 536702 kB
    root@RHELv4u4:~# swapon /dev/hda1
    

     

    После выполнения описанных действий вы можете заметить, что в файле /proc/swaps содержится информация о каждом из пространств подкачки по отдельности, а при использовании команды free -om выводится только общая информация, отформатированная для более удобного чтения.

     

    root@RHELv4u4:~# cat /proc/swaps
    Filename Type Size Used Priority
    /dev/mapper/VolGroup00-LogVol01 partition 1048568 0 -1
    /dev/hda1 partition 524120 0 -2
    root@RHELv4u4:~# free -om
     total used free shared buffers cached
    Mem: 249 245 4 0 125 54
    Swap: 1 535 0 1535
    

     

    18.2.3. Создание файла подкачки

    Ниже приведен еще одни пример, иллюстрирующий процесс создания файла подкачки. При работе с операционной системой Solaris вы можете использовать утилиту mkfile вместо утилиты dd.

     

    root@RHELv4u4:~# dd if=/dev/zero of=/smallswapfile bs=1024 count=4096
    4096+0 записей получено
    4096+0 записей отправлено
    root@RHELv4u4:~# mkswap /smallswapfile 
    Setting up swapspace version 1, size = 4190 kB
    root@RHELv4u4:~# swapon /smallswapfile 
    root@RHELv4u4:~# cat /proc/swaps 
    Filename Type Size Used Priority
    /dev/mapper/VolGroup00-LogVol01 partition 1048568 0 -1
    /dev/hda1 partition 524120 0 -2
    /smallswapfile file 4088 0 -3
    

     

    18.2.4. Описание пространства подкачки в файле /etc/fstab

    Если вы хотите использовать созданные пространства подкачки на постоянной основе, не забудьте добавить их описание в файл /etc/fstab. Строки, которые следует добавить в данный файл, должны быть аналогичны приведенным ниже.

     

    /dev/hda1 swap swap defaults 0 0
    /smallswapfile swap swap defaults 0 0
    

     

    18.3. Мониторинг использования памяти с помощью утилиты vmstat

    Для получения информации об использовании пространства подкачки может использоваться утилита vmstat.

    В примере ниже приведен вывод утилиты vmstat с значениями в мегабайтах.

     

    paul@ubu1010:~$ vmstat -S m
    procs ---------memory-------- ---swap-- -----io---- -system- ----cpu----
     r b swpd free buff cache si so bi bo in cs us sy id wa
     0 0 87 225 46 2097 0 0 2 5 14 8 6 5 89 1
    

     

    В следующем примере приведен вывод утилиты vmstat после исполнения пользователем root (в другом терминале) команды find /. Утилита find выполняет множество операций дискового ввода-вывода (в столбцах bi и bo расположены счетчики прочитанных и записанных блоков диска соответственно). В данных обстоятельствах нет повода для использования пространства подкачки.

     

    paul@ubu1010:~$ vmstat 2 100
    procs ----------memory---------- ---swap-- -----io---- -system-- ----cpu----
     r b swpd free buff cache si so bi bo in cs us sy id wa
     0 0 84984 1999436 53416 269536 0 0 2 5 2 10 6 5 89 1
     0 0 84984 1999428 53416 269564 0 0 0 0 1713 2748 4 4 92 0
     0 0 84984 1999552 53416 269564 0 0 0 0 1672 1838 4 6 90 0
     0 0 84984 1999552 53424 269560 0 0 0 14 1587 2526 5 7 87 2
     0 0 84984 1999180 53424 269580 0 0 0 100 1748 2193 4 6 91 0
     1 0 84984 1997800 54508 269760 0 0 610 0 1836 3890 17 10 68 4
     1 0 84984 1994620 55040 269748 0 0 250 168 1724 4365 19 17 56 9
     0 1 84984 1978508 55292 269704 0 0 126 0 1957 2897 19 18 58 4
     0 0 84984 1974608 58964 269784 0 0 1826 478 2605 4355 7 7 44 41
     0 2 84984 1971260 62268 269728 0 0 1634 756 2257 3865 7 7 47 39
    

     

    А в примере ниже представлен вывод утилиты vmstat при исполнении (в дистрибутиве RHEL6) простой программы, повторяющей поведение приложения с утечкой памяти. Теперь вы можете обнаружить большое количество страниц памяти в пространстве подкачки (или "страниц памяти, перемещенных в пространство подкачки").

     

    [paul@rhel6c ~]$ vmstat 2 100
    
    procs ----------memory-------- ---swap-- ----io---- --system-- -----cpu-----
     r b swpd free buff cache si so bi bo in cs us sy id wa st
     0 3 245208 5280 232 1916 261 0 0 42 27 21 0 1 98 1 0
     0 2 263372 4800 72 908 143840 128 0 1138 462 191 2 10 0 88 0
     1 3 350672 4792 56 992 169280 256 0 1092 360 142 1 13 0 86 0
     1 4 449584 4788 56 1024 95880 64 0 606 471 191 2 13 0 85 0
     0 4 471968 4828 56 1140 44832 80 0 390 235 90 2 12 0 87 0
     3 5 505960 4764 56 1136 68008 16 0 538 286 109 1 12 0 87 0
    

     

    Для симуляции утечки памяти (и принудительного переноса страниц памяти в пространство подкачки) был использован приведенный ниже код. Этот код был найден в энциклопедии Wikipedia, причем имя автора не было указано.

     

    paul@mac:~$ cat memleak.c 
    #include <stdlib.h>
    
    int main(void)
    {
     while (malloc(50));
     return 0;
    }
    

     

    18.4. Практическое задание: память

     

    1. Используйте утилиту dmesg для получения информации об общем объеме оперативной памяти вашего компьютера.

     

    2. Используйте утилиту free для вывода информации об использовании памяти с значениями в килобайтах (а после этого в мегабайтах).

     

    3. Работая с операционной системой, запущенной в виртуальной машине, создайте раздел подкачки (для этой цели вам может потребоваться дополнительный виртуальный диск).

     

    4. Добавьте в систему файл подкачки размером в 20 мегабайт.

     

    5. Разместите описания всех созданных пространств подкачки в файле /etc/fstab и активируйте их. Проверьте, монтируются ли они после перезагрузки системы.

     

    6. Используйте утилиту free для проверки использования созданных пространств подкачки.

     

    7 (дополнительное задание). Выведите информацию об использовании созданных пространств подкачки в условиях запуска приложения с утечкой памяти с помощью команд vmstat и free -s.

     

     

    18.5. Корректная процедура выполнения практического задания: память

     

    1. Используйте утилиту dmesg для получения информации об общем объеме оперативной памяти вашего компьютера.

     

    dmesg | grep Memory

     

    2. Используйте утилиту free для вывода информации об использовании памяти с значениями в килобайтах (а после этого в мегабайтах).

     

    free ; free -m

     

    3. Работая с операционной системой, запущенной в виртуальной машине, создайте раздел подкачки (для этой цели вам может потребоваться дополнительный виртуальный диск).

     

    mkswap /dev/sdd1 ; swapon /dev/sdd1

     

    4. Добавьте в систему файл подкачки размером в 20 мегабайт.

     

    dd if=/dev/zero of=/swapfile20mb bs=1024 count=20000
    mkswap /swapfile20mb
    swapon /swapfile20mb

     

    5. Разместите описания всех созданных пространств подкачки в файле /etc/fstab и активируйте их. Проверьте, монтируются ли они после перезагрузки системы.

     

    root@computer# tail -2 /etc/fstab
    /dev/sdd1 swap swap defaults 0 0
    /swapfile20mb swap swap defaults 0 0

     

    6. Используйте утилиту free для проверки использования созданных пространств подкачки.

     

    free -om

     

    7 (дополнительное задание). Выведите информацию об использовании созданных пространств подкачки в условиях запуска приложения с утечкой памяти с помощью команд vmstat и free -s.

     

    http://rus-linux.net/MyLDP/BOOKS/LSA/ch18.html

    Категория: Linux и не только | Просмотров: 592 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024