LINUX.ORG.RU

Минимизация потребления оперативной памяти

 , , ,


0

3

Встречал на ЛОРе упоминания людей, что их система при старте потребляет 100-120 Mb оперативы. Как вам такое удаётся?
Моя система (CRUX) потребляет 190UPD: 166 Mb при старте, а это почти голые иксы — st+screen, даже WM ещё не установил.

На видео чел, у которого при старте десктоп потребляет 45 Mb:
https://youtu.be/VTpXNvmcbxA

А что вы делаете для минимизации потребления памяти?

★★★★★

Последнее исправление: teod0r (всего исправлений: 3)
Ответ на: комментарий от kirill_rrr

И кажется не упоминали влияние модуля видеодрайвера, подгружаемого и в ядро, и в Х-сервер (вайланд-композитор? не знаю, но вероятно тоже)

у меня иксы тока почти 82 метра потребляют. это из-за видеодрайвера?
сделал drop_caches, общее потребление упало до 166 мегабайтов.

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

у меня иксы тока почти 82 метра потребляют.

Скорее всего да, потому что на пропиретарном драйвере невидии на х86_32 системе дебиан 6 Х11 потреблял 120М. С тех пор и дебиан и драйвер невидии успели подрасти.

А вот показатель 40-60М достигается на дебиан8/распбери Пи 3, arm7l (код ещё компактней чем х86_32), и там видеодрайвер чисто номинальный - прослойка для софтовой реализации oGL 2.1

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

Это же был 2009 год! Примерно в то же время я реанимировал для сестры ноут с пеньтиум М и 224М оперативки и оно даже работало! Даже да 2 вкладок в Опере позволяло смотреть с приемлимыми тормозами. Потом ещё младший брат сумел с этим немного поиграться.

kirill_rrr ★★★★★
()

3. glibc MALLOC_ARENA_MAX and MALLOC_TRIM_THRESHOLD

Decrease and set static memory allocation arenas to 2 (1, 2, 3).
Decrease and set static heap trimming threshold down to 64KiB (1).
Reduces overall memory usage. This applies only to glibc-based applications (not musl on Alpine for example).

sed -i 's/#DefaultEnvironment=.*/DefaultEnvironment=MALLOC_ARENA_MAX=2 MALLOC_TRIM_THRESHOLD_=65536/' /etc/systemd/system.conf
echo -e 'export MALLOC_ARENA_MAX=2\nexport MALLOC_TRIM_THRESHOLD_=65536' > /etc/profile.d/85malloc_arena

Additional files for graphical X11 environment (not for server)

echo -e 'export MALLOC_ARENA_MAX=2\nexport MALLOC_TRIM_THRESHOLD_=65536' > /etc/X11/Xsession.d/85malloc_arena
echo -e 'export MALLOC_ARENA_MAX=2\nexport MALLOC_TRIM_THRESHOLD_=65536' > /etc/X11/xinit/xinitrc.d/85malloc_arena.sh
chmod +x /etc/X11/xinit/xinitrc.d/85malloc_arena.sh
ValdikSS ★★★★★
()

Кастомное ядро делал через make menu(default, кажется), ну и грамотным графом зависимостей при сборке (на самом деле - тупым перебором😄) системы. LFS без B, занимало в районе 20.. C B(X11) в районе сотки. Openbox + xfce4panel потом достала такая жисть))))

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

но нужна бригада - поясните за свой крух

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

vbcnthfkmnth123 ★★★★★
()
22 сентября 2025 г.
Ответ на: комментарий от kirill_rrr

линуксы бывают и встраиваемые, под условные 32М оперативки Некрофильну 2 чая просвещенному господину! Современный всраиваемый лялих на иРИСКе еще хлеще жрет: 32МБ просто так ядро забирает, даже не показывает во free. musl ест еще 4 метра из оставшихся 32, что смешно выглядит когда простая sleep из coreutils жрет 4 метра памяти, а весь busybash sh меньше пары метров. Вот и остается у тебя меньше 20 метров на все, про все.

anonymous
()

Кстати, распберри 1В armhf (32 бита разумеется, причём код более компактный чем х86_32) с 3-я бэдблоками и htop потребляет как раз 45-50Мб. Я аж засмотрелся и начинаю прикидывать - а не внедрить ли мультиархитектурук на распбери 4 arm8+armhf

kirill_rrr ★★★★★
()

Минимизация потребления оперативной памяти

Не уподобляться тем у кого разработка подобна - «Кто выще бье, тот краще грает».

anonymous
()

А что вы делаете для минимизации потребления памяти?

Ничего*. Не участвую в спецолимпиадах.

Экономить 46 МБ при старте системы, когда оперативы 16, а то и все 64 ГБ, и из них какой-нибудь браузер в одиночку потребляет пару гигов, имеет смысл разве что из спортивного интереса. Посему, если ты с кем-то соревнуешься, то посмотри, какие хаки используют они. Если не соревнуешься, а реально хочешь сэкономить 46 МБ нетривиальными способами — лечи голову.

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

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

С musl уже все хорошо?

Да. Использую Void с Musl сейчас, никаких проблем.

Совместима с glibc?

Нет. По крайней мере в том смысле, что софт, скомпиллированный для glibc, с musl работать не будет.

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

ядро забирает, даже не показывает во free

а как посмотреть, сколько ядро занимает?

У меня уже при старте ~98Mb бывает минимальное. Или 96, уже не помню. Оно не всегда почему-то одинаково при старте, присутствует какой-то рандом.

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

Я уже давно просто установил достаточное количество памяти на всех своих компьютерах. В спокойном состоянии потребление памяти у них около 2 ГБ, но это не имеет практического значения, так все равно есть хороший запас свободной памяти. Эти любители оптимизации, пытающиеся сэкономить десятки МБ, занимаются фигнёй.

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

Если дистрибутив не предоставляет musl-версию, то по крайней мере в дистрибутиве с бинарными пакетами очень сложно. Почти «невозможно».

Ну то есть, ты можешь, конечно, всё-всё пересобрать под musl. Но это будет уже скорее твой новый дистрибутив на основе имеющегося, нежели по-прежнему он. Дериватив эдакий.

Если одним из основных критериев является минимазации памяти (не буду в очередной раз спрашивать «чтобы что» — хочется и хочется) и Musl — рекомендую попробовать Alpine.

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

вопрос, на сколько это сложно.

Попробуй — узнаешь. Как можно объяснить «насколько сложно» в таком вопросе?..

и самое главное, нужно ли будеть патчить и много ли?

Есть вероятность нужно, но не факт. Но нет, точно не много.

Зависит от того, что у тебя за софт, и используется ли в нём что-то glibc-специфичное. Я с таким на практике сталкивался только в форке rtorrent под названием rtorrent-ps-ch. Изменить там надо было 2 строчки, на вызов функции с другим списком аргументов (без «лишнего» одного). Но это скорее экзотический случай в малопопулярном форке, нежели что-то повсеместное.

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

Смотреть видео, слушать музыку, компелять. WM пока не накатил, буду ставить FVWM. На редактирования его конфига наверное дофига времени уйдёт. А там и всё остальное прикручу, графический ФМ, браузер и т.д. Не определился пока на каком тулките «ДЕ» выбрать. НЕ gtk!, не KDE*. Или что-то на qt, или какой-нибудь CDE или что-то другое экзотическое.

Что-то есть на qt нормальное? Где есть настройка, чтобы при нажатии правой кнопки мыши контекстное меню НЕ СРАЗУ ВЫПАДАЛО, а после отпускания кнопки?

Какие ещё есть тулкиты?

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

Смотреть видео, слушать музыку, компелять.

И что, во время просмотра видео и компеляния тоже использование памяти 166 МБ? :)

Не определился пока на каком тулките «ДЕ» выбрать.

Ни на каком! Если хочешь удобное, бери Niri, Sway, Awesome или i3. Если же хочешь ещё и минимизацию потребления памяти, dwm.

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

Ну и где ж тогда «всё хорошо»

Ну у меня вот всё прекрасно работает.

если работать не будет?

Что не будет? Софт, скомпиллированный под glibc? Ну да, не будет. Если тебе нужно использовать именно бинарники, скомпиллированные под glibc, то на musl «всё плохо». Если такой необходимости нет, то «всё хорошо». ¯\_(ツ)_/¯

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

В идеале выкинуть.

А так, игры я запускаю в bwrap. Всегда так делал, даже когда сидел на Арче с glibc — ибо хрен его знает, что оно всякое закрыто-кодное там делает, да и сеть можно отрубить, и прочее. Теперь вот помимо просто «песочницы», всё в том же bwrap просто «корень» с glibc именно для проприетарных игр использую. Под musl проприетарный софт, скомпиллированный для glibc не работает.

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

Расскажи хоть, что конкретно сделал пока

я всё уже не помню. редактирование опций сборки, выбор флагов компилятора, настройка конфигов. у меня мой проект KOSMOS — это и мои скрипты и набор конфигов системы и набор портов.

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

редактирование опций сборки, выбор флагов компилятора

И не лень ведь… А практическая цель есть, или спортивный интерес чисто?

я всё уже не помню. […] настройка конфигов.

А вот тут жаль, что не помнишь. Так хоть смысла больше было в этом — с другими поделиться. А так ради чего всё? Просто чтобы на циферки любоваться?

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

Ну так вперёд :)

Что там месяц выбирать? Возьми какой-нибудь gitlab да выложи. Если потом обдумаешь и решишь, что тебе нравится что-то другое, перенести же элементарно — git есть git.

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

я git’ом пользоваться не умею

Лучше уметь пользоваться git, чем «оптимизировать потребление памяти» (в кавычках, потому что ты не код оптимизируешь, а тупо удаляешь всё подряд).

anonymous
()