LINUX.ORG.RU

История изменений

Исправление bugfixer, (текущая версия) :

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

Система - вовсе не обязательно, а вот процессу однозначно плохо. Наверное придётся таки написать длинный пост, что для меня крайне нехарактерно. Устраивайтесь поудобнее. Итак…

У подхода «падать сразу» есть масса неоспоримых преимуществ:

  1. Простота (тут всё понятно)
  2. Детерминированность (тут тоже)
  3. Impact. Народ любит всякие медицинские вещи в пример приводить, а мне вот не очевидно что условная «остановка сердца на 15 секунд с дальнейшей нормальной его работой» хуже чем провал в «фиксированные 40 ударов в минуту на последующие 24 часа».
  4. Visibility. Падающий процесс трудно замести под ковёр. Ваши operations об этом будут знать, а соответственно и вы об этом будете знать и сможете отреагировать.
  5. Уход от ментальности «это они виноваты, а у меня лапки». Если вы допустили что у процесса закончилась память - вы, именно ВЫ а не кто-то ещё, что-то делаете не так. И с этим нужно разбираться. И хорошо если это какой-то несуразно длинный rogue allocation из-за недостаточной валидации входных данных и/или запросов (это вы легко пофиксите), может вы в принципе кешируете слишком много, может у вас в памяти куча ненужного мусора болтается, может на машинке памяти неадекватно мало для её задач. Этот список бесконечен на самом деле. Но главный поинт в том что разбираться придётся, и именно вам.

Остановлюсь-ка, пожалуй, я пока на этом…

Исходная версия bugfixer, :

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

Система - вовсе не обязательно, а вот процессу однозначно плохо. Наверное придётся таки написать длинный пост, что для меня крайне нехарактерно. Устраивайтесь поудобнее. Итак…

У подхода «падать сразу» есть масса неоспоримых преимуществ:

  1. Простота (тут всё понятно)
  2. Детерминированность (тут тоже)
  3. Impact. Народ любит всякие медицинские вещи в пример приводить, а мне вот не очевидно что условная «остановка сердца на 15 секунд с дальнейшей нормальной его работой» хуже чем провал в «фиксированные 40 ударов в минуту на последующие 24 часа».
  4. Visibility. Падающий процесс трудно замести под ковёр. Ваши operations об этом будут знать, а соответственно и вы об этом будете знать и сможете отреагировать.
  5. Уход от ментальности «это они виноваты, а у меня лапки». Если вы допустили что у процесса кончилась память - вы, именно ВЫ а не кто-то ещё, что-то делаете не так. И с этим нужно разбираться. И хорошо если это какой-то несуразно длинный rogue allocation из-за недостаточной валидации входных данных и/или запросов (это вы легко пофиксите), может вы в принципе кешируете слишком много, может у вас в памяти куча ненужного мусора болтается, может на машинке памяти неадекватно мало для её задач. Этот список бесконечен на самом деле. Но главный поинт в том что разбираться придётся, и именно вам.

Остановлюсь-ка, пожалуй, я пока на этом…