UNIGINE Valley в WSL («нативный» WSLg и mesa драйвер d3d12)
Долго ждал нативной поддержки графических приложений в WSL. И дождался.
P.S. Пока работает не супер стабильно, и далеко не всё.
Долго ждал нативной поддержки графических приложений в WSL. И дождался.
P.S. Пока работает не супер стабильно, и далеко не всё.
Судя по тестам производительности ФС с последним ядром, у F2FS неплохие показатели при наличии нативного сжатия в ZSTD и LZ4. У XFS аналогичная производительность при железобетонной надёжности. Соответственно первая просится на десктоп в качестве дефолтной ФС, а вторая выглядит ещё более привлекательно на сервере (да, я очень люблю XFS). Что думаете по этому поводу?
Столкнулся с тем на Ubuntu 18.04 с ядром 5.0 у райзенов не работает boost частоты в однопоточной нагрузке и «неправильно» отображаются частоты ядер (в atop, например).
Собственно, решил первую из этих проблем так:
Проверяем, что boost у нас включен
cat /sys/devices/system/cpu/cpufreq/boost
echo 1 > /sys/devices/system/cpu/cpufreq/boost
На этом этапе можно замерять производительность любой однопоточной нагрузкой. Я замерял через команду:
openssl speed
Получаем нечто подобное (после md4 можно прервать исполнение, прирост и так будет виден):
Doing md4 for 3s on 16 size blocks: 8956867 md4's in 2.99s
Doing md4 for 3s on 64 size blocks: 7390952 md4's in 2.99s
Doing md4 for 3s on 256 size blocks: 4698093 md4's in 3.00s
Doing md4 for 3s on 1024 size blocks: 1935372 md4's in 2.99s
Doing md4 for 3s on 8192 size blocks: 306878 md4's in 3.00s
Doing md4 for 3s on 16384 size blocks: 168429 md4's in 2.99s
Сохраняем цифры, чтобы сравнить со значениями после фикса
Сам фикс:
Включаем раннюю подгрузку микрокода
echo "AMD64UCODE_INITRAMFS=early" | sudo tee -a /etc/default/amd64-microcode
Обновляем initrd
update-initramfs -k all -u
Doing md4 for 3s on 16 size blocks: 17599671 md4's in 2.99s
Doing md4 for 3s on 64 size blocks: 13476871 md4's in 2.99s
Doing md4 for 3s on 256 size blocks: 7940896 md4's in 3.00s
Doing md4 for 3s on 1024 size blocks: 3047957 md4's in 2.99s
Doing md4 for 3s on 8192 size blocks: 436247 md4's in 3.00s
Doing md4 for 3s on 16384 size blocks: 224848 md4's in 2.99s
Видим прирост производительности от 33% до почти 100%
P.S. Частота в atop показывается всё ещё неправильная, но если собрать новую версию из исходников, то появляется графа «cycl» которая вполне точно отображает условную частоту процессора.
Уважаемый pon4ik, поднял недавно тут тему как сделать так, чтобы «ФС ... хранила бы метаданные на одном диске, а сами данные на втором. Т.е. пока происходят всякие listdir и fstat не было обращений к харду и он мог сладко спать.»
Я вспомнил, что об XFS слышал подобное, быстро нагуглил пару ссылок про realtime раздел и кинул в коментариях. Но так-как я XFS-boy, то полез смотреть как оно реализовано. Рапортую). Realtime раздел у XFS — это дополнительный раздел на который пишутся только данные (не inode'ы и не лог — первые пишутся на основной раздел, вторые или на него же или на отдельный раздел, если указать). Соответственно можно вынести данные в больших файлах с последовательным доступом на один раздел, а все IOPS'затратные операции на другой раздел на SSD или даже в оперативке (если сохранность данных нужна только до перезагрузки, бывает такое).
Как реализовать:
mkfs.xfs -r rtdev=/dev/sdb /dev/sdc
mkfs.xfs -l logdev=/dev/sdd -r rtdev=/dev/sdb /dev/sdc
Где:
/dev/sdb — realtime раздел (только файлы и только если об этом «попросить», об этом ниже)
/dev/sdc — основной раздел (файлы, inode'ы, log)
/dev/sdd — раздел для log'а ФС
Лог раздел имеет ограничение по размерам. Поэтому легче его не выносить, учитывая что мы и так выносим от «главного» раздела файлы.
Далее монтируем:
mount -o rtdev=/dev/sdb /dev/sdc /mnt
mount -o logdev=/dev/sdd,rtdev=/dev/sdb /dev/sdc /mnt
Как заставить систему писать файлы на realtime раздел? Есть 3 варианта:
mkfs.xfs -d rtinherit=1
xfs_io -c "chattr +t" /mnt/
xfs_io -c "chattr +r" /mnt/file_name
Какова стабильность решения? После обсуждения год назад патчей для realtime разделов (подробнее тут: https://patchwork.kernel.org/patch/9933237/ ), началось активное тестирования этого функционала в XFS, были исправлены несколько багов, а в xfstests добавлен функционал по тестированию ФС с realtime разделом.
Разработчики AgiliaLinux приняли решение о переходе на eudev. В качастве причин перехода названо то, что «eudev не завязан на systemd, а так же создается с оглядкой на OpenRC», которая используется в данном дистрибутиве.
Также было принято решение не переходить на systemd. OpenRC оставлен в качестве системы инициализации и обновлен на новую версию.
Не так давно на eudev перешел дистрибутив Calculate Linux.
Перемещено JB из russia