LINUX.ORG.RU

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

 , , ,


0

4

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

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

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

★★★★★

Последнее исправление: teod0r (всего исправлений: 3)

Встречал на ЛОРе упоминания людей, что их система при старте потребляет 100-120 Mb оперативы. Как вам такое удаётся?

Элементарно. Смотри: моя система при старте потребляет 3 МБ.

anonymous
()

незнаю как щаз, раньше качаешь какой нибудь дебиан\убунту серверный дистрибутив и сидишь в консоли с 20Мб потребляемой памяти.

А на спектруме (который синклер) так и вовсе 64кб хватало всем =)

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

Смотри: моя система при старте потребляет 3 МБ

😀

- Сосед у меня, ему 82, рассказывает, что он может хоть каждую ночь…
- А кто вам мешает говорить также?

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

Запущеные проги у которых я не хочу терять состояние, ребуты почти всегда только из-за зависаний (вроде пофиксил) или если не уследил за батареей (очень редко).

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

тоже ребутаюсь редко. а можно ли как-то посмотреть потребляемую память после загрузки через емулятор? например

qemu -kernel /boot/bzImage -hda ...

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

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

qemu умеет делать сам такие оверлеи, называется режим снапшота. Изменения хранятся в памяти qemu или в временном файле рядом. Есть ключ -snapshot для глобального его включения и опция snapshot=on которую можно указать отдельному диску (главное не нажать какой-то хоткей который записывает накопленные изменения, или может быть можно процессу qemu дать readonly права на диск с помощью unix-прав).

Понятное дело, гостевая ОС может побиться от того что хостовая переписала что-то на диске без её ведома, но в данном случае это не страшно.

Но мне лень это делать.

firkax ★★★★★
()

На видео чел, у которого при старте десктоп потребляет 45 Mb:

Ну на 3/4 пне (i686) действительно столько жрёт. На моей OPi One с иксами около 80-100 мб потребление было (всего 500 мб озу).

На 4 малинке с DietPi, которая мне инет раздаёт, сейчас так:

whbex@pirouter:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.7Gi       210Mi       3.6Gi       5.2Mi        94Mi       3.5Gi
Swap:             0B          0B          0B

На основном десктопе с amdgpu меньше 300 мб добиться не мог.

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

Ничего. 24 гб стоит, 3 гб по дефолту отжирается, жить не мешает.

whbex
()
Ответ на: удаленный комментарий

Вполне нормальное стремление, чтобы быстрее ехать. На великах, например, снимают всякие обвесы, а тут, в жирных Гномах, отключают Гном Софтвэйр Центер или как там его.
Пореходят с ДЕ на лёгкие ВМ, а потом на лёгкие дистрибутивы. Любая ОС это прежде всего среда для запуска программ, и если она не отвлекает и не потребляет, это лучшее что она может сделать.

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

-Os

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

teod0r ★★★★★
() автор топика

У меня sway со всем зоопарком pipewire, xdg-portals, dbus, прочие - 300-400 MB ест. i3 без композитора и того меньше ел около 150-200 MB. Подрезать ядро от лишних опций, убрать лишний мусор неиспользуемых демонов, использовать dwm - будет меньше 100 MB.

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

Сократи доступный объем памяти и запрети memory overcommitment. Либо совсем откажись от glibc. Серьезно, чем больше памяти доступно, тем большими кусками glibc ее выделяет.

Khnazile ★★★★★
()

Перегрузился(gentoo, awesome), посмотрел:

>> ~ $ free -h
               total        used        free      shared  buff/cache   available
Mem:           5.7Gi       151Mi       4.9Gi        67Mi       687Mi       5.4Gi
Swap:          5.9Gi          0B       5.9Gi
В i3 немного меньше покажет. Особо не упирался чтобы уменьшить потребление, если только из ядра поудалял(и ещё наверное можно).

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

По ощущениям примерно так же как и Линуксе – запуская примерно идентичный софт, будем получать примерно идентичное потребление. Чудес не бывает, прикладной код по большей части из тех же сорцов собирается.

С той только разницей, что чётко измерить «потребляемую память» в NetBSD (про другие сходу не подскажу) не представляется возможным.

NetBSD может показывать до половины оперативки как «Active», не переводя её в «Inactive», если не испытывает давления на подсистему памяти. При этом реально за большей частью этого «Active» стоит только страничный кэш, а не действительный рабочий набор приложений.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 2)

Ну, учитывая что линуксы бывают и встраиваемые, под условные 32М опаративки...

Чесать систему и снижать потребление можно до бесконечности, но где то нужно остановиться. Как по мне пустая система должна обойтись 10% памяти, т.е. ваши 190М это отлично для 2Гб физической памяти и дальше сдувать нет смысла.

А так... Ну, собрать своё ядро тут уже предлагали. А вот собрать его без initrd чтобы упростить загрузку и не грузить собственно initrd в память - вроде бы ещё нет. И кажется не упоминали влияние модуля видеодрайвера, подгружаемого и в ядро, и в Х-сервер (вайланд-композитор? не знаю, но вероятно тоже). Соответственно выкидывание полноценного драйвера и использование условного vesa-fb тоже сократит потребление.

Короче после выкидывания явного хлама советую не сдувать дальше, а оптимизировать своп-подсистему.

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

Ты для начала посмотри выдачу top/htop/etc.., что там может жрать память. Для минимизации потребления памяти могу посоветовать:

  1. дистр без systemd
  2. Не ставить X/wayland. Использовать dvtm+abduco/screen/tmux
  3. Дропнуть лишние процессы
  4. Дропнуть лишние tty терминалы
  5. Пересобрать ядро
anonymous
()