Перед повторной попыткой отследите ошибки памяти при обновлении SLES.

Если во время обновления SLES сообщает об ошибке «Невозможно выделить память», сначала проверьте, зафиксировало ли ядро ​​событие нехватки памяти и не исчерпаны ли оперативная память или файл подкачки. Приостановите заведомо некритическую рабочую нагрузку или увеличьте объем памяти, выделенной виртуальной машине, только после подтверждения наличия нехватки памяти, затем убедитесь, что Zypper и RPM больше не активны, прежде чем возобновлять исходную процедуру обновления.

Гипотетический пример: представьте виртуальную машину SLES 15, где администратор запускает запланированное обновление пакета во время выполнения большого пакетного задания. Zypper останавливается с ошибкой выделения памяти. Приведенный ниже пример является иллюстративным, а не описанием реального инцидента или теста; используйте команды для сбора доказательств на вашем собственном хосте, прежде чем выбирать решение.

Пример работы терминала SLES, демонстрирующий проверки free, swapon и vmstat при низком уровне доступной памяти и почти полном файле подкачки.
В гипотетическом случае сравните доступный объем оперативной памяти, настроенный объем файла подкачки и текущую активность файла подкачки, прежде чем вносить изменения в обновление.

1. Проверьте, продолжается ли обновление сервера.

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

pgrep -a 'zypper|rpm'

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

2. Подтвердите или исключите проблему перегрузки памяти.

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

free -h
swapon --show
vmstat 1 5
Пример работы терминала SLES с записью в журнале о нехватке памяти ядра и контекстом ошибки установки Zypper.
Записи об ошибке нехватки памяти в ядре, относящиеся к моменту сбоя Zypper, являются более веским доказательством, чем сам текст ошибки; этот лог служит иллюстративным примером.

В таблице free -hпроверьте availableстолбец, а не только отмеченное значение free; Linux также использует оперативную память для кэширования. swapon --showТаблица сообщает, существует ли файл подкачки и сколько его используется. В таблице vmstatповторяющиеся ненулевые siзначения soв последних строках указывают на активную подкачку; первая строка представляет собой среднее значение с момента загрузки, поэтому сосредоточьтесь на последующих строках.

Затем найдите событие завершения работы ядра из-за нехватки памяти (OOM) вблизи места сбоя и прочитайте лог Zypper:

sudo journalctl -k -b --since "30 minutes ago" | grep -Ei 'oom|out of memory|killed process'
sudo tail -n 80 /var/log/zypper.log

Запись об ошибке OOM-kill, указывающая на RPM, Zypper или другой процесс, подтверждает подлинную диагностику нехватки памяти. Низкий уровень «свободной» оперативной памяти сам по себе не является достаточным основанием: кэш может быть освобожден, а сообщение также может быть результатом ограничения памяти процессом или службой. Если запись об ошибке OOM в ядре отсутствует, проверьте ограничения команды, вызвавшей ошибку, и любые ограничения памяти systemd или контейнера, прежде чем добавлять память хоста. Точную причину невозможно определить только по фразе «Невозможно выделить память».

3. Снизьте давление перед повторной попыткой.

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

Пример работы терминала SLES: проверка образца пакетной обработки и сортировка процессов по объему резидентной памяти.
Прежде чем просить владельца приостановить выполнение задачи, определите её структуру с помощью памяти; данные о сервисе и процессе являются гипотетическими примерами.

Если во время обычного обслуживания гостевой системе не хватает памяти, увеличьте выделенный ей объем оперативной памяти через поддерживаемый гипервизор или плоскость управления облаком, а затем убедитесь, что операционная система видит новый объем. Добавление файла подкачки может обеспечить временный запас памяти, но это медленнее, чем увеличение оперативной памяти, и не решает проблему постоянной нехватки памяти. Структура хранилища SLES имеет значение: например, SUSE документирует конкретные ограничения для файлов подкачки в Btrfs. Избегайте создания или изменения размера файла подкачки во время обновления, если вы не проверили требования к файловой системе, снимкам и платформе.

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

sudo systemctl show example-batch.service -p MemoryMax

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

4. Возобновите поддерживаемое обновление и проверьте его.

После завершения процесса сборки пакета проверьте /var/log/zypper.logпоследнее выполненное действие и все пакеты, сборка которых завершилась с ошибкой. Если RPM или Zypper сообщают о незавершенной транзакции, перед повторной попыткой следуйте инструкциям SUSE по восстановлению для этой конкретной ошибки. Не удаляйте файлы базы данных пакетов или блокировки вручную.

Используйте тот же путь обновления, который вы начали изначально. Плановое обслуживание пакетов и миграция на пакеты обновлений — это разные операции: SUSE описывает zypper patchустановку соответствующих выпущенных исправлений, в то время как для обновлений до пакетов обновлений и основных релизов существуют свои собственные поддерживаемые пути и подготовительные действия. Не переключайтесь zypper dupпросто в качестве временного решения. Для планового запуска обновления сначала проверьте транзакцию:

sudo zypper patch --dry-run
Пример работы терминала SLES, демонстрирующий тестовый запуск патча Zypper перед запланированным обновлением пакета.
Перед возобновлением планового обновления проверьте план запуска пакета; вместо этого используйте описанную в документации команду для миграции пакета обновлений.

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

sudo tail -n 80 /var/log/zypper.log
sudo journalctl -k -b --since "30 minutes ago" | grep -Ei 'oom|out of memory|killed process'

Успешное восстановление означает завершение установки необходимых пакетов или миграции, корректное завершение работы Zypper и отсутствие новых событий нехватки памяти (OOM) во время выполнения. Если система загружается, но необходимо отменить миграцию пакета обновлений SLES, описанный в документации SUSE механизм отката Snapper применяется только при соблюдении его требований, включая поддерживаемый корневой каталог Btrfs и настроенные снимки. Не следует рассматривать откат как стандартную реакцию на неудачную установку пакета.

Когда следует остановиться и перейти к эскалации

Если ошибка повторяется после устранения нехватки памяти, процессы пакетов по-прежнему зависают или база данных RPM сообщает о повреждении, прекратите повторные попытки. Сохраните журнал Zypper, журнал ядра, информацию о продукте и уровне пакета обновлений, а также точную использованную команду. SUSE supportconfigможет собрать диагностические данные для обращения в службу поддержки. Описанные здесь шаги помогают отличить нехватку памяти от других сбоев выделения памяти; без полных журналов и конфигурации системы они не смогут определить дефект, специфичный для конкретного продукта.

Актуальную информацию о SLES 15 SP7 можно найти в утилитах мониторинга системы SUSE , справочнике по файлам журналов , руководстве по администрированию Zypper , требованиях к файлу подкачки и Btrfs , а также в онлайн-инструкциях по обновлению и откату . Команды и пути восстановления могут различаться в зависимости от пакета обновлений SLES, архитектуры, файловой системы, а также от того, выполняется ли задача установки исправлений или миграции релиза.

Оставить комментарий

Безопасная пересылка Syslog-сообщений SLES с использованием rsyslog и взаимного TLS.

Безопасная пересылка Syslog-сообщений SLES с использованием rsyslog и взаимного TLS.

Отправляйте системные журналы SLES на удаленный сборщик rsyslog по аутентифицированному TLS, с проверкой сертификатов, буферизацией сбоев и тестированием доставки.

Перед повторной попыткой отследите ошибки памяти при обновлении SLES.

Перед повторной попыткой отследите ошибки памяти при обновлении SLES.

Используйте журналы оперативной памяти, файла подкачки, ядра и Zypper, чтобы определить реальное нехватку памяти, защитить состояние пакетов и выбрать более безопасный вариант повторной попытки обновления SLES.

Поддерживайте работоспособность обновлений безопасности Debian 12 на сервере без графического интерфейса.

Поддерживайте работоспособность обновлений безопасности Debian 12 на сервере без графического интерфейса.

Включите автоматические обновления безопасности Debian через SSH, сохраните источники пакетов по умолчанию и проверяйте запланированные запуски с помощью журналов systemd и APT.

Получайте предупреждения SMART Disk от Ubuntu по электронной почте с помощью smartd.

Получайте предупреждения SMART Disk от Ubuntu по электронной почте с помощью smartd.

Сравните варианты доставки почты, настройте smartd в Ubuntu и убедитесь, что предупреждения о состоянии диска попадают в ваш почтовый ящик.

Сбои поиска DNS в Debian 12: восстановите systemd-resolved

Сбои поиска DNS в Debian 12: восстановите systemd-resolved

Восстановите DNS-запросы в Debian 12, проверив systemd-resolved, исправив resolv.conf при необходимости и проверив разрешение DNS-имен исходных файлов и приложений.

В Ubuntu 24.04 не отображается звук через HDMI? Восстановите вывод звука.

В Ubuntu 24.04 не отображается звук через HDMI? Восстановите вывод звука.

Чтобы Ubuntu распознала ваш монитор или телевизор как аудиовыход, выберите его в настройках звука и проверьте список подключений или устройств PipeWire, если HDMI отсутствует.

Устраните ошибки подписи APT, восстановив ключ репозитория.

Устраните ошибки подписи APT, восстановив ключ репозитория.

Устраните предупреждения APT в Ubuntu безопасным способом, определив источник ошибки, обновив его проверенный ключ и проверив результат без отключения защиты.

Как преобразовать трехфазное напряжение, ток, кВт, кВА и коэффициент мощности.

Как преобразовать трехфазное напряжение, ток, кВт, кВА и коэффициент мощности.

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

Ограничение использования ЦП и памяти командой с помощью cgroups в Ubuntu.

Ограничение использования ЦП и памяти командой с помощью cgroups в Ubuntu.

Запустите рабочую нагрузку в рамках systemd с параметрами CPUQuota и MemoryMax, а затем проверьте ограничения с помощью cgroup v2.

Шифрование DNS-сервера Pi-hole на Ubuntu Server 24.04

Шифрование DNS-сервера Pi-hole на Ubuntu Server 24.04

Настройте dnscrypt-proxy в качестве локального DoH-моста Pi-hole на Ubuntu 24.04, указав слушатель только для localhost, выбор резолвера и проверки перед переключением DNS.