The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

23.11.2018 20:10  Выпуск Nohang 0.1, предотвращающего OOM в пространстве пользователя

Состоялся первый выпуск проекта Nohang, в рамках которого подготовлен демон для GNU/Linux, обрабатывающий ситуации нехватки памяти и предотвращающий исчерпание свободной памяти (OOM, Out Of Memory). Демон написан на языке Python, потребляет около 10 MiB VmRSS и настраивается с помощью файла конфигурации (/etc/nohang/nohang.conf). По сравнению с аналогичным проектом earlyoom, nohang обладает некоторыми дополнительными возможностями. Код открыт под лицензией MIT.

Основные особенности:

  • Настраиваемая интенсивность мониторинга: если на сервере не предполагаются резкие перепады потребления памяти, то можно снизить нагрузку на процессор, снизив интенсивность мониторинга;
  • При нехватке памяти nohang сначала отправляет SIGTERM процессу с наибольшим oom_score. При дальнейшем падении уровня доступной памяти и отсутствии реакции на SIGTERM процесс с наибольшим oom_score получает SIGKILL. Уровни доступной памяти, при достижении которых должны происходить корректирующие действия, могут задаваться в процентах и в MiB;
  • Возможность отправки GUI уведомлений о результатах завершения процессов (реализовано с помощью notify-send);
  • Возможность отправки GUI уведомлений о низком уровне доступной памяти. В уведомлениях отображается уровень доступной памяти, а также Pid и имя процесса с наибольшим коэффициентом "badness". Предоставляется возможность настойки уровня памяти, при котором отправляются уведомления, и минимальной периодичности отправки уведомлений (по умолчанию уведомления отключены). Рекомендуемые по умолчанию уровни памяти для отправки: одновременное снижение уровней SwapFree и MemAvailable до 20%;
  • Поддержка zram - mem_used_total в качестве триггера (может быть актуально для систем с большим размером хранилища (disksize) и низкой степенью сжатия сохраняемых в zram данных);
  • Предохранение от безусловного завершения невинных процессов: задержки после отправки сигналов (по умолчанию 0.5 секунд для SIGTERM и 3 секунды для SIGKILL) предотвращают возможное массовое безусловное завершение процессов, так как память при завершении процессов может освобождаться не сразу. Имеется возможность игнорировать процессы, имеющие коэффициент "badness" ниже заданного;
  • Возможность модификации "badness" процессов перед выбором жертвы через сопоставление имён процессов с заданным в конфигурации регулярным выражением;
  • Поддержка настройки запуска произвольной команды (например, sendmail или systemctl restart) вместо отправки сигнала SIGTERM жертве, если имя процесса-жертвы совпадает с заданным в конфигурации именем.


  1. Главная ссылка к новости (https://github.com/hakavlad/no...)
  2. OpenNews: Выпуск earlyoom 1.2, процесса для раннего реагирования на нехватку памяти
  3. OpenNews: Facebook открыл код для обработки ситуации нехватки памяти в системе
  4. OpenNews: Релиз ядра Linux 4.6
  5. OpenNews: Релиз ядра Linux 4.18
  6. OpenNews: Механизм уведомления приложений о нехватке памяти в системе
Автор новости: hakavlad
Тип: Программы
Ключевые слова: nohang, oom, memory
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (1), 20:29, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +21 +/
    Почему питон то? Если так хочется удобства (т.е. не C), то плюсцов бы хватило.
     
     
  • 2.3, Your Mama (?), 20:35, 23/11/2018 [^] [ответить]    [к модератору]
  • +5 +/
    Тут и C был бы Ок, ИМХО. Может перепишем на православном?
     
     
  • 3.16, Аноним (16), 22:22, 23/11/2018 [^] [ответить]    [к модератору]
  • +22 +/
    На 1С что ли?
     
     
  • 4.35, Аноним (35), 23:14, 23/11/2018 [^] [ответить]    [к модератору]
  • +12 +/
    Вы зря смеетесь.
    Тут ко мне на днях подошли наши 1с макаки, и потребовали, что бы я на продакшн серверах поставил обработчика языка "OSCRIPT".
    Глянул я это чудо россиянской мысли, посмотрел, увидел, что они даже файлы помощи ("╫ЄхэшхXML.htm" и "─рээ√хPOST╟ряЁюёр.htm" ), записали в некорректной кодировке, и как из интернета оно само тянет невесть какие скрипты из "репозитария" и запускает их, и мне стало плохо.
    Выделил им для забавы отдельную машинку, так эти дегенераты умудрились превратить ее в вирусный рассадник.
     
     
  • 5.89, Гентушник (ok), 18:51, 24/11/2018 [^] [ответить]     [к модератору]
  • +/
    Вы про onescript Разработчики вендузятники, я пытался эту штуку на линуксе запу... весь текст скрыт [показать]
     
     
  • 6.109, пох (?), 14:21, 25/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    да помним, помним мы про npm leftpad авторы этого дерьма заставляют Не предусм... весь текст скрыт [показать]
     
     
  • 7.158, Аноним (-), 08:20, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Eval в битмессаге тоже ничего так получился Целевая аудитория кирпичи откладыва... весь текст скрыт [показать]
     
  • 2.4, Илья (??), 20:38, 23/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Да какая разница? Это же простейшая тула. Питон почти везде установлен
     
     
  • 3.12, Аноним (12), 21:29, 23/11/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Если простейшая то и писать лучше на простом и не требовательном.
     
     
  • 4.24, d (??), 22:36, 23/11/2018 [^] [ответить]    [к модератору]  
  • +8 +/
    На нём и написали.
     
     
  • 5.100, Аноним (100), 04:17, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Не об интеллекте программиста речь была, а о ресурсах системы.
     
  • 3.58, Аноним (58), 06:14, 24/11/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    > почти

    Ключевое слово. Например у меня его нету.

     
  • 3.98, Аноним (98), 23:39, 24/11/2018 [^] [ответить]    [к модератору]  
  • –3 +/
    Специально взглянул исходник. #!/usr/bin/env python3

    Его вообще почти нигде нет по-умолчанию.

    Зачем такие программы писать на питоне?.... Почему нельзя сборку на C сделать?....

     
  • 2.5, Stax (ok), 20:38, 23/11/2018 [^] [ответить]    [к модератору]  
  • +11 +/
    Если посмотреть на код, становится понятно, почему. В питоне батарейки в комплекте, как известно. А в плюсах без сторонних библиотек делать нечего - даже регэкспов нет (я знаю, что в распоследнем стандарте теоретически есть, но компиляторов и libstdc++ с поддержкой этих стандартов в продакшене вы не встретите). А код чуть менее чем полностью состоит из парзинга всякого разного в /proc, /sys и иже с ними. Такие вещи не только проще, но и безопаснее писать на безопасном языке, где нет целочисленных переполнений, строковых переполнений, выходов за границы массивов, небезопасных операций с указателями и прочего, особенно с учетом того, что программа работает под рутом и не должна добавлять уязвимостей.

    Это можно написать на плюсах, но оно будет хотеть кучу библиотек (напр. монстра boost ради реэкспов) и безопасно это написать тоже будет намного сложнее.

     
     
  • 3.7, ноня (?), 20:54, 23/11/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Это все, конечно, хорошо, я целиком за питон Но, приличия ради, надо упомянуть ... весь текст скрыт [показать]
     
     
  • 4.9, Gannet (ok), 21:13, 23/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Раз уж на то пошло, я за Assembler!
     
     
  • 5.67, View (?), 10:27, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Зачем им RegExp-ы? Может ещё нейросети туда завезти?
     
  • 5.159, Аноним (-), 08:21, 30/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Раз уж на то пошло, я за Assembler!

    А для каких архитектур ты его умеешь? На ARM или MIPS смогешь портануть?!

     
     
  • 6.167, Gannet (ok), 04:40, 01/12/2018 [^] [ответить]    [к модератору]  
  • +/
    Я не сказал, что я его умею. Но это ведь не мешает мне быть "За", правда?
     
  • 4.64, z (??), 09:11, 24/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    иногда мои программы на языке *вставьте любой язык* тоже не утруждаются проверкой входных данных
     
  • 3.10, Аноним (10), 21:18, 23/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Я бы на вашем месте людей не дезинформировал по поводу поддержки последних станд... весь текст скрыт [показать]
     
     
  • 4.13, Stax (ok), 21:29, 23/11/2018 [^] [ответить]    [к модератору]  
  • +6 +/
    Пару лет - поддерживается. Проблема в том, что вы на сервере не встретите штатных компиляторов, которые были бы свежее пары лет. Возьмите свежайший релиз RHEL 7.6 (2018 год) - gcc и libstdc++ 4.8.5 - самые тривиальные регэкспы там или не скомпилируются, или будут непрерывно падать после компиляции. Возьмите еще поддерживаемый RHEL 6.10 (тоже 2018 год) - gcc 4.4, там вообще на эту тему ничего нет.

    И то, что в распоследней убунте или федоре таки будет gcc / libstdc++, которые это умеют, никак не спасает - софт-то нужен на сервере.

    Так что в жизни весь реальный код скорее всего будет использовать pcre (если на C), его же либо boost либо что-нибудь еще, если C++.

    А в питоне модуль re был еще в версии 1.5 (1999 год), которая была где-то в районе 6 редхата. Который просто 6/6.1/6.2, не rhel 6.

     
     
  • 5.22, Michael Shigorin (ok), 22:33, 23/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Ну pcre, положим, тоже уж немолодое.
     
     
  • 6.27, Stax (ok), 22:41, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Да, я всего лишь имел ввиду, что это отдельная внешняя зависимость, а в питоне "все в комплекте" (и, к слову сказать, от pcre он не зависит).
     
     
  • 7.42, Аноним (1), 00:44, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Сейчас бы говорить о комплекте в ОС с репозитариями.
     
  • 5.33, Аноним (33), 22:58, 23/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Да что за фигню вы несёте, регекспы давно превосходно работают.
     
     
  • 6.122, Ложечка (?), 18:47, 25/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Всё он правильно говорит В libstdc 4 8 5 в текущем RHEL7, например заглушки с... весь текст скрыт [показать]
     
     
  • 7.128, Аноним (33), 22:51, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Вывод какой? Правильно, не юзать старьё.
     
  • 5.37, all_glory_to_the_hypnotoad (ok), 23:42, 23/11/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Несёшь полнейшую чушь Если взять мировых айти гигантов вроде G, FB и их братьев... весь текст скрыт [показать]
     
     
  • 6.44, Алексей Михайлович (?), 01:45, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Лицокнига очень жалует D, кстати говоря. И memory safe, и компилится в нативный код, и много чего вкусного из коробки имеет.
     
     
  • 7.45, all_glory_to_the_hypnotoad (ok), 01:51, 24/11/2018 [^] [ответить]     [к модератору]  
  • +/
    В FB собирают маргиналов со всего мира в надежде на их талантливость, даже места... весь текст скрыт [показать]
     
     
  • 8.168, Алексей Михайлович (?), 10:17, 11/12/2018 [^] [ответить]    [к модератору]  
  • +/
    > В FB собирают маргиналов со всего мира в надежде на их талантливость,
    > даже местами упарываются функциональщиной. Да в любой крупной компании найдётся букет
    > используемых ЯП. Но основным ЯП серверной разработки кластерного ПО пока осаётся
    > С/C++.

    Netflix и eBay тоже, наверное, маргиналов по всему миру днём с огнём ищут.

     
  • 6.54, Владимир (??), 04:17, 24/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Подождите, у меня у одного возник вопрос а наxера на продакшен сервере компилятор? Ради рантайма что ли?
    Типа задеплоить с нужной либой рантайма компилятора это фуфуфу и моветон?
     
     
  • 7.65, Акакжев (?), 09:46, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Подождите, у меня у одного возник вопрос а наxера на продакшен сервере компилятор? Ради рантайма что ли?

    Это был такой... ораторский приём.

     
  • 7.86, Stax (ok), 17:03, 24/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    На продакшен сервере компилятора может не быть Но почему код надо собирать на т... весь текст скрыт [показать]
     
  • 3.20, asdasd (?), 22:31, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    C++11 с regexp не распоследний и реализуется это не рантаймом, а заголовками с исходниками.
     
     
  • 4.25, Stax (ok), 22:39, 23/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Возможно, но заголовки с исходниками (те libstdc++-devel) настолько же старые, насколько и gcc.
     
     
  • 5.30, asdasd (?), 22:52, 23/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Я все равно вас не понял. G++, Clang++, MSVC поддерживают. Что еще нужно?
     
     
  • 6.87, Stax (ok), 17:05, 24/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Возьмите виртуалку с RHEL6 7 и скопимпилируете ваш код с помощью штатных g или... весь текст скрыт [показать]
     
  • 3.43, Аноним (43), 00:53, 24/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > компиляторов и libstdc++ с поддержкой этих стандартов в продакшене вы не встретите

    Какой-то у вас замшелый продакшн. Поддержка regex появилась в gcc 4.9, который вышел в 2015.

     
     
  • 4.72, Аноним (72), 13:11, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    В 2014-м
     
  • 3.47, Аноним (47), 02:20, 24/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    И все же, подобные штуки стоило писать на системном языке, а не пайтоне.
     
     
  • 4.56, Ordu (ok), 05:51, 24/11/2018 [^] [ответить]     [к модератору]  
  • –3 +/
    В linux е пайтон системный язык Для венды он инороден, в линуксах же последние ... весь текст скрыт [показать]
     
     
  • 5.60, Аноним (58), 06:19, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > в линуксах же последние лет 15-20

    Как будешь объяснять что у меня его нету? При этом полноценный десктоп на C, C++, Qt.

     
     
  • 6.61, Ordu (ok), 07:01, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    И что это за дистрибутив, если не секрет?
     
     
  • 7.63, Илона (??), 08:48, 24/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Арч 'я у мамы конструктор'.

    Питона у него нет для того чтобы писать в интернете что у него нет питона.

    И сабж ему не нужен принципиально.

     
     
  • 8.157, Аноним (-), 08:17, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    У меня на половине дебианов тоже питона нет Потому что тормозное глюкавое гуано... весь текст скрыт [показать]
     
  • 6.73, Аноним (72), 13:13, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >Как будешь объяснять что у меня его нету?

    Могу только предположить, что у тебя не Gentoo.

     
  • 5.156, Аноним (-), 08:14, 30/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > В linux'е пайтон системный язык.

    Какой он на... системный? Это язык скриптомакак, типа тех которые на васике в 80 програмили. Для работы системы это гуидогуано даром не упало.

     
  • 3.55, iPony (?), 04:27, 24/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Если посмотреть на код, тотпонятно, что это наколеннная утилита написаная абы ка... весь текст скрыт [показать]
     
     
  • 4.74, Аноним (72), 13:14, 24/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Кто бы про продакшон говорил, но не маководы.
     
  • 3.59, Аноним (58), 06:17, 24/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Вообще-то есть И с помощью stl можно сделать всё, было бы желание Для такого п... весь текст скрыт [показать]
     
  • 3.62, barmaglot (??), 08:28, 24/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Какая махровая чушь GCC поддерживает C 11 уже около 7-ми лет точно c 4 3 x ес... весь текст скрыт [показать]
     
     
  • 4.88, Stax (ok), 17:10, 24/11/2018 [^] [ответить]     [к модератору]  
  • +/
    RHEL любой версии Впрочем, можете взять SLES 12, там ситуация аналогичная SLES... весь текст скрыт [показать]
     
  • 3.106, Kir (??), 12:32, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Монстр boost ради regex  это одна маленькая библиотека, которая линкуется статически
     
     
  • 4.120, Stax (ok), 17:24, 25/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Ну, некоторым не нравится, что это доступно только в составе 150 МБ комплекта б... весь текст скрыт [показать]
     
  • 2.26, th3m3 (ok), 22:39, 23/11/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Вот и я думаю, надо было писать на Rust.
     
     
  • 3.75, Аноним (72), 13:17, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    О нет, уж лучше Python, хоть маргинальщина. Этого Rust нет в системе у ещё гораздо большего числа пользователей, чем Python.
     
     
  • 4.79, th3m3 (ok), 14:18, 24/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    А он в системе и ненужен для запуска, это же не Python Rust же компилируемый... весь текст скрыт [показать]
     
     
  • 5.83, mikhailnov (ok), 16:01, 24/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    На e2k mike@ уже завез Rust? Нет и не будет в ближайшее время.
     
  • 2.66, Анонидзе (?), 10:15, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    А чем он плох? Простой и очень удобный язык. Или ты хочешь, чтобы у демона, предотвращающего нехватку ОЗУ, постоянно текло это самое ОЗУ?
     
  • 2.155, Аноним (-), 08:11, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    В такой штуке объективно достаточно гольного си с libc в зависимостях Ну это ес... весь текст скрыт [показать]
     
     ....нить скрыта, показать (61)

  • 1.2, Аноним (2), 20:33, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Эта тулза мне нужна.

    29 выпуск федоры течёт не отображает какой процесс не освобождает память.

     
     
  • 2.23, Michael Shigorin (ok), 22:34, 23/11/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Возьмите lavaps :)
     
  • 1.8, Аноним84701 (ok), 21:09, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +7 +/
    earlyloom, nohang, oomd (https://www.opennet.ru/opennews/art.shtml?num=48994)
    Астрологи объявили полугодие юзерспейсных заменителей ООМ?

    Интересно, мне одному такая формулировка режет глаз?
    > Предохранение от убийства невинных процессов … возможное массовое убийство процессов

    Вместо:
    > "Предохранения от принудительного завершения непричастных процессов … возможное массовое завершение процессов"
    >

     
     
  • 2.14, Gannet (ok), 21:45, 23/11/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Предлагаю следующую:
    Предотвращение геноцида процессов не замеченных в причастности к жадности памяти и излишней геперактивности в дисковом пространстве.
     
  • 2.36, Аноним (36), 23:37, 23/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    People for ethical treatment of digital entities. Stop killing them!
     
  • 2.48, Аноним (47), 02:22, 24/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Все это похоже на жуткие костыли.
     
  • 2.96, Himik (ok), 23:13, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    По-моему в FSF киллеров объявили вне закона, и вот опять...
     
  • 2.154, Andrey Mitrofanov (?), 09:49, 29/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Прочитал заголовок---^^, подумал "новая игрушка поттера".  Ан нет.

    > Астрологи объявили полугодие юзерспейсных заменителей ООМ?

    //Ага. Про это уже пошутили, надо держаться. Держаться.

     
  • 1.11, Аноним (11), 21:26, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    а для докера эта тулза имеет смысл? вот с oom падает контейнер, какой профит предоставляет данная утилита, не вижу рабочей ситуации.
     
     
  • 2.49, DerRoteBaron (ok), 02:30, 24/11/2018 [^] [ответить]     [к модератору]  
  • +/
    такой, что контейнер будет перезапущен не тогда, когда памяти уже нет, почти все... весь текст скрыт [показать]
     
  • 1.15, Аноним (15), 22:02, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +4 +/
    Почему на python, а не на nodejs?
     
     
  • 2.17, Аноним (17), 22:25, 23/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    в node.js был npm leftpad, а пихон это "искуственный дата майнинк дип лёрнинк бик дата интелект" с нескучным синтаксисом
     
  • 2.18, Аноним (18), 22:26, 23/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Это сарказм?
     
  • 2.28, th3m3 (ok), 22:41, 23/11/2018 [^] [ответить]    [к модератору]  
  • +7 +/
    Радуйся, что не на Electron.
     
  • 2.29, Аноним (33), 22:45, 23/11/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Зачем мелочиться, надо сразу на electron.
     
  • 2.112, Xasd (ok), 14:54, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    заменить python на electron ещё ни кто не успел предложить?
     
  • 1.21, Аноним (33), 22:31, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Походу линю нужен особый сигнал OOM, сообщающий процессу, что если он сейчас немедленно не освободит память, то его прибьют. Всё лишь бы баг 12309 не фиксить.
     
     
  • 2.76, Аноним (72), 13:20, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    За...ли вы уже со своим 12309, не смешно уже, придумайте шутку посвежее.
     
     
  • 3.82, Кирилл (??), 15:07, 24/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Да, не смешно, потому что сколь бы не говорили о том, что 12309 давно исправлен (раза три уже говорили, что "ну вот теперь точно пофиксили"), он до сих поп проявляется и имеет место быть.
     
     
  • 4.139, none_first (ok), 13:59, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    цитата с лурка http lurkmore to 12309 D0 9D D0 B0_ D1 81 D0 B0 D0 BC D0 BE D... весь текст скрыт [показать]
     
  • 4.160, Аноним (160), 08:30, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    До некоторых так за столько лет никак не дойдет что разные тормоза разныз конфиг... весь текст скрыт [показать]
     
     
  • 5.166, Аноним (-), 13:32, 30/11/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    До некоторых за столько лет никак не дойдет, что 12309 давно стало собирательным... весь текст скрыт [показать]
     
  • 2.77, Аноним (-), 13:35, 24/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Тогда почему вы пишите комментарии в интернете, а не фиксите баг
     
  • 2.131, Аноним (131), 01:58, 26/11/2018 [^] [ответить]    [к модератору]  
  • +/
    И процесс, получив такой сигнал, начинает лихорадочно шариться по своему адресному пространству выискивая что бы такого освободить, тем самым только увеличивая интенсивность пейджинга.
     
  • 2.136, SysA (?), 12:19, 26/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Bug 12309 - Status: CLOSED CODE_FIX ;)
     
  • 1.32, Онаним (?), 22:58, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Зачем оно? kernel oom handler'а мало?
     
     
  • 2.46, Аноним (46), 02:12, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Вроде неоднократно везде писали, что он слишком слоупочный и ненастраиваемый.
     
     
  • 3.68, Онаним (?), 10:56, 24/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Что значит ненастраиваемый? Есть oom_adj, есть memory cgroups.
     
  • 3.161, Аноним (160), 08:33, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Если своп убрать нафиг или перенести в zram эмулировать оперативку винчом слоуп... весь текст скрыт [показать]
     
  • 1.38, M i M (?), 23:46, 23/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Глянул.
    Какой-то трэш и каша.
    Комментарии и сообщения в перемешку на английском и на русском.
    Весь код свален в одну кучу:
    https://github.com/hakavlad/nohang/blob/master/nohang
     
     
  • 2.39, M i M (?), 23:57, 23/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    И да, ни одного теста не увидел Пожалуй, я бы побоялся такое запускать, даже ес... весь текст скрыт [показать]
     
  • 2.40, Нодежээсовцы и питонисты (?), 00:02, 24/11/2018 [^] [ответить]     [к модератору]  
  • –3 +/
    Ну если ты не понимаешь что-то это не значит что написано плохо Писать юникс-де... весь текст скрыт [показать]
     
     
  • 3.41, M i M (?), 00:05, 24/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Код там не сложный, но его качество оставляет желать лучшего.
     
  • 2.57, Ordu (ok), 05:55, 24/11/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Там всего 1 5k строк, включая комменты и пустые строки, кои по моему в коде испо... весь текст скрыт [показать]
     
     
  • 3.84, Аноним (84), 16:25, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Это уже очень много. Есть принцип единой ответственности, который явно нарушается.
     
     
  • 4.92, Ordu (ok), 19:48, 24/11/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Знаешь, прежде чем сувать эти принципы куда-нибудь, надо посмотреть насколько он... весь текст скрыт [показать]
     
  • 3.103, zoonman (ok), 08:13, 25/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Магические константы, забытые комменатрии, отсутствие какой-либо структуры Код ... весь текст скрыт [показать]
     
     
  • 4.111, Ordu (ok), 14:40, 25/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Я к любому коду могу придраться, и сказать ой, фу, тут не то, а здесь не так К ... весь текст скрыт [показать]
     
     
  • 5.113, Xasd (ok), 15:00, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > в нём чётко указано, что версия софтины 0.1.

    это много или мало?

    если там было бы написано что версия софтины 345.0 (а не 0.1) -- это говорило бы о чём-то другом?

     
     
  • 6.114, Ordu (ok), 15:10, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >> в нём чётко указано, что версия софтины 0.1.
    > это много или мало?
    > если там было бы написано что версия софтины 345.0 (а не 0.1)
    > -- это говорило бы о чём-то другом?

    Да.

     
  • 6.129, zoonman (ok), 23:12, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Это такой способ сделать тег. Поставил первый попавшийся тег, v0.1 показался нормальным.
    Человек знакомый с версионированием сделал бы 0.0.1-alpha.
    Т.к. это самая настоящая альфа.
     
     
  • 7.133, Ordu (ok), 02:59, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Бла-бла-бла Ещё один начитавшийся учебников Как много тебе известно примеров п... весь текст скрыт [показать]
     
     
  • 8.140, none_first (ok), 14:36, 26/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    https://greenteapress.com/wp/think-bayes/ если про эту книгу - то название несколько другое ;)
     
  • 8.148, zoonman (ok), 19:45, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Пора кому-то повзрослеть Учебники написаны на основе реального опыта других люд... весь текст скрыт [показать]
     
     
  • 9.150, Ordu (ok), 22:55, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Да, несомненно Но учебник -- это не опыт Даже если это хороший учебник, то чте... весь текст скрыт [показать]
     
  • 5.130, zoonman (ok), 23:16, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Торвальдс уже давно не тот: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id= ;-)
     
     
  • 6.134, Ordu (ok), 03:00, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Вот к чему ты это сказал Во-первых, не то чтоб давно, во-вторых, мне-то что Ес... весь текст скрыт [показать]
     
     
  • 7.137, нах (?), 12:31, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    нет, если ты не собираешься присылать ему патчи Если патч, исправляющий критиче... весь текст скрыт [показать]
     
     
  • 8.138, Ordu (ok), 13:37, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Ты о чём вообще, родный Ты тред читал Я сказал о том, что я следую завету Торв... весь текст скрыт [показать]
     
     
  • 9.142, Michael Shigorin (ok), 17:30, 26/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Коллеги, прям озадачили.
     
  • 9.143, нах (?), 17:59, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    ты топ-топ менеджер линукса или сравнимого по размеру проекта Санитары Этого ... весь текст скрыт [показать]
     
     
  • 10.149, Ordu (ok), 21:33, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Нет, но и тем не менее я советую даже разработчикам небольших и даже прям скажем... весь текст скрыт [показать]
     
  • 4.145, Аноним (145), 19:09, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Описание есть в начале файла Где Структура есть, код разделен на разделы, разд... весь текст скрыт [показать]
     
     
  • 5.146, zoonman (ok), 19:24, 26/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Вот целый кусок забытых комментариев https github com hakavlad nohang blob mas... весь текст скрыт [показать]
     
     
  • 6.147, Аноним (145), 19:29, 26/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Это прям свежий коммит, не от автора. Будет почищено вскоре. Ничего не забыто.
     
  • 2.152, Аноним (152), 17:56, 28/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Говнокод ещё тот

    # НА МЕСТЕ!!!
    if 'swap_min_warnings' in config_dict:
        swap_min_warnings = config_dict['swap_min_warnings']

     
     
  • 3.153, Аноним (145), 05:14, 29/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Что Вас смутило в этом участке кода?
     
     
  • 4.163, Аноним (-), 08:40, 30/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Что Вас смутило в этом участке кода?

    Ну вот меня например такой комент в коде смущает. Видя такое я как-то сразу прикидываю что и остальное каКчество кода оправдает самые смелые ожидания.

     
  • 2.162, Аноним (-), 08:38, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Это ты еще код bitmessage читать не пробовал Сразу видно - крутой про огреб кру... весь текст скрыт [показать]
     
     ....нить скрыта, показать (29)

  • 1.50, Аноним (50), 02:42, 24/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Решение несуществующей проблемы.
    Намного логичнее выставить лимиты памяти в cgroups тем процессам, которые ее могут схавать. Да, браузеру.
     
     
  • 2.119, Аноним (145), 16:46, 25/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Проблема есть, look at https www reddit com r linux comments 56r4xj why_are_lo... весь текст скрыт [показать]
     
     
  • 3.132, Аноним (132), 02:45, 26/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Это не проблема, а вопрос неопытного пользователя На который ему ответили В т... весь текст скрыт [показать]
     
  • 1.51, anonkin (?), 03:06, 24/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    *лицоладонь*

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

    и будет эпично, если сам этот nohang подвесит систему))

     
     
  • 2.70, Нанобот (ok), 12:18, 24/11/2018 [^] [ответить]     [к модератору]  
  • +/
    просто некоторые свято верят, что любую проблему можно решить, если прибивать пр... весь текст скрыт [показать]
     
     
  • 3.116, Аноним (-), 15:43, 25/11/2018 [^] [ответить]     [к модератору]  
  • +/
    systemd что ли ... весь текст скрыт [показать]
     
  • 1.52, Sw00p aka Jerom (?), 03:59, 24/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    я вот только одного вкурить не могу - в чём разница между убитым процессом (из-за ООМ) и процессом который никогда не выполнится (то есть не использовать данное ПО, которое течет)?
     
  • 1.53, Vitaliy Blats (?), 04:13, 24/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Вот уж типично линуксячий подход - создать технологию которая будет килять процессы для освобождения памяти, а потом создать тулзу которая будет мешать этой технологии которая киляет процессы для освобождения памяти.

    Если процесс стал потреблять ОЗУ - он это сделал не зря, значит ему так нужно. Что будет если mysqld с криво настроенным innodb_buffer_pool_size получит SIGTERM? Он резко выгрузит все таблицы, кэши и тд ? Сомневаюсь. А значит получит SIGKILL и будет то же самое что и просто с OOM но при этом на серваке не будет стоять левое пихоновое поделие. А раз так, то зачем ставить это на сервер ?


    Короче что только не придумают, лишь бы не сделать
    fallocate -l 2G /anti_oom;mkswap /anti_oom;swapon /anti_oom

     
     
  • 2.69, Онаним (?), 10:59, 24/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    fallocate -l 2G anti_oom mkswap anti_oom swapon anti_oom Когда упрётесь в про... весь текст скрыт [показать]
     
     
  • 3.81, Vitaliy Blats (?), 14:24, 24/11/2018 [^] [ответить]     [к модератору]  
  • +4 +/
    Переполнение памяти обычно бывает по двум причинам 1 Владелец железки криворук... весь текст скрыт [показать]
     
     
  • 4.90, Онаним (?), 19:27, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    1) да
    2) см. п.1
     
     
  • 5.91, Онаним (?), 19:28, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    За исключением свопа в п.1 - как только скрипт у хостера заметит аномальную дисковую активность от непрерывно юзаемого свопа, он сразу же нерегламентированный IOPS порежет.
     
  • 2.94, Аноним (33), 22:34, 24/11/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    Понимаете ли, на линуксе совершенно отвратительные механизмы управления памятью ... весь текст скрыт [показать]
     
     
  • 3.95, Michael Shigorin (ok), 22:42, 24/11/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Ну да, ну да.  LGBT-шники из MoFo жрут память тоннами, а виноват линукс.  И пишет нам об этом многолетний хакер ядёр и VM-ов, не иначе.
     
     
  • 4.102, Аноним (102), 06:48, 25/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Firefox так себя ведет не важно под какой ОС Из всех браузеров включая Edge Им... весь текст скрыт [показать]
     
  • 4.117, Аноним (33), 15:46, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Как уже заметили,жрёт на всех ОС, а колом всё встаёт шт этого только на Лине.
     
     
  • 5.151, трурль (?), 20:43, 27/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Как уже соврали,жрёт на всех ОС, а колом всё встаёт шт этого только на Лине.

    fixed

     
  • 3.101, Аноним (102), 06:41, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Чем-то же нужно мотивировать продажу 32+гб ноутбуков.
    Поделия JetBrains на виртуалке с 4гб озу уже моментально пишут в swap после открытия Hello World.
     
     
  • 4.118, Аноним (33), 15:48, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    IDE под JVM лучше вообще не использовать.
     
  • 2.164, Аноним (-), 08:45, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    А что будет, если ядру потребуется память и оно не сможет ее себе выкроить, сэр ... весь текст скрыт [показать]
     
  • 1.78, RomanCh (ok), 13:53, 24/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Какой дурдом. Пишем watchdog для контроля потребления ресурса на языке который сам любит пожрать этого ресурса. Напоминает государственную систему управления - нужно больше чиновников контролирующих потребление государственных средств!

    Что только не сделают что бы cgroups + cgrulesengd не изучать...

    PS

    ps -C cgrulesengd -o rss
      RSS
    1712

     
  • 1.93, InuYasha (?), 21:52, 24/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А летом было вот это: https://www.opennet.ru/opennews/art.shtml?num=48994 от фейсбука =)
     
     
  • 2.97, Аноним (97), 23:35, 24/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Такое вот хреновое лето... (с)
     
  • 1.99, Аноним (102), 02:37, 25/11/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Подозреваю если его переписать на C C Go Rust whatever он будет занимать 1 Мб ... весь текст скрыт [показать]
     
     
  • 2.104, Аноним (104), 10:31, 25/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Feel free to implement?
     
  • 2.108, Аноним (145), 14:05, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Больше. Earlyoom на C занимает 2 МБ.
     
     
  • 3.121, Аноним (33), 18:21, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >About 2 MiB (VmRSS), though only 220 kiB is private memory (RssAnon). The rest is the libc library (RssFile) that is shared with other processes.
     
  • 3.165, Аноним (-), 08:48, 30/11/2018 [^] [ответить]     [к модератору]  
  • +/
    У питона один только интерпретатор нынче занимает заметно больше Это при том чт... весь текст скрыт [показать]
     
  • 2.135, Проходил мимо (?), 07:13, 26/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Если его переписать на С, то, думаю, он будет занимать не более сотни килобайт.

    У Rust бинарник, призванный анализировать лог почтового сервера и собранный с ключом --release занимает на диске порядка 400 Кб, а если собрать отладочную версию, то порядка 1.3Мб. При этом дебажная версия обрабатывает 500 Мб mail.log примерно за 2 минуты, а релизная примерно за 10 секунд. Я хз, как им удалось так затормозить дебажную версию, до этого ни в одном языке таких тормозов не было. И это не ошибка в алгоритме, это именно тормоза кода, так как --release работает быстро.

    У Go бинарник на диске весит порядка 2Мб, если сделать ему strip, то от несколько худеет, но при этом это статическая версия, не имеющая никаких зависимостей.

     
  • 1.105, Ддд (?), 11:12, 25/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Издевательство. Могу на Голанг сиатически слинкованный бинарник запилить и весить будет мегабайт
     
     
  • 2.107, Аноним (145), 14:03, 25/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Кстати, https://github.com/hakavlad/nofreeze
     
     
  • 3.110, Аноним84701 (ok), 14:26, 25/11/2018 [^] [ответить]     [к модератору]  
  • +/
    code func main var t float64 0 001 var oo float64 1000000000 t v... весь текст скрыт [показать]
     
     
  • 4.124, КГБ СССР (?), 19:09, 25/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Вот ведь как бывает: один аноним не поленился заглянуть в г-нокод, а другие заберут в продакшын. Программа как раз на должном уровне. :)

    yoba, yoba, yoba!

     
  • 1.115, Аноним (115), 15:33, 25/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Очень хорошая и нужная вещь!!! Совместно с ulatencyd можно выжать максимум с компа!!!
     
  • 1.125, Аноим (?), 21:48, 25/11/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • –3 +/
    Вместо того, чтобы расширить функционал ООМ, запилили ненужную прослойку Всегда... весь текст скрыт [показать]
     
     
  • 2.126, Stax (ok), 22:26, 25/11/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    > Вместо того, чтобы расширить функционал ООМ, запилили ненужную прослойку. Всегда так. Вместо
    > того, чтобы обновить ifconfig - объявили ее deprecated и написали сразу
    > веер новых фуфлокоманд.
    > Linux-way как он есть

    У вас какой-то баттхерт личного характера на тему устаревания ifconfig? Е-мае, больше 15 лет как iproute2 в ядре а ifconfig не более чем обертка, он раньше 2000 года появился точно. Где-то с ядра 2.2 еще. Можно было за этот срок и научиться пользоватся ip, не?

    А по поводу linux-way - ну тут решили так, а что такого? Все равно стандарта никакого на ifconfig/route нет. Их синтаксис в линуксе, фряхе и солярисе разный, возможности тоже разные.

     
     
  • 3.144, нах (?), 18:09, 26/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Все равно стандарта никакого на ifconfig/route нет. Их синтаксис в линуксе,
    > фряхе и солярисе разный, возможности тоже разные.

    то есть собственно, ровно до того места, где они одинаковые - кривой враппер, который еще в 2000м грозились выкинуть, эту самую совместимость вполне обеспечивает. Ну вдруг забрел админ bsd386 из криокамеры, и ему к ней непременно надо по ip подключиться, чтоб обратно залезть - на это хватит и его умений и того ifconfig.
    (на самом деле там не так все солнечно - это два разных ядерных интерфейса, первый тоже для совместимости, используется, но крайне редко по делу, а второй теоретически может быть не вкомпилен в ядро)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor