LINUX.ORG.RU

Я выяснил как заставить фуфелфокс сожрать всю память

 


0

1

Есть два способа:

  1. дать загрузить страницу не до конца, лишь чтоб headerы прогрузились и там были ссылки на скрипты и прочее. оборвать соединение но не отдавать при этом RST.

результат: процесс firefox жрёт память с темпом 100 метров в секунду. закрытие вкладки вовремя(до смерти линупса) обращает эффект: фаилфокс худеет с похожим темпом при этом тормозя как якорь. видимо у него какая-то очередь набивается и потом пережевывается.

  1. запуск чего-нибудь жрущего память, например сборки в 4+ потока в параллель с например видео.

я полагаю что и тут подобная проблема: фуфлофоксовые процессы тормозят т.к. из выбивает из памяти сборка. вместо того, чтоб как нормальные люди подождать фуфлыжники просто выделяют(это моё предположение*) больше шареной памяти под FIFO через которое «рабочий» процесс общается с собственно фуфиксом. А поскольку это приводит к ещё большему отсвопу, фуфикс тормозит и рабочий процесс еще больше выделяет памяти. В top это выглядит как Web Content сжирающий память под 50+ процентов, дальше комп под управлением недоос ляликс становится кирпичом.

И тут у меня вопрос: может им на расте это всё переписать или они уже переписали и мы имеем такие дебильные проблемы?

Надо своп врубать в оперативе, вырубать - на диск, врубать oom killer. А не ждать смерти линупса от каждого кривого приложения.

James_Holden ★★★★
()
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от James_Holden

вроде писали что запостили таки патч, который агрит оома когда надо, а не через 100500 лет когда зависший ляликс просрётся.

но вообще странно уже то, что только в 21м веке до этого додумались. разрабы ведра походу все сидят под макосью, и таких ЧАСТЫХ проблем не видят.

а что касается фаилфокса - ну бл. ну можно же лимит выставить на размер FIFO. ну видно что именно триггерит, я могу это даже через LD_PRELOAD триггернуть.

salozar
() автор топика
Ответ на: комментарий от James_Holden

и толку от свопа, файлфокс реально аллоцирует по 100+ метров где-то каждые 10 секунд. если его заклинивает - ребут.

я не знаю, это раст так повлиял или просто протест против засилия С++ выражают сексуальные меньшинства.

salozar
() автор топика
Ответ на: комментарий от salozar

Если своп на диске - оом не приходит, потому что он придёт когда исчерпается своп, а исчерпываться он будет до конца вселенной, особенно на HDD. Такой уж линукс.

Поэтому нет другого выхода как отрубить своп и включить zswap. Тогда хотя бы новые изменения для oom начнут хоть на что-то влиять.

James_Holden ★★★★
()
Купили как-то суровым сибирским лесорубам японскую бензопилу.
Собрались в кружок лесорубы, решили ее испытать.
Завели ее, подсунули ей деревце.
«Вжик» — сказала японская пила.
«У, бля...» — сказали лесорубы.
Подсунули ей деревце потолще. «Вж-ж-жик!» — сказала пила.
«Ух, бля!» — сказали лесорубы.
Подсунули ей толстенный кедр. «ВЖ-Ж-Ж-Ж-Ж-Ж-Ж-ЖИК!!!» — сказала пила.
«Ух ты, бля!!» — сказали лесорубы.
Подсунули ей железный лом. «КРЯК!» — сказала пила.
«Ага, бля!!!» — укоризненно сказали суровые сибирские лесорубы! И ушли рубить лес топорами…
udhv
()

может им на расте это всё переписать или они уже переписали

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

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 1)
Ответ на: комментарий от pisqotron5000

задний привод они поправят, сделают обязательным.

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

в хроме таких проблем нет в абсолютно таких же ситуациях, там свои проблемы. я даже вангану что эти проблемы появились(а их не было!) вместе с ускорением рендера и тем самым растом. ибо уж очень мразь триггерится именно воспроизведением видео. то есть проблема где-то возле графики.

я вот просто соберу эт говно с дебагом и проверю, где именно он долбится. благо жор памяти я умею вызывать уже на стороне главного процесса.

salozar
() автор топика
Ответ на: комментарий от Leupold_cat

я бы запилил. есть рабочий GC даже проверенный на редакторе формул. но времени нет. надо работать, а то внезапно путин нападёт со своими барановерующими.

salozar
() автор топика
Ответ на: комментарий от pisqotron5000

точно. я думал что ее удалили. мемас годный.

anonymous
()
Ответ на: комментарий от salozar

Миру уже очень давно нужен новый минималистичный браузерный движок

я бы запилил. есть рабочий GC

Проорал

filosofia
()

дать загрузить страницу не до конца, лишь чтоб headerы прогрузились и там были ссылки на скрипты и прочее. оборвать соединение но не отдавать при этом RST.

Ну и как так сделать? У меня не получилось.

rupert ★★★★★
()

Сложно. Что просто миллиард ютюбов не открыл?

может им на расте это всё переписать

А раст меньше не жрёт.

apt_install_lrzsz ★★★
()

будь мужигом запости баг в багзиллу фаерфокса

serg002 ★★★
()
Ответ на: комментарий от rupert

на 32 гигах сабж ведёт себя точно так же

Harald ★★★★★
()
Ответ на: комментарий от anonymous

Рассказал однажды мужик анекдот, а он не в тему.

Чёйт не в тему, вполне себе в тему. :) Я примерно о том же подумал: (1) ТСу надо в тестеры; (2) вообще конечно 100% корректная обработка ошибок в таких сложных софтинах – неверноятно-адски трудная вещь.

dimgel ★★★★★
()
Ответ на: комментарий от Leupold_cat

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

Не, миру нужен новый стандарт проектирования современных вебсайтов, чтобы браузерный движок не тормозил.

tiinn ★★★★★
()
Ответ на: комментарий от ox55ff

Просто раньше это считалось багом, а теперь киллер-фича.

devl547 ★★★★★
()

И тут у меня вопрос: может им на расте это всё переписать или они уже переписали и мы имеем такие дебильные проблемы?

Слышь, СалоЖор, исподники посмотри, так узнаешь на чем написано

futurama ★★★★★
()
Ответ на: комментарий от salozar

Даже не надейтесь. Мы уже отжали все, что хотели.

anonymous
()
Ответ на: комментарий от tiinn

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

anonymous
()
Ответ на: комментарий от Leupold_cat

Хм, начинается движение забить на макак, делайте другой браузер? Интересно.

anonymous
()
Ответ на: комментарий от anonymous

Стандарты уже есть, но к ним делают «довесок» из влажных фантазий маркетолога&Со.

anonymous
()

Rust тут никак не поможет. Против утечек памяти он не защищает. А у тебя тут даже не утечка, раз освобождается в итоге, просто в логике где-то зацикливание или рекурсия.

Legioner ★★★★★
()
Ответ на: комментарий от dimgel

вообще конечно 100% корректная обработка ошибок в таких сложных софтинах – неверноятно-адски трудная вещь.

С другой стороны в теории можно писать софт с надёжной архитектурой. Разделять разный функционал по разным процессам, запускать их с минимальными capabilities, в том числе и память им ограничивать. В принципе в браузере это делается, но не до конца. Если бы это было сделано, у топикстартера просто падал бы какой-нибудь служебный процесс и на странице писало бы OOPS (ещё бы и багрепорт уходил автоматом).

Веб-цари вроде уже давно перешли на микросервисы, а системные макаки всё ещё в монолиты долбятся.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Раст тут не при делах
Я тоже давно заметил, что фф деградирует в плане ресурсов
Еще фф не дружит с телеграмом

kto_tama ★★★★★
()
Ответ на: комментарий от Dumppper001

Я серьезно. Если HDD, особенно ноутбучный, и немного оперативы - у меня 4 Гб, то при включенном свопе на диск просто беда, систему клинит.

Поэтому я своп включаю только если без него никак. Например - Android Studio у меня на 4 Гб оперативы без свопа вообще не запускается, его убивает OOM Killer.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

у меня 4 Гб, то при включенном свопе на диск просто беда, систему клинит

Кто запрещает держать своп на zram?

Просто оставлю это здесь: Игра в supertux2 с множественными `tail /dev/zero` в фоне без зависаний

anonymous
()
Ответ на: комментарий от James_Holden

не верю у меня нормально работает игровой движок без этой херни

Dumppper001
()
Ответ на: комментарий от kto_tama

Я тоже так думаю, что раст не при делах, тем более, что в фаерфоксе этого раста - раз два и обчёлся. Но топикстартер решил приплести его.

Legioner ★★★★★
()
Ответ на: комментарий от Dumppper001

А, понятно. Ну это по-разному бывает. У меня диск сильно тормозной. Если работать с браузером + виртуалка, то система легко клинит вообще.

Игры на Unity 3D - тормозит очень сильно, но работает, не клинит.

Отключив своп я могу спокойно работать с виртуалками, все шустро.

У кого SSD - по идее не должен тупить своп, но у меня нету и я на практике не пробовал как с ним.

James_Holden ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.