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

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

ответа

Лучший ответ

Я также столкнулся с этой проблемой с моим рабочим столом Ubuntu

free -m

Даже эти основные команды показали, что невозможно выделить память. В ходе расследования выяснилось, что система использует всю память для кэширования и не освобождает память. Это называется Cache Ballooning и решается путем очистки кеша.

7 Japneet Singh Chawla 21 Июн 2018 в 04:31

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

Если нет, то в моем случае проверьте свой ulimit, набрав ulimit -a, чтобы убедиться, что вы достигли предела максимального количества открытых файлов (в основном вызванного некоторыми определенными процессами, которые занимают много файловых дескрипторов). В этом случае настройка ulimit решит вашу проблему.

1 Cody 14 Июн 2017 в 04:51

У меня такая же проблема. В моем случае, узнав о деталях памяти с помощью « proc / meminfo », я обнаружил идентификаторы, что они использовали много ресурсов ЦП и памяти с « TOP ». После этого я проверил, как долго они работают с « ps -o etime = -p» PID «. Msgstr «Затем я убиваю PID с помощью» kill -9 PID «.

Читайте также:  Популярные дистрибутивы Linux-2020 — обзор. Топ-10 дистрибутивов Linux

1 sina rahmanian 1 Авг 2018 в 20:42

В моем случае ОС работала без PID вместо памяти, сообщение об ошибке было то же самое.

Значение по умолчанию для максимального числа PID равно 32768, чтобы просмотреть значение, запустите

cat /proc/sys/kernel/pid_max

Чтобы изменить максимальный номер pid, запустите

echo 100000 > /proc/sys/kernel/pid_max

В моем сценарии основной причиной было то, что один процесс Java порождал 18k + потоков (в ядре Linux, поток по сути является процессом), чтобы выяснить количество потоков каждого процесса, запустите

ps -eo nlwp,pid,args —sort nlwp 1 Jin Mengfei 13 Апр 2020 в 10:29

1-й способ. Утилита du — подсчет занимаемого места.

Воспользоваться встроенной утилитой du. Сделать это достаточно просто. Например, чтобы определить в текущей папке занимаемое место всеми подкаталогами и файлами, нужно использовать команду:

du -sm *

Вывод этой команды будет примерно такой:

514 folder1 893 folder2 44 53

Немного поясню использованные ключи: s — означает, что нужно вывести суммарное занимаемое место, т.е. например, не показывать каждый файл из папки folder1 и занимаемое им место, а показать, сколько всего места занимают все файлы в папке folder1 m — означает вывод данных в Мб, можно использовать вместо него ключи b (в байтах) и k (в килобайтах) * — означает подсчитать все объекты в текущем каталоге. Если не указать * , то будет подсчитано все занимаемое место текущего каталога. Так же, можно подсчитать сколько места занимает конкретная папка со всеми файлами и подкаталогами в ней, для чего нужно написать вместо * название нужного каталога.

Когда папок и файлов много, можно отсортировать результаты, чтобы было проще определить, какая папка или файл заняли больше всего места:

Читайте также:  Секреты Терминала. Часть 3: Права доступа

du -sm * | sort -n

Эта простая команда поможет вам выяснить, чем занято место в конкретной папке или на всем разделе Linux. Команда универсальна, проста в использовании и есть в любых дистрибутивах Linux.

dmidecode

Вводим команду в терминале и получаем длинный информативный список о нашем компьютере

# dmidecode

Список может быть очень длинным, для удобства можно вывести его постранично

# dmidecode | less

Теперь его можно просто пролистать, например стрелочками вниз, вверх или прокрутить колесико до самого конца списка.

dmidecode

Для выхода из просмотра нажимаем комбинацию клавиш Ctrl+z

Если вас интересует конкретный параметр, то команда предусматривает несколько, основных, опций. Посмотреть их можно командой

# dmidecode -t

И мы увидим такое

Теперь если ввести команду с одним из атрибутов то мы получим соответствующие данные

# dmidecode -t bios

Получаем данные по нашему биос

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

# dmidecode -t bios # dmidecode -t system # dmidecode -t baseboard # dmidecode -t chassis # dmidecode -t processor # dmidecode -t memory # dmidecode -t cache # dmidecode -t connector # dmidecode -t slot

dmidecode

Пишите в комментариях кто какими командами пользуется чаще.

Всем Удачи!

Подписаться Уведомить о новых последующих комментариях новых ответах на мои комментарии Label {} [+] Имя* Email* Веб-сайт Label {} [+] Имя* Email* Веб-сайт Комментарий Межтекстовые Отзывы Посмотреть все комментарии

Проверка

Проверяем состояние демона Nohang:

sudo systemctl status

Статус работы должен быть указан зелёным цветом:

Active: active (running)

Если так — Nohang запущен и работает нормально, можно приступать к экспериментам.

Сохраняем все несохранённые данные во всех приложениях, делаем резервные копии важных данных!

Это я на всякий случай