- Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
- Свободная и занятая оперативная память
- Команда free
- Команда vmstat
- Команда top
- Команда htop
- Файл /proc/meminfo
- Тип памяти и частота
- Заключение
- 5 команд для проверки использования памяти на Linux
- Использование памяти
- 1. Команда free
- 2. /proc/meminfo
- 3. vmstat
- 4. команда top
- 5. Команда htop
- Информация памяти (RAM)
- Резюме
- Чем занято место на диске Linux
- 1-й способ. Утилита du — подсчет занимаемого места.
- 2-й способ. Утилита ncdu — анализ занятого места и его освобождение
- 3-й способ. Графические утилиты.
- Как понять на что расходуется память в linux?
- Linux, кто съел всю память?
Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
В этой статье мы рассмотрим, как получить информацию об оперативной памяти (RAM) в Linux.
Мы воспользуемся утилитами командной строки доступными для большинства Linux дистрибутивов.
Свободная и занятая оперативная память
Для получения информации о количестве свободной и занятой оперативной памяти в Linux можно использовать различные утилиты и команды. Рассмотрим несколько распространенных способов.
Команда free
Команда free очень простая, она выводит информацию о общем количестве оперативной памяти, о количестве занятой и свободной памяти, а также об использовании файла подкачки.
По умолчанию объем памяти выводится в килобайтах. Используя опции, можно выводить объем памяти в других форматах. Некоторые опции:
- -m — в мегабайтах
- -g — в гигабайтах
- -h — автоматически определить формат
Команда vmstat
Команда vmstat выводит различную статистику по использованию памяти. Используя ключ -s можно вывести подробную статистику в табличном виде.
Команда top
top — это утилита командной строки, которая используется для мониторинга процессов и используемых ресурсов компьютера.
Запуск утилиты top :
В заголовке выводится информация об использованной оперативной памяти.
Команда htop
Утилита htop, также как и top, используется для мониторинга ресурсов и процессов.
Для установки утилиты htop в Ubuntu Linux (Linux Mint и других Ubuntu/Debian-дистрибутивах) выполните команду:
Запуск утилиты htop :
Файл /proc/meminfo
Описанные выше команды, в качестве источника информации используют системные файлы из файлов, хранящихся в виртуальной файловой системе /proc . В файле /proc/meminfo содержится информация об использовании памяти. Выведем содержимое файла /proc/meminfo :
Тип памяти и частота
Рассмотрим, как получить информацию об установленных в компьютер модулях оперативной памяти. Воспользуемся командной dmidecode
Используем следующую команду:
В выводе команды будет информация о слотах оперативной памяти. Для каждого слота отображается установленный модуль оперативной памяти, его тип (поле Type ), размер (поле Size ), скорость/частота (поле Speed ) и другая информация.
В зависимости от системы и оборудования не всегда удается получить все данные, поэтому некоторые поля могут быть пустыми или иметь надписи Not provided/Unknown.
Заключение
Мы рассмотрели различные способы для просмотра информации о доступной и занятой оперативной памяти, а также показали, как вывести информацию об установленных модулях оперативной памяти.
Для отслеживания использования ресурсов компьютера существует множество графических программ. Найти их можно в нашем каталоге программ для Linux в разделе Система/Мониторинг.
Источник
5 команд для проверки использования памяти на Linux
Главное меню » Операционная система Linux » 5 команд для проверки использования памяти на Linux
Использование памяти
Часто важно проверить использование общей памяти и памяти, используемой в процессе на серверах, а так же неиспользуемые ресурсы. Если вы работаете на веб-сервере, то сервер должен иметь достаточно памяти, чтобы обслуживать посетителей сайта. Если такого не будет, то сайт станет очень медленным или даже стать недоступным, когда будет всплеск трафика, просто потому, что памяти будет не хватать. Тоже самое, как и то, что происходит на настольном компьютере.
1. Команда free
Команда free является самой простой и легкой в использовании командой, чтобы проверить использование памяти на Linux. Вот краткий пример
Опция -m отображает все данные в мегабайтах. Общий общий объем оперативной памяти ОС Linux 7976 МБ, установленной в системе, то есть 8 Гб. Колонка used показывает объем оперативной памяти, которая может быть использована на Linux, в нашем случае составит около 6,4 Гб. Загвоздкой здесь является колонки cached и buffers. Вторая строка говорит, что 4,6 Гб свободно. Это свободная память в первой строке с добавлением буферов и объема памяти кэша.
Linux имеет привычку кэшировать для повышения производительности, так что память может быть освобождена и использована при необходимости.
Последняя строка, это подкачка памяти (swap), который в этом случае полностью свободна.
2. /proc/meminfo
Следующий способ проверить использование памяти, прочитать файл /proc/meminfo. Знайте, что файловая система /proc не содержит реальных файлов. Они являются виртуальными файлами, которые содержат динамическую информацию о ядре и системы.
Проверьте значения MemTotal, MemFree, Buffers, Cached, SwapTotal и SwapFree. Они указывают на одни и те же значения, использования памяти в команде free.
3. vmstat
Команда vmstat с опцией -s, показывает статистику использования памяти почти как команда Proc. Вот пример
Верхние несколько строк указывают общий объем памяти, объем свободной памяти и т.д., и так далее.
4. команда top
Команда top обычно используется для проверки памяти и процессора для каждого процесса. Тем не менее она также сообщает общее использование памяти и может быть использована для контроля общего использования памяти. Вывод результата имеет необходимую информацию. Вот пример вывода
Проверьте KiB Mem и KiB Swap в заголовке. Они указывают на общую, используемую и свободную объем памяти. Информация буфера и кэша присутствует здесь тоже, как и команды free.
5. Команда htop
Подобно команды free, команда htop также показывает использование памяти наряду с другими деталями.
Заголовок в верхней части показывает использование центрального процессора вместе с оперативной памятью и использование своп с соответствующими цифрами.
Информация памяти (RAM)
Чтобы узнать аппаратную информацию об установленной оперативной памяти, используйте команду dmidecode. Команда выводит детальную информацию об установленной оперативной памяти.
Информация включает в себя размер (2048MB), тип (DDR2), скорость (667 МГц) и т.д.
Резюме
Все вышеперечисленные команды работают с терминала и не имеют графического интерфейса. При работе на рабочем столе с графическим интерфейсом, гораздо проще в использовании графический инструмент с графическим выводом. Наиболее распространенные инструменты gnome-system-monitor в gnome и
KSysguard в KDE. Оба предоставляют информацию об использовании ресурсов о CPU, RAM, обмена и пропускной способности сети в графическом режиме и легко понятном визуальном выводы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Чем занято место на диске Linux
Ситуация, когда на разделах Linux заканчивается место может быть очень часто встречаемой. На вебсерверах такая проблема возникает еще чаще, т.к. большое количество посетителей и ошибки в программах могут приводить к огромному росту лог-файлов и т.д. и появляется необходимость определить чем занято место на диске Linux, чтобы удалить ненужные данные и освободить место. Есть несколько вариантов как это сделать.
1-й способ. Утилита du — подсчет занимаемого места.
Воспользоваться встроенной утилитой du. Сделать это достаточно просто. Например, чтобы определить в текущей папке занимаемое место всеми подкаталогами и файлами, нужно использовать команду:
du -sm *
Вывод этой команды будет примерно такой:
Немного поясню использованные ключи:
s — означает, что нужно вывести суммарное занимаемое место, т.е. например, не показывать каждый файл из папки folder1 и занимаемое им место, а показать, сколько всего места занимают все файлы в папке folder1
m — означает вывод данных в Мб, можно использовать вместо него ключи b (в байтах) и k (в килобайтах)
* — означает подсчитать все объекты в текущем каталоге. Если не указать * , то будет подсчитано все занимаемое место текущего каталога. Так же, можно подсчитать сколько места занимает конкретная папка со всеми файлами и подкаталогами в ней, для чего нужно написать вместо * название нужного каталога.
Когда папок и файлов много, можно отсортировать результаты, чтобы было проще определить, какая папка или файл заняли больше всего места:
du -sm * | sort -n
Эта простая команда поможет вам выяснить, чем занято место в конкретной папке или на всем разделе Linux. Команда универсальна, проста в использовании и есть в любых дистрибутивах Linux.
2-й способ. Утилита ncdu — анализ занятого места и его освобождение
Есть так же и другие способы определить чем занято место на диске, например, очень удобная в плане анализа занятого места — утилита ncdu. Установить ее можно, например, так:
- Для Debian систем (rpm-пакеты) (в т.ч. Ubuntu) командой apt-get install ncdu
- Для Red Hat систем (dpkg-пакеты) командой yum install ncdu
Дальше просто запустите ncdu и подождите, когда она подсчитает занимаемое место. По-умолчанию программа посчитает размеры папкой текущей папки, из которой программа была запущена. Если нужно посчитать какую-то другую папку, просто добавьте к команде путь к папке, например, так: ncdu /var/www. Если нужно посчитать занимаемое место на всем диске, можно использовать ncdu /.
Программа показывает занимаемое папками место, позволяет заходить в них и сразу видеть сколько подпапки занимают места. Так же в этой утилите можно выполнять различные действия над файлами и папками. Получить справку по клавишам управления можно нажав «?«. Ниже приведу список некоторых из клавиш управления:
- d — удалить выбранный файл или папку с файлами;
- n — отсортировать файлы и папки по имени;
- s — отсортировать файлы и папки по объему занимаемого места;
- t — показывать сначала папки, затем файлы;
- g — режим отображения (в процентах, графически, комплексно);
- a — режим отображения (размер файла, занятое место на жестком диске)
- e — включить/отключить отображение скрытых файлов;
- i — показать дополнительную информацию о папке или файле;
- r — заново пересчитать занимаемое место;
- q — выйти из программы;
Программа очень удобная, простая и выполняет задачу по анализу и освобождению свободного места полностью, рекомендую ее к использованию.
3-й способ. Графические утилиты.
Есть большое количество графических программ, которые позволяют делать примерно то же, что ncdu, только в графике. В Ubuntu, например, есть графическая программа, которая находится в Приложения > Системные утилиты > Анализатор использования диска. Кроме того, есть много и других программ. Приведу небольшой список, чтобы вы могли их попробовать и выбрать, какая больше нравится:
- В системах с Gnome обычно есть утилита Baobab, которая графически покажет занимаемое папками место, так же выводит диаграмму;
- Утилита KDirStat для KDE (WinDirStat для Windows) — в отличие от Baobab показывает вместо диаграммы прямоугольники, размер которых соответствует занимаемому папками пространства;
- Gd Map — аналог KDirStat для Gnome;
- Filelight и Philesight — аналоги Baobab (показывает папки в виде диаграммы).
Вот пожалуй, основной набор способов определения занятого места на дисках Linux. Можно конечно найти еще множество других способов, здесь я привел самые основные и распространенные.
Источник
Как понять на что расходуется память в linux?
Есть процесс, который по данным top потребляет 13,3% оперативной памяти. Однако по данным free используется памяти — 87,1%. Как понять куда ушла остальная память?
Ниже скриншот вывода top с сортировкой по RES, на котором видно, что процесс flussonic потребляет 13,3%, потребление памяти всеми остальными процессами — незначительное и не может влиять на значение Used, также я на всякий случай сделал в top сортировку по VIRT и обнаружил ещё один процесс, запрашивающий большие объёмы виртуальной памяти — Flussonic-thumb, но резидентная память у него всего 0,1%
Дополнение. Чтобы не возникал вопрос «как сопоставить отображаемую разными утилитами информацию про использование памяти», при дальнейшем исследовании проблемы я решил не использовать утилиты free, top и smem, а информацию получал из /proc, для процессов flussonic и flussonic-thumbnailer я получал данные об используемой резидентной и виртуальной памяти из /proc/»$PID»/status, данные получались каждые 5 минут и по ним строился график.
Сейчас, спустя месяц дополняю вопрос. По графику видно, что есть некая внутидневная динамика, используемая резидентная память процесса flussonic в зависимости от дневной нагрузки сервера колеблется от 3.5 до 5 Гбайт, но на более долгих временных прмежутках видно что ухода за эти пределы нет. А вот значение Used, которое вычислялось из данных в /proc за это же время увеличилось с 24 до 28 Гбайт, а если взять график за 3 месяца, то видно, что Used увеличилось с 12 до 28 Гбайт, память «течёт», причём графики процессов flussonic и flussonic-thumbnailer доказывают, что текут вовсе не самые нагруженные процессы, тогда что течёт, ядро? Как решить эту задачу?
Источник
Linux, кто съел всю память?
Столкнулся с проблемой, а точнее, некоторым моим не пониманием работы Linux систем. Зайдя на один из серверов я увидел следующее:
В этой картине меня привлекло значение потребляемой памяти. А именно написано, что из 16 Гб оперативки используется 14 Гб. Но на сервере крутится всего один маленький сайтик, и он не может съедать столько памяти.
Дальше я проверил этот результат командой:
и получил такую же картину:
Это было очень подозрительно.. Чтобы определить какие процессы, сколько съедают памяти я использовал следующую команду (описание тут: Как узнать какой процесс ест больше всего памяти в Linux):
Результатом, я остался не доволен, потому что, в совокупности все процессы, съедали, что-то около 2-х Гб:
Тогда я полез в поиск и нашел скрипт ps_mem.py, который подсчитывает кол-во памяти по процессам. Скрипт написан на питоне, пост про него тут: Подсчет потребляемой памяти процеcсами в Linux. Но он так же показывал, что все вместе процессы, не потребляют столько памяти.
Дальше я подумал, что проблема именно с ядром, и полез искать инфу, по ключевику: «linux ram size is not correct«, долго ли коротко, но нашел я вот такой ответ, на одно из сообщений:
As I understand it, on Linux ‘used’ memory is split into ‘active’ and ‘inactive’.
Active memory is memory which is currently allocated to a process and in use by it.
Inactive is memory that has been allocated to a process but is no longer in use by it (it has been freed). The allocator puts this memory on one side for later use, but doesn’t empty it. If the same data that is in that memory block is requested again it just re-allocates that memory block to the process. If a block of memory is requested and there is no ‘clean’ memory left it starts re-allocating this ‘dirty’ memory.
Examining /proc/meminfo can show you how much of your ‘used’ memory is active and how much is inactive.
Вкратце написано следующее: в Linux системах память делится на активную и неактивную. Неактивная это та, что выделена процессу, но больше не используется им. Allocator ( выделятор 🙂 ) оставляет эту память для дальнейшего использования, и не очищает её. Если данные расположенные в этой памяти понадобятся он их сразу вернет. Если же другому процессу, потребуется эта память и не будет «чистой памяти», то тогда будет распределятся неактивная память.
Другими словами, используется оптимизация, и данные без надобности не выкидываются из памяти, но при необходимости, эта память будет выделена процессам. Отсюда делаем соответствующий вывод: если большая часть памяти, является неактивной, то, все ок.
Проверить кол-во неактивной памяти можно так:
Источник