Оптимизация работы с памятью

Автор Лия, 07 сентября 2024, 19:56:50

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

Лия

Для всех:
sudo apt install earlyoom
ЦитироватьEarlyoom is an userspace OOM-killer which can avoid the system to get into
 unresponsive state caused by swapping, which is most likely to occur when a
 large swap is present and memory is tight. It checks the amount of available
 memory and swap periodically, and when both are below a preconfigured value,
 it kills the largest process.
Предотвращает зависание системы в случае низкого объема свободной памяти.
Я бы добавила его в список программ, устанавливаемых по умолчанию (при установке Debian) :)

Для компьютеров с малым объемом оперативной памяти:
sudo apt install zram-tools
Становится гораздо лучше :)


ek-nfn

А для тех, у кого нет проблем с памятью, желательно использовать Preload, для ускоренного запуска часто используемого софта. Работает в фоновом режиме, часто используемые приложения хранит в кэше озу, благодаря чему они быстрее запускаются.

sudo apt-get install preload

p.s. для работы earlyoom требуется служба notify-send из пакета «libnotify-bin», через которую утилита сообщает пользователю о проблеме нехватки памяти и закрытии программ.
Debian 12  -> Devuan 5 xfce -> MX Linux 23

Лия

Цитата: ek-nfn от 08 сентября 2024, 17:27:27p.s. для работы earlyoom требуется служба notify-send из пакета «libnotify-bin»
Не совсем
$ apt show earlyoom | grep -E '^Depends:|^Recommends:'

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Depends: lsb-base (>= 3.2-14), libc6 (>= 2.34)
$ man earlyoom
   -n
       Enable notifications via d-bus.

       To actually see the notifications in your GUI session, you need to have systembus-notify (https://github.com/rfjakob/systembus-notify) running as your user.
Цитата: ek-nfn от 08 сентября 2024, 17:27:27А для тех, у кого нет проблем с памятью, желательно использовать Preload, для ускоренного запуска часто используемого софта. Работает в фоновом режиме, часто используемые приложения хранит в кэше озу, благодаря чему они быстрее запускаются.

sudo apt-get install preload
Лучше поставить систему на SSD (а ещё лучше - NVMe) :)

ek-nfn

#4
Цитата: Лия от 08 сентября 2024, 19:47:15Лучше поставить систему на SSD (а ещё лучше - NVMe)
не лучше, озу в разы быстрее. У меня два диска NVMe на PCIe 3.0, чудес не вижу, хотя шустрее, чем ssd на sata
Debian 12  -> Devuan 5 xfce -> MX Linux 23

Лия

Цитата: ek-nfn от 08 сентября 2024, 20:02:57не лучше, озу в разы быстрее.
$ time dd if=/dev/zero of=/dev/shm/test bs=1M count=16384
16384+0 records in
16384+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 3.83843 s, 4.5 GB/s
$ echo 3 | sudo tee /proc/sys/vm/drop_caches && time dd if=/dev/shm/test of=/dev/null bs=8k
3
2097152+0 records in
2097152+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 2.05864 s, 8.3 GB/s
Цитата: ek-nfn от 08 сентября 2024, 20:02:57У меня два диска NVMe на PCIe 3.0, чудес не вижу, хотя шустрее, чем ssd на sata
Мне кажется, с чем-нибудь таким - https://www.dns-shop.ru/product/221c825ac2f8ed20/2000-gb-ssd-m2-nakopitel-msi-spatium-m570-hs-s78-440q560-p83/ - будет получше :)
ЦитироватьPCI-E 5.0 x4, чтение - 10000 Мбайт/сек, запись - 10000 Мбайт/сек
А вы используете preload? Чувствуете разницу? :)

ek-nfn

#6
Цитата: Лия от 08 сентября 2024, 20:34:53А вы используете preload? Чувствуете разницу?
Сложно сказать. Нужный софт всегда запущен и почти никогда не выгружается. Постоянно запускаются лишь мелкие скрипты, для которых это все лишнее. Комп не отключается неделями. По этой причине я не пользуюсь в последние годы  preload, смысла как бы нет.  ;D
Zram по инерции еще продолжаю ставить, но при 16 гб озу для моих задач он остается не востребован. Хотя вижу, что swap в озу начинает заполняться при заполнении озу на половину и более, надо бы слазить в конфиг и перенастроить, но опять же зачем ? Древний опыт уменьшения swappiness показал, что лучше этого не делать, так как машина при старте процесса переброса данных в swap более жестко и надолго уходила в ступор. Поэтому пусть лучше остается дефолтный 60. К настройке zram  подхожу с этой же точкой зрения. На 8 гб озу он был востребован, как и earlyoom. Хотя я сейчас и swap тоже не пользуюсь, окромя того, что создает zram. На старой машине не пользуюсь по причине всего 8 гб озу, которых еле еле хватает и для обычной работы. Раньше на ней ставил zram c выделением объема 1 гб, что создавало эффект, увеличение объема озу до 9-10 гб , за счет сжатия данных.
Цитата: Лия от 08 сентября 2024, 20:34:53Мне кажется, с чем-нибудь таким - https://www.dns-shop.ru/product/221c825ac2f8ed20/2000-gb-ssd-m2-nakopitel-msi-spatium-m570-hs-s78-440q560-p83/ - будет получше
Рекордный отрыв в скоростях между 3.0, 4.0 и 5.0 будет лишь на линейных операциях с большими объемами. Но не надолго и зависит от характеристик буфера диска.  В повседневной рутинной работе различия в скоростях намного скромнее. Для эксперимента поставил один NVMe под шину 4.0 и что? Да нифига, показал повышение производительности на 10-15 % относительно NVMe под шину 3.0. Хотя на линейных тестах красота, почти на максимуме шины 3.0, но в реальной жизни все по другому  ;D 
Debian 12  -> Devuan 5 xfce -> MX Linux 23

Лия

#7
На моём основном компьютере:
$ free -m
               total        used        free      shared  buff/cache   available
Mem:           64007       10449       44667         262        9867       53558
Swap:            255           0         255
$ swapon -s
Filename                Type        Size        Used        Priority
/dev/zram0              partition   262140      0           100
Чисто для формальности, говорят, что совсем без swap плохо :)
earlyoom стоит на случай утечек памяти ( такое тоже бывало :) )

На рабочем ноутбуке 4 ГБ ОЗУ с zram, в принципе мне хватает даже с запасом (LibreOffice, Thunderbird, Google Docs в firefox-esr, да и в принципе всё) :)

Я как-то экспериментировала с установкой Linux на планшет с 512 МБ ОЗУ, и без zram там вообще всё еле ворочалось, а с ним - у меня стоял GNOME (единственный раз, когда я его ставила, его внешний вид мне совсем не понравился) и всё работало даже хорошо :) Можно даже было видео через mpv смотреть - правда из-за бага в драйвере lima цвета были искажены и пришлось отказаться от этого проекта :)
А так цель собственно проекта была - скажем в дороге посмотреть видео, чтобы с тяжёлым ноутбуком не таскаться :)

ek-nfn

#8
Цитата: Лия от 08 сентября 2024, 22:05:54Чисто для формальности, говорят, что совсем без swap плохо
Есть еще более продвинутый вариант для swap - ZSWAP, использует и озу, и диск. В озу создаётся пул со сжатыми данными- кэшем, который в случае заполнении сбрасывается в дисковый swap.

Для владельцев же дисков маленького объема, для которого роскошь держать полупустой swap  на десяток гб, существует Swapspace для управления динамическими томами swap. Пустые тома, спустя заданное время, просто удаляются с диска. Получаем динамически изменяемый (по потребности) файл (файлы) swap c неограниченным верхним пределом. Со zram не конфликтует, приоритет ниже, чем у zram
Debian 12  -> Devuan 5 xfce -> MX Linux 23

koshak83

#9
Лично я делаю отдельный SWAP раздел на диске размером ОЗУ+1МБ. Иначе гибернация (не сон) нормально не работает.

Но то нормально если вы не обрабатываете "секретную\конфеденциальную" информацию, как у меня. А вот при условии обработки таких данных, нужно (я бы сказал должно) либо делать SWAP с затиранием данных "нулями" при выключении ПК, либо SWAP файл с шифрованием, а не раздел. Но это повлияет на производительность. К примеру шифро-LVM и шифро-свапфайл как у Astra Linux SE 1.8 по умолчанию сделано.
Конституция СССР 1977 г. Всесоюзный референдум о сохранении СССР: Да- 76.4%, Нет- 21.7%, НД- 1.9%

Лия

#10
А что это такое красивое на скриншоте? :)

09 сентября 2024, 01:49:55
А, вижу, btop

koshak83

Цитата: Лия от 09 сентября 2024, 01:49:25А что это такое красивое на скриншоте? :)

09 сентября 2024, 01:49:55
А, вижу, btop

BTOP++
Конституция СССР 1977 г. Всесоюзный референдум о сохранении СССР: Да- 76.4%, Нет- 21.7%, НД- 1.9%