Ubuntu server потребление оперативной памяти
I have used top to see the memory usage at the moment. But I would like to monitor the memory usage over a period of time. E.g start monitoring and then execute a few commands, and final stop the monitoring and see how much memory that have been used during the period.
How can I do this on Ubuntu Server?
I guess I could start a cronjob every 5th second or so, and invoke a command that log the current memory usage in a textfile. But what command should I use to get the current memory usage in a format that is easy to log to a text file?
SolarWinds Server and Application Monitor
Один из самых продвинутых серверных мониторов на рынке — SolarWinds Server and Application Monitor (SAM). Хотя инструмент устанавливается только на Windows Server 2016+, но может отслеживать любое оборудование, в том числе Linux-серверы.
Монитор отслеживает производительность сервера, сообщает о проблемах, а также предоставляет некоторые возможности по управлению: позволяет перезапускать сервер, снимать процессы и перезапускать службы, то есть это инструмент не только для мониторинга, но и для администрирования.
Программа лучше подходит для крупных корпораций. Заявлена совместимость с серверами Dell PowerEdge, HP ProLiant, IBM eServer xSeries, Dell PowerEdge Blade, HP BladeSystem, Microsoft Windows Server и VMware vSphere. В то же время SAM мониторит и облачные инстансы AWS и Azure.
Он показывает статистику по времени отклика, загрузке CPU, памяти и др. Отслеживается производительность отдельных приложений: встроена поддержка более 1200 разных приложений. Также проверяется состояние оборудования: использование CPU, нагрузка на диски, энергопитание, статус вентиляторов и т. д. Статусы кодируются цветом от зелёного до красного, чтобы было легко оценить здоровье системы с первого взгляда.
Монитор автоматически определяет новое оборудование и программное обеспечение в вашем кластере, сразу добавляя его на панель мониторинга. Это одна из ключевых особенностей SAM, также как максимальная автоматизация — подготовленные шаблоны для автоматизации регулярных задач по мониторингу и обслуживанию, заготовки для отчётов и уведомлений.
Обычно у таких сервисов имеется бесплатный пробный период, а стоимость может зависеть от набора используемой функциональности. Здесь тоже есть пробный период, а стоимость SolarWinds Server and Application Monitor начинается от 1275 евро в минимальной функциональности.
1. Команда free
Команда free является самой простой и легкой в использовании командой, чтобы проверить использование памяти на Linux. Вот краткий пример
Опция -m отображает все данные в мегабайтах. Общий общий объем оперативной памяти ОС Linux 7976 МБ, установленной в системе, то есть 8 Гб. Колонка used показывает объем оперативной памяти, которая может быть использована на Linux, в нашем случае составит около 6,4 Гб. Загвоздкой здесь является колонки cached и buffers. Вторая строка говорит, что 4,6 Гб свободно. Это свободная память в первой строке с добавлением буферов и объема памяти кэша.
Linux имеет привычку кэшировать для повышения производительности, так что память может быть освобождена и использована при необходимости.
Последняя строка, это подкачка памяти (swap), который в этом случае полностью свободна.
Какую версию Ubuntu выбрать 32 или 64
Ubuntu разрабатывается для нескольких архитектур процессоров. Нас будут интересовать только компьютерные архитектуры 32 бит и 64 бит. Или i386 и amd64.
На данный момент, все современные процессоры поддерживают новую архитектуру - 64 бит. Это улучшенный вариант 32 бит, здесь поддерживается использование памяти больше 4 гигабайт, а также новые инструкции безопасности низкого уровня. Программы, при выполнении в 64-битном режиме занимают больше памяти и дают большую нагрузку на процессор, но и работают быстрее.
Посмотреть какие архитектуры поддерживает ваш процессор в Linux можно командой:
Узнать сколько у вас оперативной памяти вы можете выполнив:
Если у вас больше 4х гигабайт памяти, нужно однозначно выбрать Ubuntu с архитектурой 64 бит. Если же памяти меньше чем 4 Гигабайта, то прироста производительности вы, скорее всего, не почувствуете, но система будет потреблять больше памяти, потому, возможно, лучше использовать 32 битную версию.
Если процессор не поддерживает 64 бит, что наблюдается только на достаточно старых процессорах, то у вас остается только один вариант.
Какую версию Ubuntu выбрать 32 или 64 вы уже знаете. Теперь рассмотрим какие бывают редакции и версии Ubuntu, а затем разберем что и почему вам лучше выбрать.
Ubuntu Studio
Это редакция Ubuntu для музыкантов и тех, кто имеет дело с обработкой медиа, фото, видео и музыки на регулярной основе. Поставляется многими приложениями, кодеками и драйверами для решения этой задачи.
Информация памяти (RAM)
Чтобы узнать аппаратную информацию об установленной оперативной памяти, используйте команду dmidecode. Команда выводит детальную информацию об установленной оперативной памяти.
Информация включает в себя размер (2048MB), тип (DDR2), скорость (667 МГц) и т.д.
Использование памяти
Самый простой способ просмотра текущего использования оперативной памяти — команда free . Выдача без опций выглядит таким образом:
Запуск с ключом -m генерирует выдачу в мегабайтах.
Средняя строка -/+ buffers/cache показывает значение используемой памяти минус сумма буферов/кэша, а также количество свободной памяти плюс сумма буферов/кэша.
Дело в том, что Linux как большинство современных ОС пытается использовать максимальный объём доступной оперативной памяти под буферы и кэш. Поэтому имеет значение вторая строка, которая показывает реальный объём потенциально доступной оперативной памяти для приложений, если игнорировать буферы и кэш. Этот объём будет освобождён автоматически, если он понадобится для приложений.
vmstat
Команда vmstat выводит различную информацию о системе, включая память, файл подкачки, операции ввода-вывода и нагрузку на CPU.
В первой колонке r указано количество активных процессов, во второй — количество процессов в состоянии непрерываемого ожидания.
Колонки si и so показывают объём памяти, которая считывается из файла подкачки и записывается в него, соответственно.
Далее показано количество блоков, которые получены или отправлены на устройство блочного ввода вывода (bi, bo), количество прерываний в секунду, включая таймер (in), количество переключений контекста в секунду (cs) и статистика по CPU: процент времени, затраченного на обработку кода в пользовательском пространстве (us), на обработку кода ядра (sy), в спящем состоянии (id) и ожидании ввода-вывода (wa), а также времени, «украденного» у виртуальной машины (st), то есть когда виртуальный CPU ожидает действия реального CPU, когда гипервизор обслуживает другой виртуальный процессор.
Флаг -S M активирует выдачу в мегабайтах. Запуск с опцией -s показывает общую статистику.
Если вам необходимо круглосуточно отслеживать состояние сервера (память, CPU, свободное место, производительность, время отклика и проч.), то можно воспользоваться бесплатным или платным сервисом мониторинга. Таких сервисов много, вот небольшой список в алфавитном порядке:
(бесплатная адаптация Nagios Core)
(бесплатная версия называется Nagios Core)
(бесплатно)
(бесплатный системный монитор)
Для примера, рассмотрим три относительно популярных сервиса для мониторинга.
Ubuntu Kylin
Редакция Ubuntu специально разработанная для китайских пользователей. Она по умолчанию включает поддержку китайского языка и ещё несколько вещей, необходимых для Китая. В качестве рабочего окружения используется форк MATE под названием UKUI. И больше ничего.
- Одноядерный процессор с частотой больше 1 ГГц.
- Оперативная память - 1 Гб.
- Место на диске - 8 Гб.
Ubuntu Server
- Оперативная память: 1 Гб.
- Процессор: 1 ГГц или лучше.
- Место на диске: 2,5 Гб.
- Монитор с разрешением 640х480.
Сетевой трафик
nethogs
nethogs — самая простая утилита для просмотра, сколько трафика приходится на каждую службу. На Ubuntu утилита устанавливается следующей командой:
Затем её можно запустить без ключей. Выдача простая:
Есть всего несколько опций для изменения выдачи:
- m: переключение между kb/s, kb, b, mb
- r: сортировка по полученному трафику.
- s: сортировка по отправленному трафику
- q: выход
IPTraf
IPTraf — ещё один способ мониторинга сетевого трафика, с большим количеством опций. Установка на Ubuntu:
Эта утилита предлагает выбрать один из интерактивных интерфейсов:
Например, для обзора всего сетевого трафика выбираем первый пункт меню:
Чтобы IP-адреса резолвились в домены, нужно в конфигурации выбрать пункт 'Reverse DNS lookups'.
Вместе просмотром трафика по портам есть вариант просмотра трафика по сервисам (опция 'TCP/UDP service names'). С обеими включёнными опциями выдача будет выглядеть примерно так:
Есть ещё несколько других интерфейсов, которые можете изучить самостоятельно.
netstat
Утилита netstat — очень гибкий и мощный инструмент для сбора сетевой информации.
По умолчанию netstat выдаёт список открытых сокетов:
Если добавить опцию -a , он покажет список всех портов:
Флаги -t или -u фильтруют TCP- или UDP-соединения, соответственно. Флаг -s выводит статистику. Для постоянного обновления выдачи нужно запускать команду с ключом -c .
Редакции Ubuntu
Кроме обычной версии Ubuntu, Canonical разрабатывает и поддерживает еще несколько редакций. Эти редакции отличаются только окружением рабочего стола, а некоторые и поставляемым программным обеспечением. Окружение рабочего стола играет очень большую роль именно оно отвечает за то, сколько оперативной памяти будет потреблять ваша система, сколько будет выдавать нагрузки на процессор и жесткий диск.
Давайте рассмотрим каждую из редакций, их особенности и назначение, чтобы вы знали как выбрать Ubuntu.
Использование ресурсов
Один из самых инструментов для проверки использования ресурсов процессами. Утилита top выдаёт простую таблицу с текущим потреблением ресурсов, где сверху указаны процессы с наибольшей нагрузкой.
Непосредственно перед таблицей приводится некоторая общая статистика, включая среднюю нагрузку на CPU за последнюю минуту, 5 минут и 15 минут. Также показано потребление памяти, файла подкачки и состояние процессов.
Список обновляется в реальном времени: можете вывести его на второй монитор и наблюдать постоянно.
Хотя утилита top поставляется почти с каждым дистрибутивом, в большинстве репозиториев также доступна для скачивания улучшенная версия htop .
Установка htop на Ubuntu:
Здесь мы видим почти такую же выдачу, но с подсветкой разными цветами и более интерактивную:
Верхняя часть здесь яснее и лучше организована.
Вот некоторые ключи для более эффективного использования htop :
- M: сортировка процессов по использованию памяти
- P: сортировка процессов по использованию CPU
- ?: справка
- k: прекратить текущие/помеченные процессы
- F2: настройка (здесь можно выбрать опции для отображения)
- /: поиск процессов
Edubuntu
Это партнерский проект на основе Ubuntu предназначенный для образования и школ, он поставляется с большим количеством приложений образовательного назначения и стилизован для детей.
Navicat Monitor
Другой пример — Navicat Monitor, который специализируется на мониторинге баз данных. Он поддерживает MySQL, MariaDB, SQL Server, а также облачные СУБД, такие как Amazon RDS, Amazon Aurora, Oracle Cloud, Google Cloud и Microsoft Azure.
Стандартный вид
Компактный вид
Монитор отслеживает время выполнения конкретных запросов, запуская их с заданным интервалом.
Кроме запросов к БД, периодически отправляются и другие запросы к серверам для мониторинга показателей производительности системы ввода-вывода, сети и проч. Собирается статистика по использованию CPU, загрузке памяти и другие стандартные метрики.
Архитектура Navicat Monitor не предусматривает установку программного обеспечения на объекты мониторинга
Минимальная цена Navicat Monitor — $32,99 за один токен в месяц (один токен соответствует мониторингу одного сервера или четырёх баз Azure). Есть полнофункциональная пробная версия на 14 дней.
Как установить 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
2. /proc/meminfo
Следующий способ проверить использование памяти, прочитать файл /proc/meminfo. Знайте, что файловая система /proc не содержит реальных файлов. Они являются виртуальными файлами, которые содержат динамическую информацию о ядре и системы.
Проверьте значения MemTotal, MemFree, Buffers, Cached, SwapTotal и SwapFree. Они указывают на одни и те же значения, использования памяти в команде free.
4. команда top
Команда top обычно используется для проверки памяти и процессора для каждого процесса. Тем не менее она также сообщает общее использование памяти и может быть использована для контроля общего использования памяти. Вывод результата имеет необходимую информацию. Вот пример вывода
Проверьте KiB Mem и KiB Swap в заголовке. Они указывают на общую, используемую и свободную объем памяти. Информация буфера и кэша присутствует здесь тоже, как и команды free.
Выводы
Надеюсь теперь у вас сложилась вся картина редакций Ubuntu, и теперь вы знаете какую версию Ubuntu выбрать для своего компьютера. Если у вас остались вопросы или есть замечания по статье, пишите в комментариях!
Добавить в избранное
Главное меню » Операционная система Linux » 5 команд для проверки использования памяти на Linux
Ubuntu
Это основной дистрибутив, подходит для большинства современных компьютеров. Он поставляется вместе с окружением рабочего стола Gnome, и оконным менеджером Mutter. Изначально в Ubuntu использовалось окружение Gnome в качестве окружения по умолчанию, потом его заменили на оболочку Unity на основе Gnome и в Ubuntu 18.04 было принято решение вернуться обратно к Gnome. Если вы новичок и вам нужно выбрать Ubuntu, лучше выбрать эту.
Рекомендованные системные требования:
- Оперативная память: 4 Гб.
- Двухъядерный процессор с частотой 2 ГГц.
- Место на диске: 25 Гб.
- Экран с разрешением 1024x768 пикселей.
- Видеокарта с поддержкой OpenGL 1,4. Подходят все видеокарты, выпущенные за последние 6 лет.
Mythbuntu
Это редакция Ubuntu не совсем для компьютера. Он создан для создания медиацентра. Включает в себя множество драйверов для TV тюнеров, TV-карт, и поставляется вместе с приложением медиацентра MythTV. В качестве окружения рабочего стола используется Xfce, системные требования такие же, как и для Xubuntu.
Какую редакцию выбрать?
Как видите, редакций в Ubuntu предостаточно. Если оборудование позволяет, то вы можете выбирать версию Ubuntu по своему вкусу. Если вы новичок - выбирайте Ubuntu с Unity, она используется большинством пользователей Ubuntu и разрабатывается Canonical также по ней больше документации.
Не нравится Unity и вы хотите интерфейс, похожий на Mac, можете попробовать редакцию Gnome, хотите более привычный и похожий на Windows интерфейс - выбирайте KDE. Более подробный обзор окружений рабочего стола KDE vs Gnome vs XFCE можно прочитать в отдельной статье.
Если же ваше оборудование слишком слабое для таких окружений, остается выбирать между XFCE и LXDE. MATE потребляет почти столько же ресурсов, как и Gnome 3.
Если вы гонитесь за производительностью, вам будут интересны следующие графики:
Потребление ресурсов процессора разными редакциями Ubuntu, 32 и 64 бит:
График показывает нам три варианта: как системы работают без приложений, только с запущенными офисными программами и с интенсивной нагрузкой. Меньше всего при любых условиях загружает систему Xubuntu, больше всего Ubuntu и Ubuntu Gnome. Что касается архитектур, то 64 битные системы работают в целом эффективнее.
Второй график показывает использование памяти разными редакциями Ubuntu:
Здесь ситуация та же, для слабого оборудования лучше выбрать Xubuntu. Что же касается всех остальных, то их потребление памяти сильно не отличается. А с архитектурами здесь все наоборот, 64 бит, потребляет больше памяти.
Графическая производительность окружений:
На графике отображено FPS, которое могут выдать каждое из окружений, чем больше тем лучше. Из теста мы видим, что с задачей лучше всего справляется Gnome, хуже - KDE. Если вас интересует вопрос какой ubuntu выбрать для ноутбука, по графиках вы можете оценить, какой из них дает лучшую производительность.
Резюме
Все вышеперечисленные команды работают с терминала и не имеют графического интерфейса. При работе на рабочем столе с графическим интерфейсом, гораздо проще в использовании графический инструмент с графическим выводом. Наиболее распространенные инструменты gnome-system-monitor в gnome и
KSysguard в KDE. Оба предоставляют информацию об использовании ресурсов о CPU, RAM, обмена и пропускной способности сети в графическом режиме и легко понятном визуальном выводы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Kubuntu
Это редакция Ubuntu с окружением рабочего стола KDE. KDE - очень мощное, тяжеловесное и красивое окружение. Вместе с системой поставляется множество приложений, разработанных на Qt, GTK приложения устанавливать можно, но ориентируйтесь на то, что работать вам придется в основном только с Qt программами. Спонсируется Kubuntu компанией Blue Systems, Canonical перестала спонсировать разработку еще в 2012 году, но это все еще официальная редакция и для нее разрабатываются обновления и собираются установочные образы.
- Оперативная память: 1 Гб.
- Процессор с частотой 1 ГГц.
- Место на диске 4 Гб.
- Экран с разрешением 1024x768.
Рекомендованные системные требования:
- Больше 1 Гб оперативной памяти.
- Двухъядерный процессор с частотой больше 1 ГГц.
- Место на диске 10 Гб.
- Экран с разрешением больше 1024х480.
Ubuntu Budgie
Эта редакция Ubuntu стала официальной совсем недавно. Как следует из названия, здесь в качестве окружения по умолчанию используется окружение рабочего стола Budgie, разрабатываемое командой Solus Linux. Окружение выглядит похожим на Gnome, но в то же время реализует некоторые элементы, похожие на MacOS, например док панель и лаунчер приложений.
Минимальные системные требования:
- Процессор: 1.5 ГГц.
- Оперативная память: 2 Гб.
- Место на диске 60 Гб.
Рекомендованные системные требования:
- Процессор: больше 2 ГГц.
- Оперативная память: 4 Гб.
Место на диске
Стандартная утилита для просмотра информации о смонтированных разделах — это df . Она выводит список подключенных устройств и информацию о занятом месте.
По умолчанию выдача в байтах, что не очень удобно. Параметр -h активирует выдачу в мегабайтах и гигабайтах:
Для просмотра всего места на всех дисках добавляем опцию --total .
Утилита df позволяет быстро получить общий обзор. Для более детальной информации лучше подходит программа du , которая анализирует текущую директорию и любые поддиректории. Выдача по умолчанию выглядит так:
Опять же, более удобная для восприятия выдача включается ключом -h .
Просмотр размеров файлов и директорий включается флагом -a , общий итог — флагами -c (подробности и сумма) и -s (только сумма).
Улучшенные версии
Улучшенные версии df и du называются pydf и ncdu, на Ubuntu они устанавливаются командами apt-get install pydf и apt-get install ncdu . Они организуют красивую выдачу в псевдографике с расцветкой:
Здесь можно перемещаться по файловой системе клавишами со стрелками.
Xubuntu
Xubuntu - это более легкая редакция Ubuntu с окружением рабочего стола XFCE. Она оптимизирована для работы на старых компьютерах. XFCE менее требовательный к ресурсам и работает быстрее чем Gnome или KDE, но имеет более простой интерфейс. Разрабатывается дистрибутив сообществом, но находится в официально поддерживаемых Canonical. Для запуска Xubuntu с LiveCD достаточно 256 Мегабайт ОЗУ.
Минимальные системные требования:
- Оперативная память: 512 Мб.
- Место на диске: 6 Гб.
- Процессор должен поддерживать PAE, поддерживается всеми современными процессорами, впервые появилась в Pentium Pro.
Рекомендованные системные требования:
- Оперативная память: 1 Гб.
- Место на диске 20 Гб.
Использование памяти
В Linux почти все команды без графического интерфейса. При работе на серверах доступа только оболочка. Итак, сегодня мы покажем команды, которые могут быть использованы для проверки использования памяти в системе Linux. Память включает в себя оперативную память и подкачку.
Часто важно проверить использование общей памяти и памяти, используемой в процессе на серверах, а так же неиспользуемые ресурсы. Если вы работаете на веб-сервере, то сервер должен иметь достаточно памяти, чтобы обслуживать посетителей сайта. Если такого не будет, то сайт станет очень медленным или даже стать недоступным, когда будет всплеск трафика, просто потому, что памяти будет не хватать. Тоже самое, как и то, что происходит на настольном компьютере.
Zabbix
Zabbix — это бесплатный опенсорсный инструмент, который отслеживает состояние сети, приложений и самого сервера. Поставляется с готовыми шаблонами для мониторинга популярных серверов и ОС, включая HP, IBM, Lenovo, Dell, Linux-серверы, Ubuntu и Solaris. За годы существования Zabbix сообщество подготовило шаблоны для различных сценариев.
Ключевые модули Zabbix следят за нагрузкой CPU, использованием памяти, уровнем ошибок ввода-вывода, свободным местом на диске, статусе вентиляторов, температурой и характеристиками системы питания. Сетевой модуль проверяет трафик, доступность сети, уровень потерь пакетов, качество TCP-соединений и пропускную способность маршрутизаторов.
Zabbix ведёт список установленного программного обеспечения и версий прошивок, чтобы сигнализировать о несанкционированной установке ПО.
Системный администратор может запрограммировать в Zabbix уведомления по произвольным условиям, а также изменить важность действующих уведомлений. На панели управления можно добавить пользователей — и направлять каждому из них определённые типы уведомлений, а скрипты автоматизации позволяют автоматически заводить задачи и присваивать их сотрудникам.
Благодаря функции удалённого доступа и управления Zabbix можно назвать хорошим инструментом администрирования сервера.
Надёжный сервер в аренду и правильный выбор тарифного плана позволят меньше отвлекаться на неприятные уведомления мониторинга — всё будет работать без сбоев и с очень высоким uptime!
Вы новичок и определились с дистрибутивом, решили устанавливать Ubuntu. Но сразу же заметили, что этих Ubuntu есть несколько видов. Есть разные редакции Ubuntu с разными окружениями стола Unity, Gnome, XFCE, к тому же есть две основные архитектуры - 32 и 64 бит. Во многом ваш выбор будет зависеть от используемого вами оборудования, его мощности и поддержки ядром Linux.
Еще возникает вопрос какую версию дистрибутива ставить, самую последнюю, предыдущую или может еще раньше, потому что новая менее стабильная, все эти вопросы мы разберем в сегодняшней статье. Я попытаюсь полностью ответить какую версию Ubuntu выбрать для вашего компьютера или ноутбука.
Lubuntu
Очень похож на Xubuntu, и преследует те же цели - использование на старых компьютерах. Здесь используется окружение рабочего стола LXDE, которое еще более эффективное, легковесное, быстрое и энергосберегающее, чем XFCE. Тоже поддерживается сообществом.
Минимальные системные требования:
- Оперативная память 512 Мб
- Процессор не ниже Pentium 4, Pentium M или AMD K8
Рекомендованные системные требования:
Ubuntu MATE
Это новая редакция Ubuntu, которая присоединилась к официальным в 2015 году. Здесь используется окружение MATE, форк продолжающий развивать ветку Gnome 2. Ориентирован в тоже на работу со слабыми компьютерами.
- Оперативная память: 512 Мб
- Процессор: выше Pentium III, 750 МГц
- Место на диске: 8 Гб
- Экран: 1024 x 768
Рекомендованные системные требования:
- Оперативная память: 2 Гб
- Процессор 1.6 ГГц
- Место на диске: 16 Гб
- Экран: 1366 x 768
Как использовать 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 показывают текущее потребление памяти для каждого процесса, нагрузку на CPU, свободное место на диске и статистику по трафику.
Кроме того, есть платные и бесплатные сервисы, которые круглосуточно отслеживают состояние вашего сервера, регистрируют сбои в его работе или в сетевой доступности, а также проверяют производительность приложений.
3. vmstat
Команда vmstat с опцией -s, показывает статистику использования памяти почти как команда Proc. Вот пример
Верхние несколько строк указывают общий объем памяти, объем свободной памяти и т.д., и так далее.
5. Команда htop
Подобно команды free, команда htop также показывает использование памяти наряду с другими деталями.
Заголовок в верхней части показывает использование центрального процессора вместе с оперативной памятью и использование своп с соответствующими цифрами.
13 Answers 13
I recommend combining the previous answers
Note that Linux likes to use any extra memory to cache hard drive blocks. So you don't want to look at just the free Mem . You want to look at the free column of the -/+ buffers/cache: row. This shows how much memory is available to applications. So I just ran free -m and got this:
I know that I'm using 1528 MB and have 2170 MB free.
Note: To stop this watch cycle you can just press Ctrl + C .
Thanks, that's informative. But on the used column you first have 2896 and then 1528 for buffers, doesn't this mean that you are using 2896 + 1528 ?
Mem: used is your total used memory. -/+ buffers/cache: used is your total used memory minus buffers and cache. I know the output looks funny, but no arithmetic is required here. You're just looking for used/free in the -/+ buffers/cache row.
@cbradsh1 You can just do free -h , e.g. watch -n 5 free -h to get "human readable" output, e.g. 2.1G instead of 2170 in the output.
I think htop is the best solution.
This way you will notice what programs is using most RAM. and you can easily terminate one if you want to. Here's a screenshot!
I know in the comments above, you mentioned wanting a one-line snapshot from free, but I figured others might find this useful.
The only part I don't like is the fact that the script claims to require root privileges. I haven't had an opportunity yet to see exactly why this is the case.
I wonder whether memory is shared between threads. It is shared between processes, isn't it? At least on Windows.
So this case, the shared memory refers to pages that are mapped by multiple processes in the form of shared libraries. Additionally within the context of a multi-threaded applications the entire process memory space is accessible by all threads in that process.
@ThomasWeller: Yes, threads always share memory, whereas processes may share some or all of it under certain conditions.
Use the free command. For example, this is the ouput of free -m :
free -m | grep /+ will return only the second line:
The watch command may be useful. Try watch -n 5 free to monitor memory usage with updates every five seconds.
Thanks, this was great! However, I would prefer to get the memory usage on a single line, so it's easy to log to a text file.
You can do it using cat /proc/meminfo .
The free command takes its information from /proc/meminfo and presents them in a compact way. Use free -h for human-readable output.
I just found this solution and it works very well, creating a graphical interface through the CLI:
+1 for the amazing work on the graphical interface. BTW, the author now advises to use the Python version.
For visual monitoring of overall RAM usage, if you use Byobu, it will keep your memory usage in the lower right-hand corner of the terminal and will run while you are in any terminal session.
As you can see from screenshot, my virtual machine has a 1h3m uptime, 0.00 load, has 2.8GHz (virtual) processor and 994MB (21%) of the RAM available on the system.
Single line solution and output:
Here is an example of the expected output:
I would use Cacti. This will graph your memory usage etc over a period of time, and you will be able to check on usage using your web browser.
Monitoring Memory Usage
I'm more in line with one of the preceding posts that mentioned Cacti as a great way to monitor memory usage. However, since it appears cacti is no longer popular in the mainstream, there is an alternative graphing application called Graphite.
Graphite is relatively easy to install on a ubuntu server and to install it, you can check out this link for the easy to follow installation procedures.
After graphite has been installed, now, you can send memory metrics to it, at whichever interval you wish; every 5 seconds, every minute, every hour. etc.
To graph memory metrics, as already suggested in previous posts, you can write your own script using system tools to gather the necessary memory information. Or, you can use a prewritten snmp plugin that'll do all the work for you.
If you wish to write your own memory script, it'll be wise to ensure you account for buffered and cached memory when calculating used memory, otherwise, you'll end up gathering false data.
If you wish to instead utilize an snmp plugin that already does all the necessary calculations for you, here's a link to one that works pretty well: checkMemoryviaSNMP.
Pros of SNMP:
I have snmp installed on all the remote nodes I monitor. This allows me to monitor all my systems from one central server(s), without having to copy or put a plugin on the remote nodes.
Cons of SNMP:
You'd have to ensure the snmp agent is installed on each of the remote nodes you wish to monitor memory on. However, this installation will be a one time deal. If you're using automation tools such as chef or puppet or similar tools in your environment, then this isn't a problem at all.
Configuration of the SNMP agent on the remote node(s):
After the snmp agent has been installed, simply vi the /etc/snmpd/snmpd.conf file and add this line to it:
Then restart the snmpd agent, with:
Then, on your central server, from which you instead to monitor all your other servers, you can run the following command:
Управление памятью в вопросах мониторинга ее использования – одна из самых важных областей в вашей Linux системе. В различных дистрибутивах Linux существует великое множество инструментов для мониторинга использования памяти. Работают они тоже по разному, но в этой статье мы рассмотрим установку и использования такого инструмента как smem.
Smem – это инструмент предоставления отчетов в командной строке, который выдает пользователю различные сводки по использованию памяти в системе Linux. В smem есть одна уникальная вещь, которая отличает его от традиционных инструментов мониторинга памяти. Дело в том, что smem сообщает вам PSS (Proportional Set Size), то есть он дает более полноценное представление о распределении памяти между приложениями и библиотеками в настройках виртуальной памяти.
Существующие традиционные инструменты сосредоточена главным образом на считывании RSS (Resident Set Size), т.е. на стандартной мере мониторинга использования памяти в физической схеме памяти, которая тем не менее имеет тенденцию переоценивать использование памяти приложениями.
С другой стороны PSS рационально оценивает использование памяти, определяя справедливое ее распределение между приложениями и библиотеками в схеме виртуальной памяти.
Вы можете обратиться к этому руководству (о PSS и RSS памяти), чтобы понять механизм потребления памяти в системе Linux. А теперь давайте перейдем к рассмотрению некоторых особенностей smem.
Особенности Smem:
- Листинг обзора системы;
- Листинг и фильтрация по процессам, маппингам и пользователям;
- Использование данных из файловой системы /proc;
- Настраиваемые столбцы листинга для нескольких источников данных;
- Конфигурируемые блоки вывода и процентные показатели;
- Простота настройки заголовков и итогов в списках;
- Использование моментальных снимков из зеркал каталогов или сжатых tar файлов;
- Встроенный механизм генерации диаграмм;
- Облегчённый инструмент захвата, используемый во встроенных системах.
Читайте также: