1.94, кек (?), 16:33, 26/08/2019 [ответить] [﹢﹢﹢] [ · · · ] | +/– | Вот обновленное сравнение юзерспейсных киллеров earlyoom простой, лёгкий, стаб... большой текст свёрнут, показать | |
1.1, Аноним (1), 22:59, 24/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +20 +/– |
> отправляет через DBus предложение процессам о необходимости умерить аппетиты
До сегодняшнего дня, соответственно, приложениям неоткуда была узнавать о том, что память заканчивается.
| |
|
2.6, Аноним (6), 23:15, 24/08/2019 [^] [^^] [^^^] [ответить]
| +12 +/– |
>отправляет через DBus предложение процессам о необходимости умерить аппетиты
С трудом верится, что процессы не будут игнорировать эти сигналы. Скорее всего почти все проги будут забивать кек на этот сигнал.
| |
|
3.13, Xasd (ok), 23:44, 24/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> отправляет через DBus предложение процессам о необходимости умерить аппетиты
> С трудом верится, что процессы не будут игнорировать эти сигналы. Скорее всего почти все проги будут забивать кек на этот сигнал.
интересно, а точно ли процессы должны слушать этот DBus а не сами лезть в /proc/pressure/memory ?
какой толк от Демона если это всего-лишь посто прослойка?
| |
|
4.81, КО (?), 09:15, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Универсализм настройки. Так каждому приложению надо изобретать тот порог по которому умерять аппетит.
| |
|
5.83, Xasd5 (?), 10:27, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
а нельзя так придумать чтобы работало без кручения руками настроек?
| |
|
4.84, Ordu (ok), 12:34, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
> какой толк от Демона если это всего-лишь посто прослойка?
Эта прослойка работает через универсальный интерфейс взаимодействия с внешней средой. Не поллинг файликов: поллинг файликов в главном цикле где хочется ограничить latency (скажем, чтобы гуй не залипал) -- это самоубийство. Тут правда псевдофс, она по идее не должна блокировать файловые операции, но я не знаю в точности, даёт ли ядро такие гарантии, и даже выяснять не хочу: при наличии оповещений по dbus, я предпочту их.
| |
|
5.88, Аноним (88), 13:13, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Эта прослойка работает через универсальный интерфейс взаимодействия с внешней средой
Это откуда у гномеров руки растут?
| |
|
6.90, Ordu (ok), 14:43, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>> Эта прослойка работает через универсальный интерфейс взаимодействия с внешней средой
> Это откуда у гномеров руки растут?
Это через dbus. Если место роста рук у других не позволяет им использовать dbus, то тогда да, можно указать в качестве причины место роста рук.
| |
|
|
|
|
|
|
2.3, Аноним (6), 23:03, 24/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>Или это типичный GNOME-way?
This. Это поделка уровня earlyoom 0.1, c той лишь разницей, что детекцию проводит через /proc/pressure/memory вместо /proc/meminfo.
| |
|
|
2.10, Аноним (6), 23:28, 24/08/2019 [^] [^^] [^^^] [ответить]
| +3 +/– |
А у раста бинарники слишком жирные и его еще никто не выучил.
| |
|
3.18, Аноним (18), 23:58, 24/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Причем тут размеры бинарников раста? Посмотри сколько рамы на твоем десктопе занимают Gnome Software + PackageKitD.
| |
|
4.71, Аноним (71), 23:01, 25/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Все и так плохо, давай ещё и раста подкинем, чтобы совсем адъ?
| |
|
|
2.11, Аноним (6), 23:29, 24/08/2019 [^] [^^] [^^^] [ответить]
| +3 +/– |
в earlyoom утечек нет, хоть он и на си - стабильно 1 МБ потребляет
| |
2.28, Аноним (28), 02:05, 25/08/2019 [^] [^^] [^^^] [ответить]
| +17 +/– |
> опять на си, он не помогает в написании корректных программ
Ни один язык не помогает. Как показывает практика, люди, которые на си не могут память освободить вовремя, на яве не могут вовремя закрыть соединение с базой или остановить опрос какого-нибудь BLE в андроиде. Люди, которые в си не проверяют, что введённое пользователем значение попадает в нужный диапазон, не будут делать этого и на питоне.
А от того, что вместо UB вы получаете стектрейс, программа корректной не становится.
Однако в отличие от многих других, си помогает в написании БЫСТРЫХ программ.
| |
|
|
|
5.76, имя_ (?), 04:01, 26/08/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
в том, что до сих пор кто-то ведется на такую жырноту
| |
|
|
3.31, Аноним (31), 03:31, 25/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Насчёт того, что си быстрее можно долго и бесполезно спорить, ибо цель у языка только в скармливании компилятору, от которого больше зависит. А вот то, что си максимально примитивен в плане абстрагирования от того, что происходит в машине - это факт, который кому то в плюс, а кому то в минус.
| |
|
4.33, Hewlett Packard (?), 04:25, 25/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это если машина - PDP-11. Если же обсуждать то как работает что-то посовременнее, то кто там дальше от execution units, cache line bouncing или например wear leveling, Си, Haskell, или brainfuck - вопрос дискуссионный.
| |
|
5.50, Аноним (50), 13:13, 25/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Это если машина - PDP-11. Если же обсуждать то как работает что-то
> посовременнее, то кто там дальше от execution units, cache line bouncing
> или например wear leveling, Си, Haskell, или brainfuck - вопрос дискуссионный.
Не обязательно валить все известные buzzwords в кучу, достаточно посмотреть реализацию vfprintf в musl -- она строго 32-х разрядная.
| |
|
6.97, Hewlett Packard (?), 03:09, 27/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Надеюсь еще и вручную оптимизированная под конкретный размер кэшей конкретной линейки CPU конкретного производителя, с ассемблерными вставками, профайлингом доведенными до совершенства скорости работы на конкретном поколении конкретной линейки CPU конкретного производителя.
| |
|
7.100, Аноним (50), 06:33, 27/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Надеюсь еще и вручную оптимизированная под конкретный размер кэшей конкретной линейки CPU
> конкретного производителя, с ассемблерными вставками, профайлингом доведенными до совершенства
> скорости работы на конкретном поколении конкретной линейки CPU конкретного производителя.
Ведь я указал, какой конкретно файл можно посмотреть, без лишних поисков. Но, похоже, сделал недостаточный для знатока ассоциативности кешей акцент на разрядности. Так вот, преимущества 64-х битной арифметики не используются. То есть не очень-то упомянутая функция на С и "кроссплатформенная".
| |
|
|
|
|
3.52, Аноним (9), 13:49, 25/08/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ни один язык не помогает
Ну почему же, пресловутый раст помогает, например. Программа просто не скомпилится, а компилятор ещё и покажет как надо написать.
| |
|
|
5.73, DerRoteBaron (ok), 23:11, 25/08/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
И половина ошибок не отловится.
Даже -Wextra -Wpedantic. Только вынесут мозг наркоманией с приведениями численных типов одного к другому там, где это совершенно не требуется просто потому, что так в свое время сделали не подумав, а потом так же и стандартизировали.
Не говоря о том, что ошибки компиляторов (GCC, clang) совершенно невнятные, а иногда и неочевидные. А про плюсы, где все описанные еще раз в 100 более сломано даже речи не было.
| |
|
4.99, Hewlett Packard (?), 03:18, 27/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Как известно, неприятные ошибки состоят по большей части из опечаток, off-by-one error, и cache invalidation. Это чисто технические, еще большая часть ошибок логические. Как именно компилятор Rust помогает с каждым из этих типов ошибок?
| |
|
|
2.96, Аноним (96), 23:19, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Что-то твой всраст не помог огнелису стать нормальным браузером. Хром, на проклятых плюсах, все так и дает ему по морде.
| |
|
3.98, Hewlett Packard (?), 03:15, 27/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не защищая Rust, пример-то так себе. Вложив того и столько, чего и сколько в Chrome вложил Гугл, его можно было бы сделать точно таким же (во всяком случае не хуже) на любом языке, включая COBOL и РАПИРА, или совсем без оного - прямо в машинном коде, редактируя бинарник в ed.
| |
|
|
|
|
3.20, zzz (??), 00:21, 25/08/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Бяда с ентой вендой. То DKMS поломают, то в OOM-Killer завозят патчи, беспричинно убивающие всё подряд, то CVE-2012-0056. В линуксе такой фигни нет.
| |
|
2.16, Xasd (ok), 23:46, 24/08/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
почему хорошо? было бы хорошо если бы мы её использовали
| |
|
3.19, Аноним (18), 00:05, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
В винде Memory Compression работает всегда, не важно сколько рамы 8 или 64 ГБ. Если нет возможности найти физически свободных адресов, произойдет одно из двух: 1. Закроется самая тяжелая программа. 2. Нарисуется окно с предложением закрыть эту самую тяжелую программу.
| |
|
4.30, ананим.orig (?), 03:25, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
вот как?
а в линухе compression — это сжатие, а не освобождение.
ну типа zip. или для вас rar
| |
4.37, кек (?), 09:30, 25/08/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
>В винде Memory Compression работает всегда
Это означает ее низкую гибкость и невозможность отключения свопа. В линуксах zram/zswap давно доступны по желанию и гибко настраиваемы. Кому надо - ставят.
| |
|
5.74, Аноним (18), 00:25, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Оно не доступно при выключенном pagefile, и не нужно ничего "гибко" настраивать. Поставил ОС - работает и вместе с гибернацией из коробки всегда.
| |
|
|
|
2.27, ананим.orig (?), 01:29, 25/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Как же хорошо, что в винде нет таких проблем
с чего ты взял?
сварить то вообще можешь в вантузе отключить?
| |
2.32, Аноним (31), 03:34, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Вы забываете, что в некоторых других дистрах такой фигни тоже нет, всё зависит от понимания дистрибьютера того, какую хрень он творит. И в дистрах на линуксе полное раздолье (хотя и не предел мечтаний), а в винде у вас только один дистрибьютер.
| |
2.45, Аноне (?), 11:32, 25/08/2019 [^] [^^] [^^^] [ответить]
| +5 +/– |
Со старта 1,5 Гб при сжатии - да, нет проблем, уже зарезервировали.
| |
|
1.14, denkin (ok), 23:44, 24/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Сперва они пишут приложухи, которые жрут память, а потом они пишут еще одну приложуху, которая говорит остальным приложухам сколько им можно жрать памяти, которая тоже жрет память; а потом они напишут еще...
Прям сказка про белого гнома какая то.
| |
|
2.24, Аноним (22), 00:52, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Сперва они прекращают возвращать NULL из malloc, а потом уже пишут приложухи, которые жрут память и т. д.
| |
2.41, anonymous (??), 10:17, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Какая разница будет сожрана память в ядре или в userspace-е? Что действительно важно, это то, что "ещё одна приложуха" жрёт память статически (и реально мало, к тому же), а не динамически.
| |
|
1.23, RedEyedMan (ok), 00:52, 25/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> On Ubuntu 17.10, gnome-shell starts the day on 569.9MiB for me, and ends around 2GB. It got up to 5GB over two days.
> Now I shutdown every night
"Я выключаю компьютер каждую ночь, я успешен, я свободный от задродство человек!" или тому подобное.
| |
1.35, Аноним (43), 08:52, 25/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Requires Linux 5.2 or newer and GLib.
Беполезный мусор для хипстеров. Даже поддержки последнего lts нет. Считай, все дистрибутивы кроме ролинг релизов в пролете. Да и я не знаю кем надо быть чтоб ставить 5.2.9 на свой комп. Там же может быть любая хрень вплоть до поломок фс.
| |
|
2.36, кек (?), 09:11, 25/08/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Он еще только анонсирован, релизов не было. Через пару лет окрепнет, и дистры к нему будут готовы, даже Дебиан Стейбл.
| |
2.42, iPony129412 (?), 10:19, 25/08/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
А толку то делать эту новую штуку под старые ядра?
Та же Ubuntu 18.04 LTS сейчас идёт с ядром 5.0.
Эта штука новая будет до более вменяемое состояния написана этак через полгода.
Так что проблемы то нет.
| |
|
1.44, JL2001 (ok), 10:49, 25/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
//offtop
> обработчик нехватки памяти для рабочего стола GNOME
это что, официальное признание гномеров что гном жрёт больше всех, а другим такого не надо?
| |
|
2.46, Аноним (6), 11:40, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>а другим такого не надо?
А другие давно используют earlyoom, и только гномеры завезли себе персональную, только с гномом совместимую, кривую поделку.
| |
|
1.47, Аноним (47), 12:46, 25/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Что бы делать, лишь бы ядро не фиксить. Потому что все эти демоны-кильеры не решают проблемы того, что на винде программы прекрасно работают, а на линуксе либо ты выключаешь оверкоммит и проги крэшатся и не стартуют, либо ты включаешь оверкоммит и у тебя всё виснет, либо ты ставишь эти демоны и они убивают программы.
Во всех случаях работать невозможно, и тем, кому работать нужно, приходится использовать Windows 7/8/10, все с телеметрией (для 7 телеметрию встроили в security-only обновление, даже те, кто готов нехило заплатить за отсутствие телеметрии не имеют этой возможности).
Зачем фиксить ядро, если можно просто памяти накупить и вставить. Тех, кому неприемлимо постоянно комп всяким гoвнoм апгрейдить, наверное, за унтерменшей считают.
| |
|
2.49, Аноним (6), 13:13, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>ты выключаешь оверкоммит
Если мозгов нет
>Что бы делать, лишь бы ядро не фиксить.
В ядре есть ООМК. Ядро не надо фиксить.
>эти демоны-кильеры не решают проблемы
Демоны-киллеры полностью решают проблемы.
>ядро, если можно просто памяти накупить и вставить
Ядро не может заменить оперативу. Тюнинг vm и вкл свопа - это не рагает проблему малого обема ОЗУ. Одкако юзерспейсные киллеры решают проблему дедлоков при нехватке памяти.
>либо ты включаешь оверкоммит и у тебя всё виснет
Напротив, разрешение оверкоммита в сочетании с юзерспейсными киллерами позволяет полностью утилизировать память, обходяь при этом без зависаний.
| |
|
3.61, Аноним (47), 16:37, 25/08/2019 [^] [^^] [^^^] [ответить] | +/– | Толсто Без оверкоммита ни единого тормоза до резета с остервенелым шуршанием ви... большой текст свёрнут, показать | |
|
4.64, Аноним (6), 17:25, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>Просто программы крешатся и перестают стартовать
Вот именно, причем могут падать массово, зачастую рандомные и невиновные, пруф: https://imgur.com/a/p9j67KA
В случае с юзерспейсным киллером падает только один жирный процесс, и падает мягко, по SIGTERM.
>желание хамить
Я лишь исправил ваши ложные утверждения.
| |
|
5.65, Аноним (47), 17:46, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>В случае с юзерспейсным киллером падает только один жирный процесс, и падает мягко, по SIGTERM.
Причём тоже невиновный. В общем, метод действия у меня такой:
1. отключается оверкоммит
2. в случае, если приложения перестают стартовать, вручную прибивается шланг.
| |
|
|
|
2.51, Аноним (51), 13:20, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
> для 7 телеметрию встроили в security-only обновление, даже те, кто готов нехило заплатить за отсутствие телеметрии не имеют этой возможности
Соберите себе дистр без этих конкретных обновлений - и запретите обновляться вообще.
| |
|
3.62, Аноним (47), 16:45, 25/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
И не пускайте в интернет: критические обновления безопасности идут в комплекте с телеметрией. Единственный правильное действие тут - это не использовать винду и прочие проприетарные поделия вроде Intel ME и ARM TrustZone. Даже если это будет значить отказ от компьютеров и технологий вообще и переезд в пещеру. Действие единственно правильное, но совсем неабекватное.
Адекватные предложения будут (кроме "надо забить на эту чепуху, больше зарабатывать, больше тратить, терпеть зонды, строем идти в неизбежное будущее, распевая гимн Единой России", я не настолько адекватный, чтобы принять эту простую стратегию, решающую все проблемы)?
| |
|
2.54, Аноним (54), 14:38, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Ты гонщик, когда винда начинается свопаться, все висит настолько глухо, что даже диспетчер задач вызывается десяток минут
| |
|
3.56, zzz (??), 15:16, 25/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Винда на свопе начинает тупить, в линуксе при свопе даже мышка по экрану не ездит.
| |
|
4.60, Аноним (47), 16:20, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Да фиг с ней с мышкой, magic-sysrq не работает и виртуальные консоли не переключаются.
| |
|
3.69, Аноне (?), 21:33, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Подождав несколько минут я сделал ребут и... потерял часть функционала KDE
| |
|
|
1.53, Аноним (54), 14:37, 25/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
А нельзя тупо выделиь кусок памяти под ОС, чтобы никакое приложение не могло на него претендовать. Тогда можно будет хотя без проблем бы прибить зажравшееся приложение
| |
|
2.55, Аноним (6), 14:51, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
можно выделить, кто ж мешает.
memory.min в сигруппах (на самом деле это не работает, по крайней мере в моих опытах)
| |
2.68, Anonim (??), 20:35, 25/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Интересный вопрос. Кажись как-то можно прибить некоторые вещи гвоздями в памяти, но я так и не вкурил как...
| |
|
3.79, кек (?), 07:12, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>vm.min_free_kbytes = 393216
Это катастрофически много, к тому же бессмысленно. На компах с малым размером памяти это может вообще положить систему.
| |
|
4.80, Аноним (50), 08:34, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>>vm.min_free_kbytes = 393216
> Это катастрофически много, к тому же бессмысленно.
The problem has gone away completely for me after I bumped vm.min_free_kbytes way up to 393216.
https://bugzilla.kernel.org/show_bug.cgi?id=196729#c17
> На компах с малым размером
> памяти это может вообще положить систему.
Скажу больше: на калькуляторе вообще не запустится.
| |
|
|
|
1.75, Pistrun (?), 02:29, 26/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
>отправляет через DBus предложение процессам о необходимости умерить аппетиты.
-SIGCHROME?
| |
1.85, Аноним (88), 12:58, 26/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> при превышении порога отправляет через DBus предложение процессам о необходимости умерить аппетиты
"Окей", -- говорит dbus и падает первым. "Субботник - это когда люди, которые никогда не мусорят, убирает за теми кто никогда не убирает"
Сам подход порочен. Это сообщение должно или отправляться юзеру, чтоб принял меры, или самостоятельно прибить зажравшееся (для чего уже есть софт типа earlyoom).
| |
|
2.89, Аноним (89), 14:36, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Зачем прибивать? Просто заблочить на операции выделения памяти, пока не освободится нужное количество. А пользователь пусть сам выбирает какое из "замороженных" приложений прибить.
| |
|
3.92, Аноним (6), 14:47, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>заблочить на операции выделения памяти
Обычно это приводит к MemoryError и непредсказуемому поведению https://imgur.com/a/p9j67KA
SIGTERM обычно обрабатывается корректнее, чем ошибка выделения памяти.
| |
|
4.93, Аноним (89), 14:57, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Если блокировка потока на выделении памяти приводить к непредсказуемому поведению, очевидно приложение написано криво. Логичным выводим из того, что new застопорился, должно быть понимание, что выделить память по какой-то причине не получается.
В любом случае автоматически прибивать - это самая крайняя мера. Её надо всеми возможными способами избегать.
| |
|
|
2.91, Аноним (6), 14:44, 26/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
>dbus и падает первым
dbus обычно защищено низким значением oom_score_adj
>Это сообщение должно или отправляться юзеру, чтоб принял меры, или самостоятельно прибить зажравшееся
И то и другое есть в nohang. В earlyoom нет уведомлений о низком уровне памяти.
| |
|
|