- Kubuntu 20.04.1
§ Железо:
• Устройство ← Dell Xps 15 9570 4K Touch;
• ЦПУ ← 12 × Intel Core i7-8750H CPU @ 2.20 ГГц;
• ОЗУ ← 15,4 ГиБ;
• ГПУ 0 ← GPU: Intel UHD Graphics 630 (Драйвер — i915);
• ГПУ 1 ← NVIDIA GeForce GTX 1050 Ti Mobile (Драйвер — nvidia 455.45.01);
• Экран ← 3840×2160.
§ ПО:
На момент создания снимка (2021.01.06):
• OC ← Kubuntu 20.04.1 / 64-bit;
• Ядро ← 5.8.0-34-lowlatency;
• Тема окружения ← «Breeze Dark»;
• Оконный Менеджер ← KWin;
• Тема иконок ← «Materia Manjaro Breeze Dark».
§ Проблема:
Dell Xps 15 9570 Touch — весьма интересный и капризный ноутбук. Я бы не советовал его никому для работы (и меня отговаривали), но попытки разобраться с его «особенностями» дали повод изучить в некоторые новые для меня технологии. (Один HiDPI чего стоит).
В частности, периодические зависания и быстро кончающаяся память привели меня к том, что я задумался о максимальной утилизации ГПУ (не пропадать же добру). Но в процессе открыл для себя существование «гибридных» ГПУ — интегрированная + дискретная, которые переключаются по требованию.
К сожалению, переключение «интегрированная» / «дискретная» оказалось возможным не само по себе, а с помощью утилиты NVIDIA Optimus. В качестве альтернативы я пробовал консольную утилиту system76-power. И на стандартной Kubuntu она даже нормально работала. Но system76* утягивает за собой ворох странных зависимостей и свой собственные драйвера, которые в несмотря на заявления обновляются реже чем стандартные.
Следующим очевидным шагом было выбрать один вариант из трёх:
• «интегрированная»;
• «дискретная»;
• «интегрированная» / «дискретная» по требованию.
Вдруг это как-то поможет побороть тормоза на машине или как-то повысить отзывчивость в период пиковых нагрузок (например, при сборке libffmpeg + python в debug-режиме).
§ Эксперимент:
На картинке приведена работа «гибридной» ГПУ в смешанном режиме, при относительно большой нагрузке и способ запуска приложения в форсированном дискретном режиме.
Для наглядности терминал поделен на 2 столбца (средствами самой konsole).
Левый столбец:
→ `nvtop` — демонстрация работы дискретной ГПУ ¹;
→ `sudo intel_gpu_top` — интегрированной работы дискретной ГПУ;
→ `htop` — демонстрация потребления ЦПУ и ОЗУ ².
Правый столбец:
→ `neofetch`;
→ содержимое `/usr/local/bin/prime` ³;
→ запуск `glxgears` ⁴ на дискретной ГПУ (через `prime`);
→ запуск `glxgears` на интегрированной ГПУ (без `prime`).
Кроме того, для теста запустил несколько браузеров с «миллионом» вкладок, картами и видео на Youtube для наглядности работы дискретной ГПУ.
§ Выводы:
К сожалению, для меня «гибридная» ГПУ оказалась не самым удобным вариантом. Ноутбук почти всё время стоит на столе и электричество экономить вроде как не зачем. Кроме того, при использовании и режима «по требованию» и чистого «Intel» у меня разъехались шрифты в некоторых приложениях. Очень раздражающе выглядит панель вкладок в `yakuake` — размер графики не масштабируется под размер шрифтов (HiDPI же).
Так что, на данный момент я использую вариант с дискретной картой. Но в некоторых случаях бывает удобно переключится на что-то более экономичное.
§ А что с исходной проблемой:
На зависания и тотальные выедания памяти мои эксперименты с ГПУ никак не повлияли. К сожалению, современные IDE и браузеры настолько прожорливы, что мне помог только раздел подкачки размером с 64 Гб. Бедный, бедный SSD …
Комментарии
23:34
1. → «nvtop»: обратите внимание на тип вычислений. «Compute» в данном случае это аппаратное ускорение графики в браузерах.
2. → «htop»: несмотря на всякие ухищрения мы все равно умудрились употребить 14,4 ГиБ из 15,4 доступных. И это пока не запустили сборку чего-то объёмного.
3. → «prime»: содержимое скрипта — просто выставляем нужные переменные окружения: `__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" exec "$@"`
4. → «glxgears»: ранее упоминался тут https://losst.ru/testirovanie-videokarty-v-linux
09:27
11:56
13:15
13:22
13:20
У меня основная ОС и есть на другом диске пара запасных, чтоб в случае неполадок с основной не остаться бед ПК. На другом ССД ещё одна, непользуюсь, но и удалять не стал.
23:22
Я много думал про это и у меня получается вот такой расклад:
host
├── common
│ ├── boot
│ ├── flatpak
│ ├── home
│ │ ├── common-user
│ │ ├── manjaro-user
│ │ └── ubuntu-user
│ ├── mysql
│ ├── opt
│ ├── postgresql
│ ├── root
│ ├── snapd
│ │ └── snap
│ └── storage
├── manjaro
│ ├── bin -> ./usr/bin/
│ ├── boot -> /host/common/boot
│ ├── dev -> /host/.:udev
│ ├── etc
│ ├── home -> /host/common/home/
│ ├── lib -> ./usr/lib/
│ ├── lib64 -> ./usr/lib/
│ ├── media
│ ├── mnt
│ │ └── storage -> /host/common/storage/
│ ├── opt -> /host/common/opt/
│ ├── proc -> /host/.:proc
│ ├── root -> /host/common/root/
│ ├── run -> /host/.:tmpfs
│ ├── sbin -> ./usr/bin/
│ ├── tmp -> /host/.:tmpfs
│ ├── usr
│ └── var
│ └── lib
│ ├── flatpak -> /host/common/flatpak
│ ├── mysql -> /host/common/mysql/
│ ├── postgresql -> /host/common/postgresql/
│ └── snapd -> /host/common/snapd/
└── ubuntu
├── bin
├── boot -> /host/common/boot
├── coredumps
├── dev -> /host/.:udev
├── etc
├── home -> /host/common/home/
├── lib
├── lib32
├── lib64
├── media
├── mnt
│ └── storage -> /host/common/storage/
├── opt -> /host/common/opt/
├── proc -> /host/.:proc
├── root -> /host/common/root/
├── run -> /host/.:tmpfs
├── sbin
├── snap
│ └── folders with sym-links
├── src
├── srv
├── sys -> /host/.:sysfs
├── tmp -> /host/.:tmpfs
├── usr
└── var
└── lib
├── flatpak -> /host/common/flatpak
├── mysql -> /host/common/mysql/
├── postgresql -> /host/common/postgresql/
└── snapd -> /host/common/snapd/
# Названия OC взяты для примера, могут быть любые.
# В структуре папок хотел показать, что есть пересечения, но в общем случае всё может сильно не совпадать → Нужно \ не нужно с этим бороться (симлинкам или биндами перевесить, например)?
Но не уверен, что это хорошо.
07:57
Без обид, но даже разбираться не стану. Пара пояснений для понимания вопроса:
1) Раньше пользовался Манджаро, ставил .deb зависимые ОСи;
2) Сейчас на Арко. Систему только сам могу убить, работает в моих сценариях стабильно.
Разметка, к которой я пришел за это время:
сначала ставил всё в /, потом стал выносить отдельно /home.
То есть в случае преустановки я могу смонтировать /home там же (отметить этот раздел) и у меня настройки все останутся.
Теперь стал выносить отдельно /boot раздел. Как я понял, туда ядра устанавливаются. То есть если их много или сразу несколько ОСей на одном ССД/диске, то его лучше сделать побольше — 1024 МБ, а нет, то можно и 512 МБ. При установке второй ОС система сама подхватывает /boot раздел, он будет общий. Его лучше не изменять при установке, а то не загрузится основная система. Необязательно степень двойки, просто я так привык )
В установщике Манджаро рекомендуют его в fat32, на Арко и прочих я делаю его в Ext4 (как само стабильной, неубиваемой и линуксовой).
Вот сейчас на Арко и тут неободимости жанглировать ядрами, как в Манджаро. Так что он меньше 100 МБ занимает.
Плюс ещё стал выносить swap раздел. Судя по конки, он не бывает сильно загружен, так что 1-3 ГБ хватит. У меня он 2 ГБ. Потом в ОС свежеустановленной можно раздел этот не удалять и отметить его в GParted или Диспетчер разделов от KDE как Раздел подкачки.
Ещё рекомендую для ознакомления со структурой файлов линуксовой. Видео загружено мной на peertube.
https://video.ploud.jp/videos/watch/playlist/8a5b51de-4629-4ee6-b139-3b8b8dd28169?playlistPosition=9&resume=true
12:50
10:00
10:02
13:05
10:17
Я сейчас сам в такой ситуации, что занимаюсь разработкой на корпоративном ноуте (Win10 / i7 10510U / 32 GB) - так вот ноуту тяжело просто поднять все нужное в докере, не говоря уж об открытии 3-4 проектов в райдере и компиляции с отладкой, хотя формально по бенчмаркам у этой машины паритет с моим стационарником на минте с i7 4790.
И вот мой личный ноут (Kubuntu 20.04 / Ryzen5 3500u / 8GB) как раз 100% попадание в цель для меня - всю офисно-интернетную и развлекательную работу он выполняет на ура, а на разработку даже не претендует) зато позволяет подцепиться по rdp или ssh и спасти гибнущий продакшн, если что. И никакого геморроя с аппаратной частью.
13:00
14:19
13:04
А как быть со всякими красивыми IDE? Меня относительно недавно на них подсадили, и отказаться от уже тяжело. Каюсь, но ничего уже не могу поделать.
13:13
13:22
Пробовал — не понравилось. Даже если под NFS подключаться к коду. Конечно можно иметь 2 версии кода:
* одна локально + любимая CVS;
* вторая на dev-сервере + окружение запуска.
Так уже лучше — но есть много «но». И становится совсем грустно, когда локальная и запускаемая разойдутся. Это не бывает редко, но раздражает.
—
За мнение спасибо. Вероятно, мне стоит попробовать вернуться к такому варианту.
14:20
Я, вероятно, слишком на себя все примерил - у нас толстая инфраструктура и несколько десятков микросервисов над ней, все это вполне разворачивается на стенде (читай, удаленной машине), нужный сервис на стенде гасится и запускается под дебагом из IDE на ноуте (в конфигах IP удаленной машины проставляются), получается без особых усилий. Правда, изначально всю эту схему не просто было собрать.
16:45
13:12
Меня это тоже удивляет, но вероятно nvidia-специфичная конфигурация Xorg как-то неявно влияет на окружение без nvidia. Но это не точно.
Резюмируя, не могу сказать, что чистой дискетке (без гибрида) я испытываю какие-то проблемы. (Если специально их не искать, и не проверять «что будет, если» … )
14:24
16:59
Для пользователя — очевидно, разницу Full HD и 4K видеть не вооруженным глазом и ворчать, что Full HD — это мало.
Для производителя — сказать, что они «тоже умеют Retina». Я думаю — последнее определяющий фактор существования технологии. (Хотя, кажется, технологически HiDPI и Retina имеют отличия).
Честно говоря, если рядом поставить второй ноут с 1920×1080 (тоже 15") — заметно очень. Из того, что я отметил для себя:
→ приятнее смотрятся шрифты;
→ осознаешь смысл фотографий больших размеров 100500×100500 (а раньше я думал, что только для типографий важно).
→ при просмотре мелкой графики (схемы в figma \ notion.so ну или разные геокарты) удобно когда много всего малом пространстве (чтобы не переключаться) и видно чётко.
На большинстве телефонов, планшетов, с которыми я сталкивался тоже 4K. Хотя там еще меньше экран. Но специально брать 4K-экран или что-то брать ради него я бы не стал. Скорее как довесок.
11:14
О ваших проблемах мне сложно судить - не мой уровень, но, здается мне, я пытался уже вам посоветовать проверить для ваших целей Garuda dr460nized. Там есть настройки для HiDPI, NVIDIA да и ядра там более продвинутые. С такой машинкой, как у вас, должно получиться совсем не плохо. Разве что, в самой вашей работе вам нужна именно Kubuntu, а в Арче этого нет.
Но я бы попробовал. ИМХО.
12:57
В некоторых следующих статьях появится и dr460nized =)
А тут я просто фиксирую для себя снимки некоторой давности, чтобы через пару лет мучительно не вспоминать «как же я это делал» и «что же там такое было».
13:25
15:29
17:01
Уже ворчал на эту wiki тут: https://pingvinus.ru/gallery/3356
Буду рад скриншотам. ПО такое же?
22:26
22:53
За ссылку на zram — спасибо. Ранее про него не слышал. Буду пробовать. Оставлю это здесь на будущее:
→ https://losst.ru/nastrojka-zram-v-linux
16:37
21:37
21:41
18:24
1) Intel HD Graphics 4600+Nvidia GTX 760/1660 - переключение не работает, виснит система намертво. Работает только вывод с встройки - VGA на второй монитор с VGA. Много сменилось версий драйверов и ядер, но всё по прежнему так, а вот на следующей конфигурации работает.
2) Intel HD Graphics 630+Nvidia GTX 1050Ti - работает переключение со встройки на дискретку и обратно, ну может есть проблемы на некоторых играх с Vulkan, игра продолжает работать на встройке, ну это скорее всего нужно принудительно указывать через какую видеокарту запускать игру.