About Tech
Закрывать
Меню

Навигация

  • сертификаты Linux
  • дистрибутивы Linux
  • Kvm
  • Рейд
  • Russian
    • Russian
    • Arabic
    • Bulgarian
    • Croatian
    • Czech
    • Danish
    • Dutch
    • Estonian
    • Finnish
    • French
    • Georgian
    • German
    • Greek
    • Hebrew
    • Hindi
    • Hungarian
    • Indonesian
    • Italian
    • Japanese
    • Korean
    • Latvian
    • Lithuanian
    • Norwegian
    • Polish
    • Portuguese
    • Romanian
    • Serbian
    • Slovak
    • Slovenian
    • Spanish
    • Swedish
    • Thai
    • Turkish
    • Ukrainian
    • Persian
Закрывать

Как контролировать использование системы, сбои и устранять неполадки серверов Linux

Хотя Linux очень надежен, мудрые системные администраторы должны найти способ постоянно следить за поведением системы и ее использованием. Обеспечение времени безотказной работы максимально близко к 100% насколько это возможно, и доступность ресурсов являются критически важными потребностями во многих средах. Изучение прошлого и текущего состояния системы позволит нам предвидеть и, скорее всего, предотвратить возможные проблемы.

Мониторинг серверов Linux
Сертифицированный инженер Linux Foundation - Часть 9

Знакомство с программой сертификации Linux Foundation

В этой статье мы представим список нескольких инструментов, доступных в большинстве вышестоящих дистрибутивов, для проверки состояния системы, анализа сбоев и устранения текущих проблем. В частности, из множества доступных данных мы сосредоточимся на ЦП, дисковом пространстве и использовании памяти, базовом управлении процессами и анализе журналов.

Использование дискового пространства

В Linux есть 2 хорошо известные команды, которые используются для проверки использования дискового пространства: df и ду.

Первый, df (что означает свободное место на диске), обычно используется для отчета об общем использовании дискового пространства файловой системой.

Пример 1: Отчет об использовании дискового пространства в байтах и ​​удобочитаемом формате

Без вариантов, df сообщает об использовании дискового пространства в байтах. С -час flag он будет отображать ту же информацию, используя вместо этого МБ или ГБ. Обратите внимание, что этот отчет также включает общий размер каждой файловой системы (в блоках по 1 КБ), свободное и доступное пространство и точку монтирования каждого устройства хранения.

# df. # df -h. 
Мониторинг использования дискового пространства Linux
Использование дискового пространства

Это, конечно, приятно, но есть еще одно ограничение, которое может сделать файловую систему непригодной для использования, а именно исчерпание inodes. Все файлы в файловой системе отображаются на индексный дескриптор, содержащий его метаданные.

Пример 2: Проверка использования inode файловой системой в удобочитаемом формате с помощью
# df -hTi. 

вы можете увидеть количество используемых и доступных inodes:

Мониторинг использования диска Linux Inode
Использование диска Inode

Согласно изображению выше, есть 146 используемые inodes (1%) в / home, что означает, что вы все еще можете создавать файлы размером 226 КБ в этой файловой системе.

Пример 3: Поиск и / или удаление пустых файлов и каталогов

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

Используйте следующие команды, чтобы найти пустые файлы или каталоги (которые занимают 0B), которые используют inodes без причины:

# find / home -type f -empty. # find / home -type d -empty. 

Также вы можете добавить -Удалить установите флажок в конце каждой команды, если вы также хотите удалить эти пустые файлы и каталоги:

# найти / home -type f -empty --delete. # find / home -type f -empty. 
Найти все пустые файлы в Linux
Найти и удалить пустые файлы в Linux

Предыдущая процедура удалила 4 файла. Давайте еще раз проверим количество используемых / доступных узлов в / home:

# df -hTi | grep home. 
Проверьте использование inode в Linux
Проверьте использование inode в Linux

Как видите, есть 142 теперь используется inodes (на 4 меньше, чем раньше).

Пример 4: Проверка использования диска по каталогам

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

Пример приведен для /var, который, как вы можете видеть на первом изображении выше, используется на 67%.

# du -sch / var / *
Найдите размер всех директорий в Linux
Проверка использования дискового пространства по каталогам

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

Читайте также

  1. 12 полезных команд «df» для проверки дискового пространства
  2. 10 полезных команд «du» для определения использования диска файлами и каталогами

Использование памяти и ЦП

Классический инструмент в Linux, который используется для общей проверки использования ЦП / памяти и управления процессами, - это верхняя команда. Кроме того, вверху отображается вид работающей системы в реальном времени. Существуют и другие инструменты, которые можно использовать для той же цели, например: htop, но я остановился на top, потому что он устанавливается в любом дистрибутиве Linux "из коробки".

Пример 5: Отображение текущего статуса вашей системы с помощью top

Чтобы начать, просто введите следующую команду в командной строке и нажмите Enter.

# вершина. 

Давайте рассмотрим типичный результат:

Показать все запущенные процессы в Linux
Список всех запущенных процессов в Linux

В строках с 1 по 5 отображается следующая информация:

1. Текущее время (20:41:32) и время безотказной работы (7 часов 41 минута). В систему входит только один пользователь и средняя нагрузка за последние 1, 5 и 15 минут соответственно. 0,00, 0,01 и 0,05 указывают на то, что в течение этих интервалов времени система бездействовала в течение 0% времени (0,00: никакие процессы не выполнялись. ожидание ЦП), затем он был перегружен на 1% (0,01: в среднем 0,01 процесса ожидали ЦП) и 5% (0.05). Если значение меньше 0 и меньшее число (например, 0,65), система простаивала на 35% в течение последних 1, 5 или 15 минут, в зависимости от того, где появляется 0,65.

2. В настоящее время работает 121 процесс (полный список вы можете увидеть в 6). Только 1 из них работает (в данном случае верхний, как вы можете видеть в столбце% CPU), а остальные 120 ждут в фоновом режиме, но «спят» и останутся в этом состоянии, пока мы их не вызовем. Как? Вы можете проверить это, открыв приглашение mysql и выполнив пару запросов. Вы заметите, как увеличивается количество запущенных процессов.

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

3. us (время выполнения пользовательских процессов с неизмененным приоритетом), sy (время выполнения процессов ядра), ni (время выполнения пользовательских процессов с измененным приоритетом), wa (время ожидания ввода-вывода завершение), hi (время, затраченное на обслуживание аппаратных прерываний), si (время, затраченное на обслуживание программных прерываний), st (время, украденное гипервизором из текущей виртуальной машины - только в виртуализированных среды).

4. Использование физической памяти.

5. Использование пространства подкачки.

Пример 6: Проверка использования физической памяти

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

# бесплатно. 
Linux Проверить использование памяти
Проверьте использование памяти Linux

Конечно, вы также можете использовать -м (МБ) или -г (ГБ) переключатели для отображения той же информации в удобочитаемой форме:

# бесплатно -m. 
Просмотр использования памяти Linux
Просмотр использования памяти Linux

В любом случае вы должны знать, что ядро ​​резервирует как можно больше памяти и делает ее доступной для процессов, когда они ее запрашивают. В частности, «- / + буферы / кешСтрока показывает фактические значения после учета этого кэша ввода-вывода.

Другими словами, объем памяти, используемый процессами, и объем, доступный другим процессам (в данном случае 232 МБ использовал и 270 МБ в наличии соответственно). Когда процессам нужна эта память, ядро ​​автоматически уменьшает размер кэша ввода-вывода.

Читайте также: 10 Полезная «бесплатная» команда для проверки использования памяти Linux

Более пристальный взгляд на процессы

В любой момент времени в нашей системе Linux выполняется множество процессов. Есть два инструмента, которые мы будем использовать для тщательного мониторинга процессов: пс и pstree.

Пример 7: Отображение всего списка процессов в вашей системе с помощью ps (полный стандартный формат)

С использованием -e и -f варианты объединены в один (-ef) вы можете перечислить все процессы, которые в настоящее время запущены в вашей системе. Вы можете передать этот вывод другим инструментам, таким как grep (как объяснено в Часть 1 из серии LFCS), чтобы сузить вывод до желаемого процесса (ов):

# ps -ef | grep -i squid | grep -v grep. 
Мониторинг процессов в Linux
Мониторинг процессов в Linux

Приведенный выше список процессов содержит следующую информацию:

владелец процесса, PID, родительский PID (родительский процесс), загрузка процессора, время запуска команды, tty (? указывает, что это демон), суммарное время ЦП и команду, связанную с процессом.

Пример 8: Настройка и сортировка вывода ps

Однако, возможно, вам не нужна вся эта информация, и вы хотите показать владельца процесса, команду, которая его запустила, его PID и PPID, и процент используемой памяти в данный момент - в указанном порядке и сортировать по использованию памяти в порядке убывания (обратите внимание, что ps по умолчанию сортируется по PID).

# ps -eo user, comm, pid, ppid,% mem --sort -% mem. 

Знак минус перед% mem указывает на сортировку по убыванию.

Мониторинг процессов Linux по использованию памяти
Мониторинг использования памяти процессами Linux

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

Название сигнала Номер сигнала Описание
 SIGTERM 15  Изящно завершите процесс.
 SIGINT 2  Это сигнал, который отправляется, когда мы нажимаем Ctrl + C. Он нацелен на прерывание процесса, но процесс может его игнорировать.
 СИГКИЛЛ 9  Этот сигнал также прерывает процесс, но делает это безоговорочно (используйте с осторожностью!), Поскольку процесс не может его игнорировать.
 SIGHUP 1  Сокращенно от «Hang UP», этот сигнал дает демонам команду перечитать файл конфигурации без остановки процесса.
 SIGTSTP 20  Приостановите выполнение и дождитесь, чтобы продолжить. Это сигнал, который отправляется, когда мы набираем комбинацию клавиш Ctrl + Z.
 SIGSTOP 19  Процесс приостанавливается и не получает больше внимания со стороны циклов ЦП, пока не будет перезапущен.
 SIGCONT 18  Этот сигнал сообщает процессу возобновить выполнение после получения SIGTSTP или SIGSTOP. Это сигнал, который отправляется оболочкой, когда мы используем команды fg или bg.
Пример 9: Приостановка выполнения запущенного процесса и его возобновление в фоновом режиме

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

Имя процесса &

или,
После того, как он начал работать на переднем плане, приостановите его и отправьте в фоновый режим с помощью

Ctrl + Z. 
# kill -18 PID. 
Завершить процесс в Linux
Убить процесс в Linux
Пример 10: Насильственное уничтожение процесса, который «сошел с ума»

Обратите внимание, что каждый дистрибутив предоставляет инструменты для корректной остановки / запуска / перезапуска / перезагрузки общих служб, таких как служба в системах на базе SysV или systemctl в системах на основе systemd.

Если процесс не отвечает на эти утилиты, вы можете убить его принудительно, послав ему сигнал SIGKILL.

# ps -ef | grep apache. # убить -9 3821. 
Насильственно убить процесс Linux
Насильственно убить процесс Linux

Так.. Что случилось / происходит?

Когда в системе произошел какой-либо сбой (будь то отключение электроэнергии, отказ оборудования, запланированное или незапланированное прерывание процесса или вообще какое-либо отклонение от нормы), выполняется вход в систему. /var/log являются вашими лучшими друзьями, чтобы определить, что произошло или что могло вызвать проблемы, с которыми вы столкнулись.

# cd / var / log. 
Мониторинг файлов журналов Linux
Просмотр журналов Linux

Некоторые предметы в /var/log - это обычные текстовые файлы, другие - это каталоги, а третьи - сжатые файлы повернутых (исторических) журналов. Вы захотите проверить те, в имени которых есть слово error, но проверка остальных также может пригодиться.

Пример 11: Проверка журналов на наличие ошибок в процессах

Представьте себе этот сценарий. Клиенты вашей локальной сети не могут печатать на сетевых принтерах. Первым шагом к устранению этой ситуации будет: /var/log/cups каталог и посмотрите, что там есть.

Вы можете использовать хвостик команда для отображения последних 10 строк файла error_log, или хвост -f error_log для просмотра журнала в реальном времени.

# cd / var / log / cups. # ls. # хвост error_log. 
Linux Просмотр файла журнала в реальном времени
Мониторинг файлов журнала в реальном времени

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

Пример 12: Проверка журналов на предмет сбоев оборудования

Хотя аппаратные сбои бывает сложно устранить, вам следует проверить dmesg и журналы сообщений и grep для слов, связанных с предположительно неисправной аппаратной частью.

Изображение ниже взято из /var/log/messages после поиска слова ошибка с помощью следующей команды:

# меньше / var / log / messages | grep -i ошибка. 

Мы видим, что у нас проблема с двумя запоминающими устройствами: /dev/sdb и /dev/sdc, что, в свою очередь, вызывает проблемы с массивом RAID.

Устранение неполадок Linux Server
Устранение проблем с Linux

Вывод

В этой статье мы рассмотрели некоторые инструменты, которые помогут вам всегда быть в курсе общего состояния вашей системы. Кроме того, вам необходимо убедиться, что ваша операционная система и установленные пакеты обновлены до последних стабильных версий. И никогда, никогда не забывайте проверять журналы! Тогда вы пойдете в правильном направлении, чтобы найти окончательное решение любых проблем.

Не стесняйтесь оставлять свои комментарии, предложения или вопросы, если они у вас есть, используя форму ниже.

Станьте сертифицированным инженером Linux
Глобальный запуск Xiaomi MIUI 12 назначен на 19 мая
Глобальный запуск Xiaomi MIUI 12 назначен на 19 мая
on Jul 26, 2023
5 причин, доказывающих, что Freedom 251 - большая афера?
5 причин, доказывающих, что Freedom 251 - большая афера?
on Jul 26, 2023
TrueCaller только что запустил свое первое приложение для чата
TrueCaller только что запустил свое первое приложение для чата
on Jul 26, 2023
сертификаты Linuxдистрибутивы LinuxKvmРейдДжангоКрасная ШапкаLfcaкоманды LinuxИнструменты мониторингаКластеризацияРуководствоXenserverЛучшие инструментывеб браузерыDebianFedoraLinux монетный дворЭлектронные книгиRhceCentosМежсетевые экраныКакие новостиLfcsNodejsKali LinuxKubernetesМенеджеры пакетовРедакторыКоманда AwkСед команда
  • сертификаты Linux
  • дистрибутивы Linux
  • Kvm
  • Рейд
  • Джанго
  • Красная Шапка
  • Lfca
  • команды Linux
  • Инструменты мониторинга
  • Кластеризация
  • Руководство
  • Xenserver
  • Лучшие инструменты
  • веб браузеры
  • Debian
  • Fedora
  • Linux монетный двор
  • Электронные книги
© Copyright About Tech 2023