Заметки

Category: Linux

Устранение тормозов и 100% зажора CPU Linux/VMWare Player на Intel Core i7

Симптомы - с определённой периодичностью виртуальная машина съедает на несколько минут 100% от каждого выданного ей процессора (т.е. на 4 ядра - загрузка 400% и т.п.), при этом хост притормаживает, а виртуалка вообще неуправляема, т.к. даже движения мышки отрабатываются с огромной задержкой. В это время внутри виртуалки нет процессов, занимающих столько CPU. При этом, на хостах AMD такой проблемы нет. После долгих мучений, рабочий ответ, наконец, найден тут:

This actually is an IOMMU issue and the solution involves enabling it at the kernel command line. Enabling VT-d (the Intel IOMMU kernel driver) in the firmware isn't enough and tinkering with compaction_proactiveness and swappiness only constrain this behavior without addressing the underlying cause.
...
So, for GRUB, edit /etc/default/grub to add the above string to GRUB_CMDLINE_LINUX_DEFAULT, e.g.,

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"

Save and close the file, then run:

# update-grub

Reboot to take effect.

https://unix.stackexchange.com/a/713470/415520

Ловим процессы, которые шарятся по винту (Linux)

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

iotop

Если ввод-вывод активный и идёт прямо сейчас, достаточно просто посмотреть на sudo iotop -o
Если ввод-вывод идёт небольшими порциями, то используем: sudo iotop -bktoqqq -d .5
Пояснение: -b - пакетный режим вывода, -k - килобайты, -t - показывать время, -o - показывать только потоки, которые занимаются вводом-выводом, -qqq - отключить заголовки, -d 0.5 - период обновления в секундах.
Поймав, какой процесс занимается работой с диском, можно посмотреть на его открытые файлы: lsof -p $PID (замените $PID на номер интересующего процесса).

fatrace

Это намного более удобный способ для отслеживания редких операций (программа есть в репозитории Убунты). Сразу печатает кто, в какой файл лазит и какой доступ (чтение или запись).
cd /mnt/каталог_куда_смонтирован_винт
sudo fatrace -c -t

P.S. Типичные злодеи - индексаторы файловой системы, их можно выпилить так: sudo apt remove locate mlocate plocate. См. askubuntu. Также постоянным желанием писать на диск страдает Yandex.Disk - демона синхронизации можно гасить, когда он не нужен.

Файлы webp с расширением jpg из ВК (Linux/bash)

ВК перешёл на фотографии в формате webp в мобильном клиенте, но когда вы их сохраняете в галерею он пишет их с разрешением jpg. В результате, некоторые программы работают с этими файлами неправильно. Вот этот небольшой скриптик позволяет рекурсивно пройти каталог с такими неправильно названными файлами и переименовать их правильно:

·· [Read more · Читать дальше] ·· »»»

Перенос корневой файловой системы на новый диск (Linux, Ubuntu)

Это не универсальная инструкция, просто шпаргалка для себя. Мог что-то упустить :)

  1. Форматируем новый винт. Записываем (копируем в текстовый редактор и т.п.) UUID будущего корневого раздела. Делаем этот раздел загрузочным (активным) (включаем флаг "boot").
  2. Монтируем его, например, в /mnt/tmp.
  3. Копируем файлы: cd /mnt/tmp && sudo cp -apxuR /* .
    Можно добавить -v для печати имён файлов в процессе работы, но это сильно замедляет копирование.
  4. Правим /mnt/tmp/fstab (заменяем UUID для "/" на новый).
  5. Правим /mnt/tmp/boot/grub/grub.cfg (заменяем UUID корневого диска на новый).
  6. Проецируем системные каталоги в /mnt/tmp, чтобы сделать chroot:
    sudo mount -o bind /dev/ /mnt/tmp/dev
    sudo mount -t proc none /mnt/tmp/proc
    sudo mount -t sysfs none /mnt/tmp/sys
  7. sudo chroot /mnt/tmp
  8. sudo grub-install /dev/sdXXXX (Имя устройства, а не раздела!) Примечание: на некоторых машинах grub-install может занять несколько минут, а то и полчаса. Прерывать его не нужно, дайте доработать.

После этого перезагружаемся, выбирая при необходимости новый диск в качестве стартового в BIOS. Если всё ОК, можно отключать или форматировать и переиспользовать старый диск.

Установил KOMPAS 3D LT V12 под Linux, но...

Компас 3D LT это бесплатная и максимально облегчённая (и очень старая) версия приложения для учеников образовательных учреждений. Возникла идея поставить её сыну для школьного проекта, так как Tinkercad не имеет некоторых нужных возможностей (фигуры вращения и выдавливания по произвольным эскизам, скругления).
Качаем дистрибутив с официального сайта.
Всё ставится примерно как и в инструкции для Home-версии, за исключением того, что нужны другие компоненты Винды и нет защиты от копирования и сервера ключей HASP. Также, скорее всего, нет необходимости обновлять Wine не из дистрибутива. В итоге установка заметно быстрее и проще. Вот официальная страница FAQ по Компасу LT под Wine.
0) Установите / обновите Wine.
1) Создаём инстанс Wine:

WINEPREFIX=~/.wine-kompas3dlt winecfg

Выбираем режим Windows XP, задаём разрешение экрана, добавляем диски (если надо), выходим.
2) Устанавливаем компоненты:

WINEPREFIX=~/.wine-kompas3dlt winetricks -f -q corefonts mfc40 mfc42 vcrun2003 vcrun2010 gecko vcrun6 vcrun6sp6

3) Распаковываем дистрибутив в ~/.wine-kompas3dlt/drive_c/Distrib, переходим в каталог с файлами, запускаем:

WINEPREFIX=~/.wine-kompas3dlt wine msiexec /i KOMPAS-3D_LT_V12.msi

Почему-то, в отличие от Home-версии, не создался ярлык на рабочем столе, но это легко исправить, создав на столе скрипт или ярлык с примерно такой командой:

WINEPREFIX=$HOME/.wine-kompas3dlt wine "$HOME/.wine-kompas3dlt/drive_c/Program Files (x86)/ASCON/KOMPAS-3D LT V12/Bin/KOMPASLT.Exe"

И вроде всё запускается и работает очень шустро и не падает.
А теперь, вёдра дёгтя в ложку мёда:

  • На одном компьютере при редактировании эскиза глючит отрисовка - фон становится чёрным и рисуются фантомные линии (геометрии, которые были в эскизе раньше).
  • На другом компьютере при редактировании возле курсора болтаются всякие артефакты.
  • На дисплее 4K работать невозможно, т.к. кнопки в тулбаре итак крошечные, а при увеличении DPI не увеличиваются, в результате их без экранной лупы не видно.

По первым двум проблемам, в интернетах есть информация, что старый Компас под Wine не всегда дружит в фирменными драйверами nVidia и лучше работает с nouveau, но это решение неприемлемо, т.к. с nouveau много что другое плохо работает. Итого, пока что затея с Компас LT проваливается. Вам может повезти и всё будет работать нормально, нам не повезло.
Проблемы могут быть исправлены в WINE @ Etersoft, но это не точно - нужно пробовать, а для этого надо пожертвовать временем и установленным, налаженным стоковым Wine на каком-то компьютере (параллельно их просто так поставить нельзя), либо поднимать виртуалку, что лишает 90% смысла использования Wine (так можно сразу виртуалку с XP или 7 делать).

Archives

                                                                                                                                                                                                                                                                   


© Sergey A. Galin, 1998-2021 sageshome.net/blog/