Best viewed with LeechCraft on Microsoft Linux. Войти !bnw Сегодня Клубы
— Замечаем, что свободная память куда-то внезапно съёбывается. killall -STOP firefox-bin — Уходим с воркспейса с браузером. Память возвращается. Firefox всё ещё в T state. — Возвращаемся в предыдущий воркспейс. Память опять куда-то девается. — Дампим smaps_rollup всех процессов, сравниваем. Разница копеечная. Неважно, Rss, Pss, firefox-bin, Xorg, i3 — да вообще всех метрик и по всем процессам. — Дампим meminfo. Разница только в гигабайтищах, на которые похудели MemFree и MemAvailable. slabinfo и df -h /dev/shm на таком фоне даже нет смысла сравнивать (но всё равно сравниваем и не видим ничего интересного). Что, бля, происходит нахуй?!
Рекомендовали: @l29ah @ccahnha @bga_
#CM3X4K / @enterprize / 192 дня назад

А чё если приаттачить strace к firefox-bin и посмотреть, чё он с этой памятью делает? Как вариант, юзнуть wxHexEditor или xxd, чтобы посмотреть снепшоты памяти firefox-bin в состоянии "на экране" и "на другом спейсе". Оно не может улетать в своп, когда не на активном спейсе?
#CM3X4K/MOX / @bazar / 192 дня назад
@bazar а что если таблеток навернуть?
#CM3X4K/VQ8 / @anonymous --> #CM3X4K/MOX / 192 дня назад
@bazar Он ничего не может делать, он SIGSTOP-нут
#CM3X4K/BRC / @enterprize --> #CM3X4K/MOX / 192 дня назад
@enterprize https://stackoverflow.com/a/2143572 > That will suspend execution of the process. It won't immediately free the memory used by it, but as memory is required for other processes the memory used by the stopped process will be gradually swapped out.
#CM3X4K/3JR / @bazar --> #CM3X4K/BRC / 192 дня назад
@bazar Ииииии? Какое это отношение имеет к происходящему? В meminfo показатели про своп не меняются.
#CM3X4K/5DT / @enterprize --> #CM3X4K/3JR / 192 дня назад
@enterprize Глазами посмотри на память. Сними hexdump с firefox-bin в обоих случаях. Если он примерно одинаковый на обоих спейсах, то проблема в meminfo. Ты что-то вроде MAC используешь? Возможно, на другом спейсе meminfo не может получить доступ к ff-bin. Возможно, система просто проёбывает контекст сигстопнутого процесса на другом спейсе, т.е. в оперативке оно лежит, а система не видит, что оно примаплено к какому-то процессу.
#CM3X4K/82G / @bazar --> #CM3X4K/5DT / 192 дня назад

https://lxr.missinglinkelectronics.com/linux/mm/page_alloc.c#L5773
https://lxr.missinglinkelectronics.com/linux/+ident=115735849
https://lxr.missinglinkelectronics.com/linux/+ident=99232837
https://lxr.missinglinkelectronics.com/linux/+ident=118983860

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

Более вероятно, что у тебя либо процессы пихаются в какую-то cgroup в зависимости от видимости на экране, либо реально на SSD мгновенно сбрасывается всё изменённое содержимое страниц, и они помечаются свободными.

#CM3X4K/74B / @ceyt / 191 день назад
гат шом блинк //срэад
#CM3X4K/DR0 / @anonymous / 191 день назад
Ещё наблюдение: MemFree увеличивается, если поскрывать окна через xdotool windowunmap, и скукоживается, если их вернуть. При, опять же, SIGSTOP-нутом браузере и неизменности метрик всех процессов.
#CM3X4K/FSH / @enterprize / 191 день назад
@ceyt > Если у тебя NUMA Нода только одна > или 32-битная система $ uname -m x86_64 > Более вероятно, что у тебя либо процессы пихаются в какую-то cgroup в зависимости от видимости на экране Такой автоматизации нет, да и если бы была, то непонятно, почему должна влиять, у cgroups же своя параллельная бухгалтерия. > либо реально на SSD мгновенно сбрасывается всё изменённое содержимое страниц, и они помечаются свободными Dirty/Writeback что на одном, что на другом воркспейсе одни и те же, да и вообще околонулевые, а MemFree гигабайтами меняется.
#CM3X4K/GA1 / @enterprize --> #CM3X4K/74B / 191 день назад
@enterprize >> либо реально на SSD мгновенно сбрасывается всё изменённое содержимое страниц Это, кстати, ещё и не объясняет скукоживание MemFree при переключении назад.
#CM3X4K/UHF / @enterprize --> #CM3X4K/GA1 / 191 день назад
@enterprize xrestop
#CM3X4K/JHV / @l29ah --> #CM3X4K/FSH / 191 день назад

@enterprize Вариант А: запись в ядре выдаёт просто выдаёт последнюю записанную циферку, кто бы и с какими целями бы её ни поменял. Возможно, какой-то кусок менеджера памяти ради простоты переводит все страницы какой-то категории в свободно выкидываемые, зная, что уже при следующем переключении планировщика активность процесса или обработка переключения контекстов восстановит нужное, а тут процесс стоит. Тогда что-то похожее должно наблюдаться и с другими нормально работающими программами, если их притормозить.

Вариант Б: i3 для не выводимых на экран окон WM_STATE задаёт в withdrawn. Вероятно, X-сервер при этом помечает какие-то ресурсы и буферы как более не нужные (или, возможно, им вызываются какие-то callback'и в GDK или в прочих используемых Firefox прокладках). Если где-то между приложением и X-сервером происходит утечка памяти, эти страницы могут попадать в произвольные списки, и X-сервер может вызывать совершенно бессмысленные функции менеджера памяти для произвольных указателей внутри общего выделенного пространства. Вероятно, только отсутствие необходимости возврата страниц в систему спасает тебя от мгновенного segfault, и если специально сожрать тестовой программой «свободную» память в момент похудения, всё рухнет после разморозки работы.

#CM3X4K/L8Z / @ceyt --> #CM3X4K/GA1 / 191 день назад
@l29ah О, вот это уже интереснее: сейчас i3 pxm mem увеличился на 4.5G, вполне соразмерно падению MemFree (4.9G). Почему при этом в /proc/$(pidof X)/smaps_rollup я вижу только падение Rss/Pss на жалкие 13M?
#CM3X4K/FSK / @enterprize --> #CM3X4K/JHV / 190 дней назад
@enterprize Лол, примерно на эти же 13M выросли Swap/SwapPss, то есть по сути не поменялось вообще ничего.
#CM3X4K/FHX / @enterprize --> #CM3X4K/FSK / 190 дней назад
@enterprize Переходи на xmonad.
#CM3X4K/Z1Z / @l29ah --> #CM3X4K/FSK / 190 дней назад
@l29ah Я с него ушёл ещё лет 15 назад, потому что динамический тайлинг неудобен.
#CM3X4K/JZH / @enterprize --> #CM3X4K/Z1Z / 190 дней назад
@enterprize А что удобно?
#CM3X4K/AS1 / @l29ah --> #CM3X4K/JZH / 190 дней назад
@l29ah Ручной тайлинг с табами. Тут кроме i3 и notion вспомнить некого.
#CM3X4K/RT3 / @enterprize --> #CM3X4K/AS1 / 190 дней назад
Похоже, память пошла на сраные текстуры сраных веб-страничек, не влезающие в видеопамять. Смена суммы байтиков GTT в /sys/kernel/debug/dri/0/amdgpu_gem_info очень хорошо коррелирует со сменой MemAvailable как при смене воркспейса/windowunmap, так и после SIGCONT с последующим ожиданием похудения наглой рыжей морды. В первом случае ещё и совпадает изменение i3 pxm mem в xrestop, при этом в amdgpu_gem_info худеют/пухнут иксы. Непонятно только, схуяли вообще задевает бухгалтерию i3wm, если он сам и не композитор, и picom-ов при этом никаких не запущено.
#CM3X4K/LI5 / @enterprize / 90 дней назад
@enterprize И, да, я официально ебал такое «ускорение» браузеров.
#CM3X4K/IB3 / @enterprize --> #CM3X4K/LI5 / 90 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.