Вопросы для собеседования SRE DevOps — устранение неполадок Linux Расширение

Это продолжение моего предыдущего блога о SRE/DevOps Interview Questions — Linux Troubleshooting. Иногда первоначальный вопрос бывает неясным, а последующие действия проясняют путь, именно на этом я собираюсь сосредоточиться в этом блоге. Я постараюсь собрать здесь больше вопросов и возможных объяснений.

Вопрос: В системе запущена служба, и вам сказали, что она работает неправильно. Как бы вы устранили неполадки?

Ответ: После проверки DNS и других вещей, я бы попробовал SSH в систему и попытался посмотреть, что происходит.

Следующий вопрос: Вы получаете сообщение об ошибке, как показано ниже:

ssh: connect to host example.com port 22: Resource temporarily unavailable
Войдите в полноэкранный режим Выход из полноэкранного режима

Однако вы обнаружили, что у вас есть доступ IPMI к машине, поэтому вы можете использовать его для входа в систему и получаете что-то вроде этого:

root@example.com#
Вход в полноэкранный режим Выйти из полноэкранного режима

Последующий ответ: Итак, сейчас я попытаюсь выполнить несколько основных команд, чтобы посмотреть, что происходит, например top , ps и т.д.

Последующий вопрос: Вы по-прежнему получаете аналогичную ошибку при выполнении любой команды:

fork: retry: Resource temporarily unavailable
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Собственно вопрос: Как бы вы устранили неполадки в linux box, учитывая, что ни одна из внешних команд не выполняется?

Факты: Что делать? Использовать команды, которые являются внутренними или встроенными в оболочку.

Как же найти встроенные команды, которые могут быть полезны для устранения неполадок? Также если внешние команды недоступны, то как собрать информацию о системе (top, ps, lsof…даже cat недоступен )…..🤔.

→ файловая система /proc и пара встроенных функций, таких как read и for.

Введите help в оболочке, и она выдаст вам все команды, которые встроены в оболочку.
Читайте о файловой системе /proc в моем предыдущем блоге SRE/DevOps Interview Questions — Linux Troubleshooting, а также здесь

Очевидно, что вся информация, поступающая от таких команд, как ps, lsof, vmstat и т.д., может быть найдена в файловой системе /proc, если вы посмотрите правильный файл.

Например, файл cmdline расскажет вам о последней команде, запущенной в системе, каталог fd содержит все дескрипторы файлов, а все папки с номерами — это PID, запущенные в системе.

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

for fd in /proc/[0-9]*/fd/*; do echo $fd ; done
/proc/1/fd/0
/proc/1/fd/1
/proc/1/fd/2
/proc/1/fd/255
/proc/1/fd/3
Войдите в полноэкранный режим Выйти из полноэкранного режима

Так вы сможете увидеть дескрипторы файлов, которые использует любой pid. Если вы хотите посмотреть, какая последняя команда была выполнена в системе без cat или посмотреть содержимое файла с помощью cat.

read $(</proc/${PID}/cmdline)
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Вопрос с подвохом: Как удалить файл с именем -f или --file?

Ответ: Хорошо объяснено здесь. Хотя интервьюер ожидает, что вы проведете его/ее через процесс выполнения команд в системе linux.

Вопрос: Объясните приведенный ниже результат и какая команда его выдает?

Вопрос: Назовите поля и что они представляют?

Вопрос: Глядя на приведенный ниже вывод, пожалуйста, объясните, что происходит в машине? Пожалуйста, будьте максимально подробны и описательны.

Вопрос: Сравните два приведенных выше результата vmstat и объясните их сходства и различия?

Вопрос: Что вы понимаете из приведенного ниже вывода vmstat и какова связь между колонками in и cs ?

Вопрос с подвохом: Глядя на vmstat вы можете сказать, сколько CPU и ядер имеет система?

Вопрос: Как найти конфиг и другие связанные файлы, если известен только процесс?

Ответ: Проверьте lsof.

Вопрос: Если между двумя машинами установлено TCP-соединение? Как перемещаются пакеты, если это пакеты IP Datagram? Если да, то что будет преимуществом? Быстрее? Что насчет задержки?

Объяснение: Хорошее содержание для чтения о TCP и UDP.

Вопрос: Когда вы делаете curl example.com, что происходит?

Пояснения: Я не обязан говорить, что происходит, когда вы делаете curl example.com, я хочу сказать, что это, по сути, комбинация нескольких вопросов.

  1. Как выполняется curl в системе? По сути, пройдите весь процесс выполнения команды от пространства пользователя до пространства ядра.
  2. Объясните вызовы fork() и exec().
  3. Объясните известные системные вызовы, которые могут быть задействованы.
  4. Разрешение DNS от example.com до IP-адреса
  5. Объясните передачу запроса от вашего терминала к машине назначения, а затем ответ обратно на ваш терминал.
  6. По возможности подробно опишите передачу пакетов Концепции сетевого уровня 2-3.

Последующий вопрос: Что означает вывод curl example.com? Пожалуйста, объясните?

>> curl example.com
<HTML>
<HEAD>
<TITLE>Document Has Moved</TITLE>
</HEAD>

<BODY BGCOLOR="white" FGCOLOR="black">
<H1>Document Has Moved</H1>
<HR>

<FONT FACE="Helvetica,Arial"><B>
Description: The document you requested has moved to a new location.  The new location is "https://www.example.com".
</B></FONT>
<HR>
</BODY>
Вход в полноэкранный режим Выйти из полноэкранного режима

Объяснение: Расскажите о коде ответа, который вы получили (не виден в выводе) и почему. Что вы можете сделать, чтобы получить код ответа 200?

Объясните, как работает HTTPS, и подробно опишите 3-стороннее рукопожатие. Объясните асимметричное и симметричное шифрование в терминах SSL. Вот хорошая статья об этом

Последующий вопрос: Как указать системе не использовать /etc/hosts Does file override для разрешения DNS?

Ответ: nsswitch.conf читайте об этом здесь

Вопрос: Что такое служба nscd и зачем она нужна?

Ответ: Читайте о nscd здесь

Следующий вопрос: Как система Linux узнает, что ваше приложение или любое другое приложение будет использовать какой протокол (TCP или UDP) для связи?

Ответ: /etc/services хорошо написано здесь об этом.

Вопрос: Как имитировать 50% падение пакетов для целей тестирования?

Объяснение: Здесь

Вопрос: Расскажите о gRPC и зачем его использовать? Плюсы и минусы?

Пояснения: Хорошее чтение

Вопрос: Какие существуют способы подсчета общего количества TCP-соединений в системе?

Объяснения: можно использовать несколько команд, таких как netstat , ss и не забывать о файловой системе /proc (в частности файл /proc/net/sockstat). Хорошие примеры здесь

Вопрос: Как устранить короткоживущий процесс или процессы, вызывающие скачки процессора?

Объяснение: Хорошее чтение здесь и здесь

Надеюсь, это поможет вам в вашем путешествии и даст больше пищи для размышлений.

Счастливого устранения неполадок и удачи!!!

Оцените статью
devanswers.ru
Добавить комментарий