Вступление
00:00:00Основное внимание уделяется эффективному выявлению неполадок на серверах Linux. Демонстрируются ключевые команды и методы, позволяющие упростить процессы устранения неполадок.
Мониторинг
00:00:08Каждый компетентный инженер должен понимать, как эффективно выявлять проблемы. В идеале для обнаружения проблем должны быть установлены системы мониторинга, такие как Zabbix, Prometheus или Nagios. Эти инструменты помогают отслеживать производительность сервера с помощью таких показателей, как высокая нагрузка, и отправлять оповещения по электронной почте или платформам обмена сообщениями при возникновении аномалий. В предупреждениях, поступающих от этих систем, должно быть четко указано, на каком сервере произошел сбой, и подробные сведения о проблеме.
Место на дисках
00:00:43Для проверки оставшегося дискового пространства на сервере используется команда "df -h", которая отображает удобочитаемые форматы, такие как гигабайты или мегабайтные файлы. Команда "du -sh" показывает, сколько места занимают определенные файлы в каталогах. Распространенный вопрос на собеседовании связан с пониманием того, почему создание файла может завершиться неудачей, несмотря на доступное хранилище; это относится к индексным узлам, которые хранят метаданные о файлах, такие как разрешения и указатели блоков данных, но не сами имена файлов. Каждый файл имеет свой собственный идентификатор индексного дескриптора, доступный для просмотра с помощью команды 'df -i', которая показывает общее количество используемых и свободных индексных дескрипторов.
Состояние дисков
00:02:39Оценка состояния жесткого диска с помощью интеллектуальных отчетов Работоспособность жесткого диска можно оценить с помощью интеллектуальных отчетов, которые предоставляют подробную диагностику состояния диска. Выполняя в Linux команды, подобные "smartctl -A", и указывая имя устройства (например, /dev/sda), пользователи получают доступ к важной информации, такой как модель, серийный номер, журналы ошибок, количество циклов включения и время работы. Эти показатели помогают выявить потенциальные проблемы; например, увеличение "Количества перераспределенных событий" или "Частоты ошибок чтения" может указывать на неисправность диска, который нуждается в замене.
Эффективный мониторинг дисков NVMe и RAID-массивов Накопители NVMe также поддерживают мониторинг с помощью таких инструментов, как smartctl, но отличаются от традиционных жестких дисков тем, что сообщают о таких параметрах, как процент использования в зависимости от установленного производителем срока службы. Для новых серверов ожидаемыми результатами являются использование новых дисков на 0% или минимальный износ. Кроме того, программные RAID-массивы можно проверить с помощью файлов типа "/proc/mdstat", которые позволяют выявить конфигурации, в которых несколько дисков работают совместно с избыточностью, обеспечивая функциональность даже в случае сбоя одного из них.
Нагрузка на диски
00:05:15Проблемы с загрузкой диска могут привести к сбоям RAID-системы. После устранения проблем, связанных с диском, внимание переключается на анализ загрузки процессора и памяти, а также производительности жесткого диска. Такие команды, как "iostat", предоставляют общие данные об активности чтения/записи на дисках, в то время как "iotop" определяет конкретные процессы, вызывающие высокую нагрузку на операции ввода-вывода.
Процессор
00:05:55Понимание режимов работы процессора и показателей его использования Процессор работает в различных режимах, таких как пользовательский режим для выполнения стандартных процессов, системный режим для операций ядра и время простоя, указывающее на отсутствие нагрузки. Ключевые показатели включают процент процессорного времени, затрачиваемого на задачи с измененными приоритетами (nce), время ожидания ввода-вывода (Wi/E), аппаратные и программные сбои и кражу ресурсов виртуальной машины гипервизорами. Высокий процент ожидания ввода-вывода может сигнализировать о проблемах с диском или сетью.
Эффективный анализ средней нагрузки на систему Средняя загрузка отражает среднее количество активных процессов, ожидающих в очереди в течение определенного периода времени. Такие инструменты, как "top", позволяют получать информацию об этих средних значениях в режиме реального времени наряду с подробной информацией об использовании памяти; альтернативы, такие как "htop", предлагают улучшенные визуальные эффекты с интерактивными функциями для динамической настройки приоритетов процессов.
Оперативная память
00:08:17Использование оперативной памяти в системе может быть проанализировано с помощью различных инструментов. Общий объем памяти представляет собой общую емкость, например, 64 ГБ на данном сервере. Используемая память включает все процессы и системы, которые ее используют, в то время как буферы и кэш относятся к буферам ядра или индексным кэшам файловой системы. Свободная память - это то, что остается неиспользуемым как процессами, так и механизмами кэширования. Подробная информация об этих показателях доступна с помощью таких команд, как "vmstat" или "free -m", которые предоставляют графические представления для лучшего понимания.
Процессы
00:09:17Процессы можно отслеживать с помощью команды "process snapshot" (PS) с дополнительными флагами, которая отображает все запущенные процессы на сервере вместе с их пользовательской информацией, идентификаторами, данными о времени выполнения и командами выполнения. Если процесс не отвечает или зависает, его можно принудительно завершить с помощью команды Kill, указав его идентификатор в качестве аргумента. Для систем, управляемых с помощью systemctl, проверка статусов служб, таких как статус Nginx, позволяет получать журналы и оперативную информацию. Расширенная отладка процессов возможна с помощью таких инструментов, как strace, которые отслеживают системные вызовы в режиме реального времени для более глубокого анализа.
Сеть
00:10:46Диагностика сетевого порта и интерфейса Для диагностики сетевых проблем такие инструменты, как "netstat" или встроенная команда "ss", могут идентифицировать процессы, прослушивающие определенные порты, чтобы избежать возникновения конфликтов. Команда "ipa" предоставляет подробную информацию о назначенных IP-адресах для интерфейсов, включая контейнеры Docker. Для получения информации о маршруте используются такие команды, как "ip-маршрут показывает шлюзы по умолчанию и связанные с ними интерфейсы". Эта диагностика помогает точно определить проблемы, связанные с отказом приложений из-за занятости портов или неправильно настроенных маршрутов.
Тестирование сетевого подключения и разрешения DNS Функция Ping проверяет доступность хоста, отправляя пакеты между серверами и проверяя разрешение DNS, когда вместо IP-адресов используются доменные имена. Такие инструменты, как Traceroute, отслеживают пути прохождения пакетов через промежуточные маршрутизаторы от исходного сервера к целевому; MTR позволяет в режиме реального времени отслеживать потенциальные потери в узлах на пути. Такие команды, как nslookup, позволяют запрашивать различные типы записей (например, A-записи) с локальных или внешних DNS-серверов в целях проверки.
Расширенные сетевые утилиты: cURL и анализ пакетов "cURL", универсальный инструмент для запросов HTTP/HTTPS по URL—адресам, извлекает коды ответов/сертификаты, обеспечивающие правильную настройку связи, что полезно при отладке веб-служб по различным протоколам, включая запросы сокетов типа Telnet, непосредственно в системах, в которых отсутствуют автономные клиенты. Tcpdump фиксирует текущий трафик через указанные сетевые интерфейсы, показывая схемы передачи данных, которые имеют решающее значение при устранении неполадок в отношении доступности служб, когда удаленные ответы не срабатывают, несмотря на исправность подключения.
Логи
00:17:30Системные журналы в основном хранятся в каталоге /var/log, содержащем различные файлы, в которых записываются системные действия. Основным файлом журнала является syslog, который можно отслеживать с помощью таких команд, как "tail", чтобы просматривать последние записи или следить за обновлениями в режиме реального времени. Некоторые журналы включают auth.регистрируйте попытки входа в систему и повышения привилегий, а также сообщения ядра, доступные через dmesg, с удобочитаемыми временными метками. В системах, управляемых systemctl, журналы, относящиеся к конкретной службе, могут быть отфильтрованы с использованием соответствующих флагов для эффективной идентификации соответствующей информации.