ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

DevOps | Вопросы собесов

DevOps | Вопросы собесов

前往频道在 Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

显示更多
5 565
订阅者
-124 小时
-57 天
-1030 天
帖子存档
🤔 Когда вы создаёте файл какие права создаются по умолчанию? Права доступа по умолчанию зависят от базовых прав доступа и значения umask. Базовые права доступа — это значения, которые система использует для определения разрешений перед применением маски umask. 🟠Файлы: 666 (rw-rw-rw-) Это означает, что по умолчанию все пользователи могут читать и записывать в файл. 🟠Каталоги: 777 (rwxrwxrwx) Это означает, что по умолчанию все пользователи могут читать, записывать и выполнять (заходить) в каталог. 🚩Значение umask: 022 Это маска, которая определяет, какие права будут отключены при создании нового файла или каталога. Значение umask указывается в восьмеричной системе счисления. 🟠Создание файла Базовые права доступа: 666 Значение umask: 022 Окончательные права доступа: 666 - 022 = 644 (rw-r--r--) 🟠Создание каталога Базовые права доступа: 777 Значение umask: 022 Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x) 🚩Создание файла с umask 0022 1⃣Установка umask
umask 0022   
2⃣Создание файла
touch myfile   
3⃣Проверка прав доступа
ls -l myfile   
Вывод Права доступа: 644 (rw-r--r--)
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile    
🚩Создание каталога с umask 0027 1⃣Установка umask
umask 0027   
2⃣Создание каталога
mkdir mydir   
3⃣Проверка прав доступа
ls -ld mydir   
Вывод Права доступа: 750 (rwxr-x---)
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir     
🚩Дополнительные замечания 🟠umask в скриптах Вы можете установить umask в скрипте для задания прав доступа по умолчанию для всех создаваемых файлов и каталогов.
#!/bin/bash
umask 027
touch file1
mkdir dir1  
🟠Проверка прав доступа в разных ситуациях Для файлов: По умолчанию права доступа 666 минус umask. Для каталогов: По умолчанию права доступа 777 минус umask. Ставь 👍 и забирай 📚 Базу знаний

🤔 Этапы загрузки в Linux и загрузчики: 1. BIOS/UEFI: выполняет начальную инициализацию оборудования. 2. Загрузчик (GRUB, LILO): выбирает и загружает ядро ОС. 3. Ядро Linux: инициализирует устройства, монтирует корневую файловую систему. 4. Init/Systemd: запускает пользовательские процессы и сервисы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 В чем разница между IaaS, PaaS и SaaS? Это три модели облачных вычислений, которые различаются уровнем предоставляемых услуг и степенью ответственности между пользователем и провайдером. 🚩IaaS (Infrastructure as a Service) IaaS предоставляет инфраструктуру как услугу. Пользователь получает доступ к виртуализированным вычислительным ресурсам, таким как серверы, хранилища, сети и операционные системы. 🟠Что предоставляет Виртуальные машины, диски, сетевые ресурсы и другие элементы инфраструктуры. 🟠Примеры провайдеров AWS EC2, Google Compute Engine, Microsoft Azure VMs. 🟠Что делает пользователь Настраивает операционные системы, устанавливает ПО, управляет сетью и обеспечивает безопасность. 🟠Пример использования Компания разворачивает свои приложения в облаке, используя виртуальные машины и настройку сети по своим потребностям. 🚩Плюсы и минусы ➕Высокая гибкость и контроль. ➕Подходит для создания кастомных решений. ➖Требуется больше времени и усилий на настройку и управление. 🚩PaaS (Platform as a Service) PaaS предоставляет платформу для разработки, тестирования и развертывания приложений. Провайдер управляет инфраструктурой, а пользователь сосредотачивается на написании и запуске приложений. 🟠Что предоставляет Среду для разработки, включая операционную систему, базы данных, серверы приложений, инструменты разработки и т. д. 🟠Примеры провайдеров AWS Elastic Beanstalk, Google App Engine, Heroku, Microsoft Azure App Service. 🟠Что делает пользователь Пишет код, тестирует приложения и развертывает их на платформе. - Пример использования: Разработчики используют платформу для быстрого развертывания веб-приложений без необходимости управления серверами и сетями. 🚩Плюсы и минусы ➕Быстрое развертывание приложений. ➕Не нужно беспокоиться об управлении инфраструктурой. ➖Ограниченная гибкость по сравнению с IaaS. ➖Зависимость от поставщика платформы. 🚩SaaS (Software as a Service) SaaS предоставляет готовые приложения как услугу. Пользователь просто использует программное обеспечение через интернет. 🟠Что предоставляет Полностью готовое приложение, доступное через браузер или клиентскую программу. 🟠Примеры провайдеров Gmail, Microsoft 365, Google Drive, Salesforce, Slack. 🟠Что делает пользователь Пользуется функциональностью приложения, не заботясь о технической стороне. 🟠Пример использования Организация использует Google Workspace для корпоративной электронной почты и совместной работы. 🚩Плюсы и минусы ➕Простота использования. ➕Не требуется установка и управление ПО. ➖Ограниченная кастомизация. ➖Данные находятся на стороне провайдера. Ставь 👍 и забирай 📚 Базу знаний

🤔 В чем разница между PVC и Full Stack? 1. PVC (Persistent Volume Claim): запрос на выделение хранилища в Kubernetes, связанный с конкретным подом. 2. Full Stack: общий термин, описывающий весь стек технологий разработки, включая фронтенд, бэкенд и инфраструктуру. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Сколько часов живёт один вал Prometeus CICD? Вал (или "валидность данных") в Prometheus определяется настройками временного диапазона хранения данных. Обычно данные в Prometheus живут столько, сколько задано в параметре --storage.tsdb.retention.time, который устанавливает период хранения временных рядов. 🟠По умолчанию Если не указать параметр --storage.tsdb.retention.time, данные хранятся 15 дней. Это соответствует 360 часам. 🟠Как изменить время жизни данных Вы можете настроить период хранения данных, передав значение параметра при запуске Prometheus: CLI-параметр:
prometheus --storage.tsdb.retention.time=30d
🟠Конфигурационный файл Если Prometheus запускается как часть системы CI/CD через Docker Compose, Kubernetes или другой инструмент, параметр указывается в соответствующем разделе.
services:
  prometheus:
    image: prom/prometheus
    command:
      - '--storage.tsdb.retention.time=7d' # 7 дней (168 часов)
🚩Почему это важно? 🟠Оптимизация дискового пространства Большие периоды хранения требуют больше дискового пространства. Если валидация данных больше не нужна, лучше очищать старые временные ряды. 🟠Баланс производительности Длительное хранение может замедлить обработку запросов, особенно если используемые метрики застарелые или редко запрашиваются. 🟠Потребности CI/CD Для CI/CD-пайплайнов обычно достаточно короткого периода (например, 7–15 дней), чтобы сохранять данные релевантными и свежими. 🟠Пример настройки в CI/CD контексте Если вы хотите, чтобы метрики для CI/CD жили 12 часов (подходящий срок для проверки тестов и сборок), настройте
prometheus:
  image: prom/prometheus
  command:
    - '--storage.tsdb.retention.time=12h'
🚩**Как проверить текущий срок хранения?** 🟠В интерфейсе Prometheus Перейдите на страницу /status → /status/flags, где можно увидеть значение параметра --storage.tsdb.retention.time. 🟠Через командную строку Проверьте журнал запуска Prometheus или конфигурационный файл. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что за компонент kubelet? Это агент, работающий на каждой ноде Kubernetes. 1. Он управляет запуском, мониторингом и завершением контейнеров через взаимодействие с контейнерным рантаймом. 2. Также отвечает за регистрацию ноды в кластере и выполнение инструкций от мастера. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как в docker compose вместо yaml файла использовать json файл? Docker Compose поддерживает использование JSON-файлов вместо стандартного YAML-файла. Формат JSON полностью совместим с YAML, так как YAML является надмножеством JSON. Для этого достаточно создать JSON-файл с описанием конфигурации контейнеров и передать его с помощью опции -f. 🚩Шаги по использованию 🟠Создайте JSON-файл конфигурации Файл должен содержать описание сервисов в формате JSON. Например, вместо YAML
version: "3.9"
services:
  web:
    image: nginx
    ports:
      - "80:80"
В формате JSON будет так
{
    "version": "3.9",
    "services": {
        "web": {
            "image": "nginx",
            "ports": ["80:80"]
        }
    }
}
🟠Запустите Docker Compose с этим файлом Используйте флаг -f, чтобы указать Docker Compose, какой файл использовать
docker-compose -f docker-compose.json up
🟠Проверка работы Вы можете проверить статус контейнеров, как обычно:
docker-compose -f docker-compose.json ps
🚩Почему использовать JSON? 🟠Совместимость JSON часто используется в API, CI/CD-пайплайнах и других инструментах, которые могут генерировать конфигурации автоматически. 🟠Простота обработки JSON легко парсить программно, что может быть полезно в скриптах и интеграциях. 🟠Стандартизация Некоторые команды и проекты могут предпочитать JSON как более строгий и распространенный формат. 🚩Пример использования 1⃣Создайте файл docker-compose.json
{
    "version": "3.8",
    "services": {
        "app": {
            "image": "python:3.9",
            "volumes": ["./app:/app"],
            "working_dir": "/app",
            "command": "python app.py"
        }
    }
}
2⃣Запустите
docker-compose -f docker-compose.json up
Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем контейнер отличается от пода? 1. Контейнер: единичная изолированная среда с приложением и его зависимостями. 2. Под (Pod): минимальная единица деплоя в Kubernetes, содержащая один или несколько контейнеров, которые разделяют сетевые и хранилищные ресурсы. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что возвращает функция в bash? В Bash функция возвращает код завершения (exit status), который представляет собой числовое значение от 0 до 255. Это значение используется для указания успешного или неуспешного выполнения функции. По умолчанию, если явно не указано возвращаемое значение, функция возвращает код завершения последней выполненной команды внутри нее. 🚩Как возвращать значения из функции? 🟠Код завершения (exit status) Чтобы явно задать код завершения функции, используется команда return.
my_function() {
    if [[ $1 -gt 0 ]]; then
        return 0  # Успех
    else
        return 1  # Ошибка
    fi
}

my_function 5
echo $?  # Выведет 0 (успех)
🟠Вывод данных через `echo` Для передачи данных из функции (например, строки или числа) можно использовать echo. Вывод можно перехватить через подстановку команд $()
my_function() {
    echo "Hello, $1!"
}

result=$(my_function "world")
echo "$result"  # Выведет "Hello, world!"
🟠Изменение глобальных переменных Функция может менять значения глобальных переменных, которые затем используются за ее пределами
my_function() {
    result=$(( $1 + $2 ))
}

my_function 3 7
echo $result  # Выведет 10
🚩Почему это важно? 🟠Код завершения Используется в сценариях для проверки, выполнилась ли функция успешно. Значение 0 обычно означает успех, а любое другое число — ошибку. 🟠Вывод через `echo` Удобен для передачи данных из функции. 🟠Изменение переменных Полезно, если функция должна сохранять данные для дальнейшей обработки.
# Функция проверки файла
check_file() {
    if [[ -f $1 ]]; then
        echo "Файл $1 существует."
        return 0
    else
        echo "Файл $1 не найден."
        return 1
    fi
}

# Вызов функции
check_file "/etc/passwd"
status=$?  # Сохраняем код завершения
if [[ $status -eq 0 ]]; then
    echo "Продолжаем работу..."
else
    echo "Останавливаемся из-за ошибки."
fi
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое системные вызовы и системные сигналы? 1. Системные вызовы: интерфейс между приложениями и ядром ОС, который позволяет программам запрашивать ресурсы, например, операции ввода-вывода, управление процессами или памятью. 2. Системные сигналы: механизмы ОС для уведомления процессов о событиях, таких как завершение работы (SIGTERM) или ошибка (SIGSEGV). Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое cherry pick? Это команда в системе контроля версий Git, которая позволяет выбрать отдельные коммиты из одной ветки и применить их к другой ветке. Это полезно, когда вы хотите перенести конкретные изменения (коммиты) в текущую ветку, не выполняя слияние всей ветки. 🚩Когда используется 🟠Применение отдельных изменений Когда нужно перенести конкретные исправления или функции из одной ветки в другую, не сливая все изменения из исходной ветки. 🟠Быстрое исправление ошибок Когда найденное исправление в одной ветке нужно срочно применить в другой, например, из ветки разработки в ветку релиза. 🟠Избежание сложного слияния Когда слияние всей ветки может привести к конфликтам или нежелательным изменениям, cherry-pick позволяет аккуратно перенести только нужные коммиты. 🚩Примеры использования 🟠Простого `cherry-pick` Перенос одного коммита из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick коммита
git cherry-pick <commit-hash>
🟠Применения нескольких коммитов Перенос нескольких коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick нескольких коммитов
git cherry-pick <commit-hash-1> <commit-hash-2> <commit-hash-3>
🟠Применения диапазона коммитов Перенос диапазона коммитов из другой ветки.
# Переключитесь на ветку, куда вы хотите применить изменения
git checkout target-branch

# Выполните cherry-pick диапазона коммитов
git cherry-pick <start-commit-hash>..<end-commit-hash>
🚩Разрешение конфликтов 1⃣Разрешите конфликты в файлах. 2⃣Добавьте изменения в индекс
git add <filename>   
3⃣Завершите процесс cherry-pick
git cherry-pick --continue   
🚩Прерывание Если вы хотите прервать процесс cherry-pick, можно использовать команду
git cherry-pick --abort
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое хендлеры? Это обработчики событий или сигналов, которые выполняются в ответ на определённые действия в системе. 1. В Ansible хендлеры запускаются только при изменении задач, к которым они привязаны. 2. В программировании они применяются для управления асинхронными событиями, например, обработка HTTP-запросов или системных сигналов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 По какой причине inode могут закончиться? Это структуры данных, которые хранят информацию о файлах и каталогах. Каждый файл или каталог на диске ассоциируется с одним inode, который содержит метаданные файла, такие как его размер, разрешения, временные метки, ссылки на блоки данных и т.д. Количество inode на файловой системе обычно определяется в момент её создания и не может быть изменено без переформатирования или значительных изменений в файловой системе. 🚩Причины исчерпания 🟠Большое количество мелких файлов Одной из наиболее частых причин исчерпания inode является наличие очень большого количества маленьких файлов на файловой системе. Поскольку каждый файл использует как минимум один inode, системы с большим количеством мелких файлов могут исчерпать доступные inode, даже если дисковое пространство по-прежнему доступно. 🟠Недостаточное количество выделенных inode При создании файловой системы, если количество выделенных inode было рассчитано неправильно (слишком мало для предполагаемого использования), это может привести к раннему их исчерпанию. Это особенно актуально для серверов или систем, где ожидается большое количество файлов. 🟠Особенности файловой системы Некоторые файловые системы, такие как Ext3 или Ext4, имеют фиксированное соотношение inode к объёму файловой системы, которое задаётся при их создании. Если создать файловую систему с недостаточным количеством inode для конкретного случая использования, то в дальнейшем это может стать проблемой. 🚩Решения проблемы исчерпания 🟠Проверка использования С помощью команды df -i можно проверить, сколько inode используется и сколько ещё доступно в вашей файловой системе. 🟠Очистка файловой системы Удаление ненужных или временных файлов может освободить inode. 🟠Изменение файловой системы Если возможно, можно увеличить количество inode путём изменения файловой системы или пересоздания файловой системы с более высоким количеством inode. Для файловых систем, таких как XFS или некоторые конфигурации Btrfs, можно динамически добавлять inode. 🟠Использование других файловых систем Переход на другую файловую систему, которая не имеет строгих ограничений на количество inode (например, Btrfs или ZFS), может быть решением для систем с большим количеством маленьких файлов. 🟠Архивирование Программы и процессы, которые создают большое количество мелких файлов, могут модифицироваться для хранения данных в формате архивов вместо отдельных файлов, что снижает потребление inode. Ставь 👍 и забирай 📚 Базу знаний

🧠 Machine Learning — авторский канал, где собрана вся база по ИИ и машинному обучению. Senior разработчик AI-алгоритмов и ав
+5
🧠 Machine Learning — авторский канал, где собрана вся база по ИИ и машинному обучению. Senior разработчик AI-алгоритмов и автономных агентов, разбирает гайды, редкую литературу и код топовых моделей машинного обучения и искусственного интеллекта. В 2025 году ИИ выйдет на совершенно новый уровень тот, кто не успеет за прогрессом - отстанет, а кто разберется - сорвет куш. Стоит подписаться: t.me/ai_machinelearning_big_data

🤔 Какой из сигналов SIGTERM / SIGKILL вызывает команда kill? 1. По умолчанию команда kill отправляет сигнал SIGTERM, который корректно завершает процесс. 2. Сигнал SIGKILL (с параметром -9) немедленно завершает процесс, минуя его обработчики. 3. SIGTERM предпочтителен для аккуратного завершения, а SIGKILL — для принудительного. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как настраивать графики на панели графаны? Настройка графиков на панели Grafana позволяет визуализировать данные из подключенных источников в удобной и наглядной форме. 1⃣Создание новой панели (Panel) Откройте существующий дашборд или создайте новый: Перейдите в раздел Dashboards → New Dashboard. Нажмите Add new panel для добавления панели. 2⃣Выбор источника данных В интерфейсе панели в разделе Query выберите источник данных (Data Source) из выпадающего списка. Например, Prometheus, InfluxDB, MySQL, Elasticsearch. Подключение источника данных настраивается через Configuration → Data Sources. 3⃣Написание запроса для графика Каждый источник данных имеет свой язык запросов. Примеры: Prometheus
rate(http_requests_total[5m])
MySQL
SELECT time, value FROM metrics WHERE time > NOW() - INTERVAL 1 HOUR;
Elasticsearch: Используйте Lucene или Elasticsearch Query DSL. 4⃣Настройка визуализации В разделе Visualization выберите тип графика: Time series (график по времени). Bar chart (столбчатая диаграмма). Gauge (гейдж/индикатор). Table (таблица). Pie chart (круговая диаграмма, доступна через плагин). Настройте параметры визуализации: Линии, точки, области (lines, points, fill). Цвета линий, область графика. Подписи данных. 5⃣Форматирование данных В разделе Transform: Преобразуйте данные (группировка, сортировка, вычисления). Добавьте фильтры или агрегируйте данные. В разделе Overrides: Настройте специфичные параметры для отдельных рядов данных (цвета, форматы отображения). 6⃣Настройка временного интервала Выберите временной диапазон панели в правом верхнем углу дашборда: Например, последние 5 минут, 1 час, 24 часа. Установите параметры временного сдвига, если нужно отображать данные за конкретный период. 7⃣Настройка подписей и описаний В разделе Panel settings: Укажите название панели. Добавьте описание для контекста. 8⃣Сохранение дашборда Нажмите Save dashboard. Укажите имя дашборда и добавьте теги (опционально) для удобного поиска. 🚩Полезные фишки 🟠Панели Variables Позволяют создавать динамические фильтры. Например, добавьте переменную для выбора имени хоста:
label_values(node_cpu_seconds_total, instance)
🟠Плагины визуализации Установите дополнительные плагины из Grafana Marketplace (например, Pie Chart, Worldmap Panel). Ставь 👍 и забирай 📚 Базу знаний

🤔 Как Linux выбирает, какой из процессов завершить? 1. Linux использует OOM-Killer, который выбирает процесс для завершения на основе приоритета (oom_score). 2. Процессы с большим потреблением памяти и низким приоритетом чаще всего завершаются. 3. Значение oom_score_adj позволяет вручную настроить чувствительность процесса к OOM-Killer. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что используется внутри докер контейнера? Внутри Docker-контейнера используется изолированная среда, которая позволяет запускать приложения в предсказуемом и воспроизводимом окружении. Контейнер предоставляет доступ к базовой файловой системе, процессам, сетевым интерфейсам и другим ресурсам, изолированным от хоста и других контейнеров. Давайте разберем основные компоненты, которые используются внутри Docker-контейнера. 🟠Файловая система Каждый контейнер имеет собственную файловую систему, основанную на многослойной архитектуре. Это изолированное пространство предоставляет доступ к: Образу Docker (image): Базовый набор файлов, определенных в Docker Image. Copy-on-write (COW): Контейнеры используют copy-on-write слой для изменений. Базовый образ остается неизменным, а любые изменения записываются в слой контейнера. Точки монтирования: Возможность монтировать директории хоста или сетевые тома (volumes) для сохранения данных.
docker run -v /host/path:/container/path nginx
🟠Процессы В контейнере запускаются процессы, как в обычной операционной системе. Главный процесс контейнера (например, команда из CMD или ENTRYPOINT) работает с PID 1 и отвечает за выполнение приложения. Процессы внутри контейнера изолированы от процессов на хосте благодаря использованию Linux namespaces.
docker exec <container_id> ps aux
🟠Сетевые интерфейсы Docker-контейнеры используют виртуальные сетевые интерфейсы для связи: veth-pair: Каждый контейнер имеет виртуальный интерфейс, подключенный к мосту (docker0 по умолчанию). Типы сетей: bridge (по умолчанию): Локальная сеть между контейнерами. host: Контейнер использует сетевой стек хоста. none: Полностью изолированный контейнер без сети. overlay: Сеть для соединения контейнеров на разных хостах.
docker network create my_network
docker run --network my_network nginx
🟠Ресурсы хоста (CPU, память, диски) Контейнеры используют ресурсы хоста, но их потребление можно ограничить: CPU: Контейнер может использовать определенную долю процессора.
docker run --cpus="2" nginx
Память: Лимит на использование оперативной памяти.
docker run -m 512m nginx
I/O (диск): Возможность ограничения операций чтения/записи.
docker run --device-read-bps=/dev/sda:1mb nginx
🟠Изоляция (Namespaces и Control Groups) Docker использует технологии изоляции, встроенные в ядро Linux: Namespaces: Обеспечивают изоляцию пространства имен (PID, сети, файловой системы и т.д.). Control Groups (cgroups): Управляют использованием ресурсов (CPU, RAM, I/O).
lsns
🟠Среда выполнения (Runtime) Docker-контейнеры работают благодаря среде выполнения, например: runc: Легковесное средство выполнения контейнеров, совместимое со стандартом OCI. containerd: Менеджер для запуска контейнеров, который Docker использует для взаимодействия с низкоуровневыми компонентами. 🟠Настройки и переменные среды Контейнер может быть настроен с использованием: Переменных среды: Устанавливаются через ENV в Dockerfile или с помощью флага -e.
docker run -e ENV_VAR=value nginx
Аргументов при сборке: Используются в Dockerfile через ARG.
ARG BUILD_VERSION
🟠Приложение или служба Главное, что работает внутри контейнера, — это само приложение: Например, веб-сервер (Nginx, Apache) или база данных (MySQL, PostgreSQL). Контейнеры упрощают запуск приложений с предсказуемыми зависимостями. 🟠Логи и мониторинг Docker предоставляет возможность просматривать логи контейнера и собирать метрики Логи
docker logs <container_id>
Информация о контейнере
docker inspect <container_id>
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое OOM? Это ситуация, когда системе не хватает памяти для выполнения процессов. 1. В Linux активируется OOM-Killer, чтобы завершить некоторые процессы и освободить память. 2. Это обычно происходит при недостатке оперативной памяти или неправильной конфигурации ресурсов. Ставь 👍 и забирай 📚 Базу знаний