Linux кто жрет память

Кто жрёт память?

Пару дней назад, заметил что atop, показывает одну из строк в красном цвете, SWP tot 2.0G | free 2.0G vmcom 4.9G | vmlim 2.8G-скрин+иногда своп «загрязнён» в пределах 500мб, хотя раньше система практически его не использовала. Вычитал в гугле что нужно отредактировать /proc/sys/vm/overcommit_memory и поставить там «2» (умолчанию 0) но после этого, система уходит в консоль с «cannot allocate memory» Помогите разобраться.

Вычитал в гугле что нужно отредактировать /proc/sys/vm/overcommit_memory

Гугл нуб и юзает убунту, не слушай его.

Значит всё в порядке?

rictb

А кого тогда слушать? Сразу лезть на лор, как только какая то проблема? facepalm.jpg

Забыл указать: debian stable, fluxbox, когда сидел на openbox, такого не было 🙁

Используются ли другие ветки кроме стабильной?

после этого, система уходит в консоль с «cannot allocate memory»

Рекомендую:
1. снести мониторинг, он вам противопоказан
2. жить долго и счастливо

Но если вас уже укусили анонимные оптимизаторы, то можно начать обряд инициации последователя карго-культа с вычисления самых толстых обитателей свопа.
Как-то так: grep -i swap /proc/*/status

Programmist11180

aidaho

ktulhu666

В каком смысле? Если речь о браузере, у меня opera-next.

Источник

Кто жрёт память?

Силою обстоятельств пересел на ноутбук с 3Гб оперативной памяти без свапа. Всегда считал, что 3Гб может быть достаточно для непритязательной работы потыкать вкладочки в интернете, поредактировать документик, но, как выясняется, это не так.

Система Убунта 14.04 64 бит, дефолтная юнити.

Сразу после загрузки десктопа гномовский системный монитор показывает, что занято 2Гб оперативки из 2.9 доступных.

В списке процессов в топе по памяти два яндекс-диска по 140Мб каждый, потом компиз и какой-то эволюшен-фактори по 35 и дальше еще какая-то мелочь по 15, 10, 5, 3 и далее к килобайтам. Гигагабайта на всю эту шушеру вместе взятую — с большим запасом (реально, думаю там не больше 500Мб), 2Гб никак не набирается.

Ладно, допустим эти полтора гига — какой-то виртуальный полуфейковый резерв (типа, как с файлами торентов, которые сразу пишут, что файл занимает 4 гига, а в реале — несколько мегабайт пока только начал закачку и в процессе увеличивается реальный размер). Но ведь я после этого запускаю фаерфокс, тыкаю на нем несколько любимых вкладочек, успеваю увидеть в сисмониторе, что это еще 700-800-900 мегабайт плюсом к 2м изначальным (т.е. 2.8 из 2.9), и система встаёт раком: мышка двигается, но окна на нее реагируют и перерисовываются раз в минуту, выхот только ctrl+alt+sysrq+b.

Другими словами, эти 1.5 гига вполне реальны, если их кто-то и резервирует до худших времен, то при наступлении худших времен он их не отдает.

На всякий случай добавлю, что жесткий диск с системой переставил без переустановки системы из предыдущего ноута, на котором было 8Гб оперативки.

Источник

Smem – Отчеты о распределении памяти между процессами и пользователями в Linux

И снова здравствуйте. Друзья, хотим поделиться с вами переводом полезного материала о мониторинге использования памяти в Linux. Данный материал подготовлен специально для студентов курса «Администратор Linux».

Управление памятью в вопросах мониторинга ее использования – одна из самых важных областей в вашей Linux системе. В различных дистрибутивах Linux существует великое множество инструментов для мониторинга использования памяти. Работают они тоже по разному, но в этой статье мы рассмотрим установку и использования такого инструмента как smem.

Smem – это инструмент предоставления отчетов в командной строке, который выдает пользователю различные сводки по использованию памяти в системе Linux. В smem есть одна уникальная вещь, которая отличает его от традиционных инструментов мониторинга памяти. Дело в том, что smem сообщает вам PSS (Proportional Set Size), то есть он дает более полноценное представление о распределении памяти между приложениями и библиотеками в настройках виртуальной памяти.

Читайте также:  Windows 10 brightness asus

Существующие традиционные инструменты сосредоточена главным образом на считывании RSS (Resident Set Size), т.е. на стандартной мере мониторинга использования памяти в физической схеме памяти, которая тем не менее имеет тенденцию переоценивать использование памяти приложениями.

С другой стороны PSS рационально оценивает использование памяти, определяя справедливое ее распределение между приложениями и библиотеками в схеме виртуальной памяти.

Вы можете обратиться к этому руководству (о PSS и RSS памяти), чтобы понять механизм потребления памяти в системе Linux. А теперь давайте перейдем к рассмотрению некоторых особенностей smem.
Особенности Smem:

  • Листинг обзора системы;
  • Листинг и фильтрация по процессам, маппингам и пользователям;
  • Использование данных из файловой системы /proc;
  • Настраиваемые столбцы листинга для нескольких источников данных;
  • Конфигурируемые блоки вывода и процентные показатели;
  • Простота настройки заголовков и итогов в списках;
  • Использование моментальных снимков из зеркал каталогов или сжатых tar файлов;
  • Встроенный механизм генерации диаграмм;
  • Облегчённый инструмент захвата, используемый во встроенных системах.

Как установить Smem – инструмент мониторинга памяти в Linux

Перед тем, как приступить к установке smem, необходимо убедиться, что ваша система удовлетворяет следующим параметрам:

  • Современное ядро (версия от 2.6.27);
  • Актуальная версия Python (поддерживается от 2.4);
  • Опционально библиотека matplotlib для генерации диаграмм.

Большинство дистрибутивов Linux на сегодняшний день поставляются с последней версией ядра с поддержкой Python 2 или 3, поэтому единственным требованием по сути может быть только установка matplotlib для отрисовки красивых графиков.

На системах RHEL, CentOS и Fedora

Для начала включите репозиторий EPEL (Extra Packages for Enterprise Linux), затем установите следующее:

На системах Debian и Ubuntu

На Linux Mint

На Arch Linux

Как использовать Smem

Чтобы увидеть отчет по использованию памяти системой, всеми пользователями системы, введите следующую команду:

Когда стандартный пользователь запускает smem, то отображается использование памяти процессом, который инициировал этот пользователь. Процессы организованы по возрастанию PSS.
Взгляните на пример вывода для моей системы. Здесь показано использование памяти для процессов, инициированных пользователем aaronkilik:

Есть множество опций, которые вы можете вызвать во время использования smem, например, чтобы просмотреть потребление памяти в масштабах системы, выполните следующую команду:

Также вы можете просмотреть использование памяти маппингами:

У smem есть параметры фильтрации выходных данных. Сейчас мы взглянем на два примера.
Фильтрация вывода по имени пользователя (username) осуществляется вызовом опций -u или —userfilter=»regex» , как в примере ниже:

Чтобы отфильтровать выходные данные по имени процесса, включите опцию -P или —processfilter=»regex» :

Форматирование вывода может быть крайне полезным, поэтому smem предоставляет параметры, которые помогут вам форматировать отчеты об использовании памяти. Далее мы рассмотрим пару примеров.

Чтобы отображать в отчете только необходимые столбцы, используйте -c или –columns , как показано ниже:

Вы можете использовать параметр -p , чтобы выводить отчет об использовании памяти в процентном соотношении:

Следующая команда будет выводить итоговые показатели в конце каждого столбца выходных данных:

Кроме того, есть специальные опции для графических сводок, которые вы также можете использовать. В этой секции мы их и рассмотрим.

Вы можете создать гистограмму процессов и их PSS и RSS значений. В приведенном ниже примере мы создаем гистограмму процессов, принадлежащих пользователю root.

Вы имеете возможность создать круговую диаграмму, отражающую процессы и потребление памяти ими на основе PSS или RSS значений. Команда ниже выводит круговую диаграмму для процессов, принадлежащих пользователю root, отражающую ключевые значения.
— — pie означает метку по имени, а опция -s помогает сортировать по значению PSS.

Существует множество других полей помимо PSS и RSS, используемых для маркировки диаграмм.

Чтобы увидеть справку, просто введите smem -h или обратитесь к документации.

Сейчас мы остановимся в smem на этом этапе. Если вы хотите получше разобраться с этим инструментом, посетите страницу руководства.

Читайте также:  Как установить винду вместо линукса

Источник

Как узнать оперативную память Linux

Когда дело доходит до оптимизации производительности системы Linux оперативная память — один из самых важных факторов, на которые нужно обратить внимание. В Linux есть множество утилит для контроля использования этого драгоценного ресурса. Инструменты отличаются друг от друга видом и детальностью предоставляемой информации (например для системы в целом, отдельного процесса или отдельного пользователя) интерфейсом (консольный интерфейс или графический) и режимом работы (интерактивный или пассивный режим).

Ниже представлен небольшой список консольных и графических утилит для проверки количества свободной и используемой оперативной памяти для платформы Linux.

Как узнать оперативную память Linux

1. Файл /proc/meminfo

Простейший способ проверить использование оперативной памяти — посмотреть /proc/meminfo. Это автоматически обновляемый файл, который является источником для таких утилит как free, ps и top. Кроме количества свободной и использованной памяти в /proc/meminfo есть все что можно узнать о памяти. Информация о памяти для конкретного процесса находится по адресу /proc/pid/statm или /proc/pid/status.

2. atop

Утилита atop — основана на ncurses и представляет из себя интерактивный монитор ресурсов. Она показывает в динамическом режиме такие системные параметры: CPU, память, нагрузка на сеть и другие. Также есть подсветка цветом при перегрузке системы. Можно посмотреть топ процессов или пользователей по использованию ими ресурсов, таким образом системный администратор может понять какие процессы или пользователи перегружают систему. Из памяти можно отобразить свободную, кэш, буферизированную и виртуальную. Утилиту сначала надо установить:

sudo apt install atop

И только потом можно использовать:

3. free

Команда free — это быстрый и простой способ посмотреть оперативную память linux получив информацию о её использовании из файла /proc/meminfo. Будет показано общее количество и количество свободной физической памяти и файла подкачки, а также буфера ядра.

4. Системный монитор Gnome

GNOME System Monitor — это приложение с графическим интерфейсом, которое показывает краткую статистику использования системных ресурсов — памяти, процессора, подкачки и сети. Также есть информация по использованию процессора и памяти для каждого процесса. Запустите утилиту и откройте вкладку Ресурсы:

5. htop

Программа htop — основанный на ncurses монитор процессов, который показывает использование процессора и памяти для каждого процесса по отдельности в реальном времени. Здесь можно посмотреть количество резидентной памяти, общий объем памяти для программы, размер библиотек, размер страниц, и количество памяти для всех запущенных процессов. Также на удобной псевдографической диаграмме можно посмотреть сколько памяти занято Linux:

6. KDE System Monitor

Как и у Gnome у KDE есть свое решение, которое помогает узнать использование оперативной памяти Linux. Программа KDE System Monitor очень похожа по функцональности на свой аналог в Gnome. Есть просмотр статистики использования системных ресурсов, а также отображение потребления памяти и процессора напротив каждого процесса.

7. memstat

Утилита memstat полезна для определения какой исполняемый файл, процесс или библиотека использует много оперативной памяти. Утилита определяет количество использованных ресурсов по PID идентификатору процесса. Эту утилиту тоже надо установить:

sudo apt install memstat

8. nmon

Программа nmon — представляет из себя ncurses инструмент для тестирования системы. Можно тестировать центральный процессор, память, диск, ввод\вывод, ядро, файловую систему и сетевые ресурсы в интерактивном режиме. Что касается памяти то можно посмотреть размер оперативной памяти Linux, количество свободной памяти, размер раздела подкачки, кэширование и виртуальную память. И все это в реальном времени. Для установки выполните:

sudo apt install nmon

Чтобы утилита отобразила память поле её запуска надо нажать клавишу M:

Команда ps может показать использование памяти для каждого процесса в реальном времени. Показывается процент используемой памяти (MEM), общее количество виртуальной памяти (VSZ) общий объем физической памяти (RSS) Вы также можете отсортировать список процессов с помощью опции —sort. Например, для сортировки по убыванию rss используйте:

ps aux —sort -rss

10. smem

Команда smem позволяет измерить количество памяти используемое различными процессами и пользователями на основе информации взятой из /proc. Она показывает количество ресурсов в процентном соотношении. Для установки выплните:

Читайте также:  Как использовать mac приложения для windows

sudo apt install smem

Данные могут быть экспортированы в виде диаграмм, таких как круговые графики:

sudo smem —pie name -c «pss»

11. top

Команда top выводит список запущенных процессов в режиме реального времени, а также различные статистические данные для каждого из них. Вы можете сортировать список процессов по использованию памяти.

12. vmstat

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

13. dmidecode

Утилита dmideocde позволяет просматривать информацию об аппаратном обеспечении подключенном к материнской плате компьютера, в том числе и об оперативной памяти. Это чуть ли не единственный способ узнать количество слотов для памяти, количество установленных планок, а также здесь отображается напряжение питания и частота оперативной памяти. Для просмотра информации именно про память выполните:

sudo dmidecode -t 17

14. lshw

Команда lshw тоже позволяет просматривать информацию об оборудовании компьютера, выводит практически аналогичные данные, что и dmidecode, только по русски и в более удобном формате:

sudo lshw -class memory

Выводы

Из этой статьи вы узнали множество способов как узнать оперативную память Linux, как видите, существует просто огромное количество методов в зависимости от ваших потребностей. Я, обычно, смотрю свободную память с помощью утилиты free. А какие инструменты используете вы? Напишите в комментариях!

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

9 комментариев

Ваш сайт все интереснее от стать к статье.

Возможно не совсем в тему. Подскажите пожалуйста почему Linux Mint 17, может не видеть оперативную память? В биосе определяется 2 Гб, Win XP, установленная на этом же компьютере, тоже определяет 2 Гб, Mint, упорно показывает 1. В какую сторону думать?

Даже не знаю. попробуйте поспрашивать на специализированных форумах по аппаратному обеспечению.

Я грешу на опцию ядра highmem, но как проверить не знаю. Может попробывать другую версию ядра, сейчас стоит 3.13.0.24, не подскажите какое ядро лучше поставить?

Ставьте 4.4 или 4.6. Обычно во всех современных дистрибутивах ядро собрано с поддержкой highmem, но можете попробовать пересобрать. Также можно попробовать указать количество памяти в параметрах загрузки ядра с помощью опции mem (в мегабайтах)

Это в файле /boot/grub/grub.cfg?

Здравствуйте! Почему используется виртуальная память, когда ещё физической (озу) достаточно?
В sysctl.conf добавил
vm.swappiness = 10
vm.vfs_cache_pressure = 1000
ОЗУ 8ГБ, при 1-1,5ГБ уже используется swap, хотя должен при 10% свободной. Linux Debian 8. На Ubuntu Server 14.04 LTS эти же настройки работали.

Сервер на debian 14.04
на борту MySQL и nginx с виртуальными хостами
Ужасно тормозят сайты использующие локальную БД (одна страница может открываться до 60 секунд)
При таком раскладе это нормально (дело в нехватки ОЗУ? ведь в кэше 2549976 kB) или ковырять конфиги MySQL?

MemTotal: 4043988 kB
MemFree: 246324 kB
MemAvailable: 2816676 kB
Buffers: 217996 kB
Cached: 2549976 kB
SwapCached: 0 kB
Active: 2036160 kB
Inactive: 1559340 kB
Active(anon): 442784 kB
Inactive(anon): 453880 kB
Active(file): 1593376 kB
Inactive(file): 1105460 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 8388604 kB
SwapFree: 8388352 kB
Dirty: 100 kB
Writeback: 0 kB
AnonPages: 827528 kB
Mapped: 100952 kB
Shmem: 69136 kB
Slab: 166384 kB
SReclaimable: 149268 kB
SUnreclaim: 17116 kB
KernelStack: 2608 kB
PageTables: 11508 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 10410596 kB
Committed_AS: 1655292 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 690176 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 58944 kB
DirectMap2M: 4132864 kB

total used free shared buffers cached
Mem: 3.9G 3.6G 232M 67M 213M 2.4G
-/+ buffers/cache: 1.0G 2.9G
Swap: 8.0G 252K 8.0G

Источник

Оцените статью