LINUX.ORG.RU

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

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

Какой к дьяволу «некритический случай», если процессу не хватило памяти – он мёртв! Всё!

С чего это вдруг? Если процесс короткоживущий да однозадачный, то возможно, но если это не так, а просто сейчас пиковая нагрузка, и какой-то клиент запросил слишком широкую выборку, которая не поместилась в память, — это ровным счётом никак не помешает продолжить обработку остальных запросов, данные которых в память поместились. Ронять весь сервис, возвращая ошибку всем клиентам, и создав в результате сотню-другую автоматических тикетов — спасибо, но нет.

обойдётся в if после каждого malloc’а

Какой кошмар!

и в мучительные размышления «а что делать-то на двадцатом уровне вложенности вызовов» при каждом, опять же, malloc’е.

Никаких мучительных размышлений: установить код с причиной и вернуть ошибку на уровень выше.

Между делом, то, что мы упёрлись в RLIMIT_AS, означает буквально, что данная программа несовместима с данным окружением, т.е. админ создал программе условия, в которых она функционировать не может.

Чем это принципиально отличается от достижения, например, RLIMIT_NOFILE? В обоих случаях мы упёрлись в ограничение ресурса, которое мы можем адекватно обработать.

И «программа несовместима с данным окружением» — это неправильный вывод из данной ситуации. Правильный — «нагрузка превысила установленный предел»; в таком случае давать отлуп «лишним» клиентам это очевидное решение.

Коротко говоря, обработка результата malloc не поможет ничему. Вообще. Совсем. Даже в том 0.0001% случаев. Это просто бессмысленная трата сил.

Хорошо, не обрабатывайте.

Вот пусть тогда systemd и используют только те, у кого такая ситуация имеет место – сколько таких пользователей в мире? Тысяча? Две? И пусть при этом не пытаются его навязать мне и всем остальным ни в чём не повинным пользователям линукса. Тогда, и не раньше, я соглашусь перестать катить баллон на sjw-шного гадёныша поцтеринга.

Мне глубоко наплевать на Поттеринга. systemd — это инструмент, который по взвешенной сумме качеств для меня значительно лучше предыдущего. То, что подавляющее большинство дистрибутивов перешло на него как init по умолчанию или вообще единственный, означает, что для них это тоже так. Вы же со своей стороны вольны использовать дистрибутивы, разработчики которых имеют иное мнение на этот счёт.

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

Какой к дьяволу «некритический случай», если процессу не хватило памяти – он мёртв! Всё!

С чего это вдруг? Если процесс короткоживущий да однозадачный, то возможно, но если это не так, а просто сейчас пиковая нагрузка, и какой-то клиент запросил слишком широкую выборку, которая не поместилась в память, — это ровным счётом никак не помешает продолжить обработку остальных запросов, данные которых в память поместились. Ронять весь сервис, возвращая ошибку всем клиентам, и создав в результате сотню-другую автоматических тикетов — спасибо, но нет.

обойдётся в if после каждого malloc’а

Какой кошмар!

и в мучительные размышления «а что делать-то на двадцатом уровне вложенности вызовов» при каждом, опять же, malloc’е.

Никаких мучительных размышлений: установить код с причиной и вернуть ошибку на уровень выше.

Между делом, то, что мы упёрлись в RLIMIT_AS, означает буквально, что данная программа несовместима с данным окружением, т.е. админ создал программе условия, в которых она функционировать не может.

Чем это принципиально отличается от достижения, например, RLIMIT_NOFILE? В обоих случаях мы упёрлись в ограничение ресурса, которое мы можем адекватно обработать.

И «программа несовместима с данным окружением» — это неправильный вывод из данной ситуации. Правильный — «нагрузка превысила установленный предел»; в таком случае давать отлуп «лишним» клиентам это очевидное решение.

Коротко говоря, обработка результата malloc не поможет ничему. Вообще. Совсем. Даже в том 0.0001% случаев. Это просто бессмысленная трата сил.

Хорошо, не обрабатывайте.

Вот пусть тогда systemd и используют только те, у кого такая ситуация имеет место – сколько таких пользователей в мире? Тысяча? Две? И пусть при этом не пытаются его навязать мне и всем остальным ни в чём не повинным пользователям линукса. Тогда, и не раньше, я соглашусь перестать катить баллон на sjw-шного гадёныша поцтеринга.

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