Бляди тоже ок, ага. Войти !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
#CM3X4K / @enterprize / 37 дней назад

А чё если приаттачить strace к firefox-bin и посмотреть, чё он с этой памятью делает? Как вариант, юзнуть wxHexEditor или xxd, чтобы посмотреть снепшоты памяти firefox-bin в состоянии "на экране" и "на другом спейсе". Оно не может улетать в своп, когда не на активном спейсе?
#CM3X4K/MOX / @bazar / 37 дней назад
@bazar а что если таблеток навернуть?
#CM3X4K/VQ8 / @anonymous --> #CM3X4K/MOX / 37 дней назад
@bazar Он ничего не может делать, он SIGSTOP-нут
#CM3X4K/BRC / @enterprize --> #CM3X4K/MOX / 37 дней назад
@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 / 36 дней назад
@bazar Ииииии? Какое это отношение имеет к происходящему? В meminfo показатели про своп не меняются.
#CM3X4K/5DT / @enterprize --> #CM3X4K/3JR / 36 дней назад
@enterprize Глазами посмотри на память. Сними hexdump с firefox-bin в обоих случаях. Если он примерно одинаковый на обоих спейсах, то проблема в meminfo. Ты что-то вроде MAC используешь? Возможно, на другом спейсе meminfo не может получить доступ к ff-bin. Возможно, система просто проёбывает контекст сигстопнутого процесса на другом спейсе, т.е. в оперативке оно лежит, а система не видит, что оно примаплено к какому-то процессу.
#CM3X4K/82G / @bazar --> #CM3X4K/5DT / 36 дней назад

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

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

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

#CM3X4K/L8Z / @ceyt --> #CM3X4K/GA1 / 35 дней назад
@l29ah О, вот это уже интереснее: сейчас i3 pxm mem увеличился на 4.5G, вполне соразмерно падению MemFree (4.9G). Почему при этом в /proc/$(pidof X)/smaps_rollup я вижу только падение Rss/Pss на жалкие 13M?
#CM3X4K/FSK / @enterprize --> #CM3X4K/JHV / 35 дней назад
@enterprize Лол, примерно на эти же 13M выросли Swap/SwapPss, то есть по сути не поменялось вообще ничего.
#CM3X4K/FHX / @enterprize --> #CM3X4K/FSK / 35 дней назад
@enterprize Переходи на xmonad.
#CM3X4K/Z1Z / @l29ah --> #CM3X4K/FSK / 34 дня назад
@l29ah Я с него ушёл ещё лет 15 назад, потому что динамический тайлинг неудобен.
#CM3X4K/JZH / @enterprize --> #CM3X4K/Z1Z / 34 дня назад
@enterprize А что удобно?
#CM3X4K/AS1 / @l29ah --> #CM3X4K/JZH / 34 дня назад
@l29ah Ручной тайлинг с табами. Тут кроме i3 и notion вспомнить некого.
#CM3X4K/RT3 / @enterprize --> #CM3X4K/AS1 / 34 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

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