Задавались ли вы вопросом, куда Linux потерял часть доступной в системе памяти? Стандартные 512МБ на видеопамять для встройки это довольно очевидно (на скрине система с отключённой встройкой). А остальное?
Остальное это резерв для нужд ядра. Проверить, сколько ядро отъело памяти для себя любимого, можно так:
Остальное это резерв для нужд ядра. Проверить, сколько ядро отъело памяти для себя любимого, можно так:
$ journalctl -k -g Memory:
Dec 17 17:12:16 fedora kernel: Memory: 65169376K/66704876K available (22017K kernel code, 4535K rwdata, 17364K rodata, 5116K init, 6152K bss, 1516180K reserved, 0K cma-reserved)
🤯5❤2
Вчера было полное непонимание в комментах что такое swap и zram, поэтому родилась идея для сегодняшнего поста.
Во-первых, swap это важно. На десктопе и на сервере. На сервере бывают редкие исключения вроде кубера, который не дружит со свопом нормально (и то, в новых версиях уже пофиксили), но про такие исключения вы и так скорее всего знаете, если с ними работаете. В стандартной же ситуации это очень полезная штука. В интернете уже куча информации на эту тему: В защиту swap'а [в Linux]: распространенные заблуждения, man systemd-oomd, вот ещё у людей поимка утечки стала куда приятнее после включения oomd+zram и т.д.
Во-вторых, есть "новый" (11 лет, лол) и крутой вариант реализации свопа — zram. Кстати, zram необязательно юзать под своп, это обычная сжатая блочка в RAM — так я и делал бенч. Чем полезен zram?
1. Он сильно быстрее дискового и файлового свопа, особенно на линейное чтение и 4к рандомный доступ (более актуальный тип нагрузки), см. скрины с тестами fio на блочке
2. Он проще в настройке. В Fedora, SteamOS и некоторых других дистрибутивах он вообще работает из коробки. Раздела на диске не требует — часто swap раздел или забывают сделать, или места под него жалко. Swapfile тоже сложнее, особенно если у вас фичастая Btrfs у которой половина фич с ним не очень совместима.
3. Работу zram можно интерпретировать как сжатую оперативную память. При типичном 2:1-3:1 коэффициенте сжатия на zstd это можно считать за халявную оперативную память! Какой подарок в это непростое время. Минус только просевшая скорость на запись, а вот чтение вполне неплохо.
4. И нет, вопреки частому заблуждению, zram не сжирает оперативную память, если она ему не нужна.
В-третьих, если вам нужна гибернация, вам никто не запрещает сделать второй своп, в дополнение к zram. С systemd и zram-generator всё будет работать логично: у zram будет выше приоритет и он будет использоваться в первую очередь, а под гибернацию будет использоваться только своп на накопителе. Вот к примеру как делается swapfile на Btrfs:
1. Чтобы иметь swapfile надо сначала убедиться, что у нас в ФС используется только один диск и профиль данных single.
2. Создаём отдельный subvolume (иначе ещё без снэпшотов останемся) и прописываем его в fstab. Пусть точкой монтирования будет
3. Дальше пример для Fedora Atomic (от рута):
Во-первых, swap это важно. На десктопе и на сервере. На сервере бывают редкие исключения вроде кубера, который не дружит со свопом нормально (и то, в новых версиях уже пофиксили), но про такие исключения вы и так скорее всего знаете, если с ними работаете. В стандартной же ситуации это очень полезная штука. В интернете уже куча информации на эту тему: В защиту swap'а [в Linux]: распространенные заблуждения, man systemd-oomd, вот ещё у людей поимка утечки стала куда приятнее после включения oomd+zram и т.д.
Во-вторых, есть "новый" (11 лет, лол) и крутой вариант реализации свопа — zram. Кстати, zram необязательно юзать под своп, это обычная сжатая блочка в RAM — так я и делал бенч. Чем полезен zram?
1. Он сильно быстрее дискового и файлового свопа, особенно на линейное чтение и 4к рандомный доступ (более актуальный тип нагрузки), см. скрины с тестами fio на блочке
/dev/zram1 с zstd сжатием (дисковые тесты проводились на NVMe SSD Samsung 970 Evo Plus).2. Он проще в настройке. В Fedora, SteamOS и некоторых других дистрибутивах он вообще работает из коробки. Раздела на диске не требует — часто swap раздел или забывают сделать, или места под него жалко. Swapfile тоже сложнее, особенно если у вас фичастая Btrfs у которой половина фич с ним не очень совместима.
3. Работу zram можно интерпретировать как сжатую оперативную память. При типичном 2:1-3:1 коэффициенте сжатия на zstd это можно считать за халявную оперативную память! Какой подарок в это непростое время. Минус только просевшая скорость на запись, а вот чтение вполне неплохо.
4. И нет, вопреки частому заблуждению, zram не сжирает оперативную память, если она ему не нужна.
В-третьих, если вам нужна гибернация, вам никто не запрещает сделать второй своп, в дополнение к zram. С systemd и zram-generator всё будет работать логично: у zram будет выше приоритет и он будет использоваться в первую очередь, а под гибернацию будет использоваться только своп на накопителе. Вот к примеру как делается swapfile на Btrfs:
1. Чтобы иметь swapfile надо сначала убедиться, что у нас в ФС используется только один диск и профиль данных single.
2. Создаём отдельный subvolume (иначе ещё без снэпшотов останемся) и прописываем его в fstab. Пусть точкой монтирования будет
/var/swap.3. Дальше пример для Fedora Atomic (от рута):
btrfs filesystem mkswapfile --size 32g --uuid clear /var/swap/swapfile
echo '/var/swap/swapfile none swap defaults 0 0' >> /etc/fstab
# Если у вас не Atomic, то параметры ядра редактируются по другому
rpm-ostree kargs --append-if-missing=resume=UUID=$(findmnt -n -o UUID -T /var/swap/swapfile) --append-if-missing=resume_offset=$(btrfs inspect-internal map-swapfile -r /var/swap/swapfile)
# Если у вас не Fedora/EL, то SELinux часть можно пропустить
semanage fcontext -a -t swapfile_t /var/swap/swapfile
restorecon -v /var/swap/swapfile
reboot
👍6
Пост про zram меня навёл на ещё одну мысль. zram ведь в случае нехватки памяти сильно снижает конкуренцию за IO, имея довольно внушительные IOPS (QD=1) на запись: по результатам бенча на 7700X, профит ~3x относительно заявленных IOPS на Micron 7450 Pro M.2. С одним Samsung 970 Evo Plus вообще 7.5x разница. И т.к. zram такой крутой, почему бы не сместить баланс (
И так я наткнулся на вот этот блок, где подкреплен цифрами лишь один параметр —
В связи с этим у меня три вопроса:
1. Какие sysctl параметры как вам кажется есть смысл крутить/проверять?
2. Если тюнили zram, то какой был опыт?
3. Из чего и как вы бы посоветовали сделать бенч?
vm.swappiness) вытеснения page cache/anon pages в сторону анонимных страниц ещё сильнее? Пускай файловый кэш сидит в RAM до последнего.И так я наткнулся на вот этот блок, где подкреплен цифрами лишь один параметр —
vm.page-cluster. А хочется понять как влияют на производительность все параметры из списка (зачем-то же их туда притащили, даже если по наитию). Соответственно нужно определить методику тестирования, чтобы сделать качественный бенч. Бенч и его результаты потом можно на r/Fedora принести или вообще сделать пропозал с новыми дефолтами. В идеале для создания бенча обойтись стандартными инструментами типа fio и bash портянкой, но вообще для осмысленного бенча будет не жалко и на расте что-то кастомное написать. Не просто fio на /dev/zramX натравить, а посмотреть как при разных настройках ведёт себя система при нехватке памяти и без. И конечно должны быть разные профили нагрузки, аля: Workstation, Gaming, Server.В связи с этим у меня три вопроса:
1. Какие sysctl параметры как вам кажется есть смысл крутить/проверять?
2. Если тюнили zram, то какой был опыт?
3. Из чего и как вы бы посоветовали сделать бенч?
❤2👍1
Поздравляю всех с наступающим Новым Годом (или уже наступившим)! Всего вам наилучшего!
⚡8❤6
#TIL GNOME не знает что такое бонды, не показывает их корректно в GUI (видны только слейвы) и не даёт их сетапить.
Я всё понимаю, бонды редко делают через гуй, но неужели они считается настолько "продвинутой" штукой, что были обделены вниманием совсем? Как мне кажется это не такая уж и редкость среди корпоративных рабочих станций на Linux, где кроме GNOME почти ничего не осталось.
Я всё понимаю, бонды редко делают через гуй, но неужели они считается настолько "продвинутой" штукой, что были обделены вниманием совсем? Как мне кажется это не такая уж и редкость среди корпоративных рабочих станций на Linux, где кроме GNOME почти ничего не осталось.
🤔1
На скрине мой старый комп и новый. Получается ~57% улучшение производительности между поколениями. Круто. Интересно насколько тут повлиял переход на DDR5 память.
Можете и свою систему затестить: https://github.com/inv2004/bench_nim_build (на Linux лучше выбрать clang). К слову, мой конфиг — самая быстрая AMD система в этом тесте. Я уверен, среди подписчиков найдётся проц помощнее, чтобы побить рекорд.
Можете и свою систему затестить: https://github.com/inv2004/bench_nim_build (на Linux лучше выбрать clang). К слову, мой конфиг — самая быстрая AMD система в этом тесте. Я уверен, среди подписчиков найдётся проц помощнее, чтобы побить рекорд.
🔥3
shadowblog
На скрине мой старый комп и новый. Получается ~57% улучшение производительности между поколениями. Круто. Интересно насколько тут повлиял переход на DDR5 память. Можете и свою систему затестить: https://github.com/inv2004/bench_nim_build (на Linux лучше выбрать…
Рекорд никто так и не побил, поднимаем планку)
Это Minisforum MS-A2, моя хоумлаба.
Это Minisforum MS-A2, моя хоумлаба.
🔥1