LINUXTALKS.CO

FreeBSD install update upgrade [ основной тред по FreeBSD ]

 ,

L


0

1

@odalist, ты любишь такие посты, так что держи.

Прожив годик на F12, освоился и понял, что аналога LVM+cryptsetup+XFS на ней нет. Решил переехать на ZFS (который теперь взят из ZFS на Linux и благодаря этому появилось шифрование). Так что вот последних несколько дней занимался апдейтом основной домашней машины с 12.4 на 13.1 и просидел без Хов в голой консоли.

Первый день, еще в тот четверг, переносил данные.

>>> cut tech detail 
Хотелось мне выяснить, как лучше выравнивать чанки ZFS на хардварном рейде (хорошо, что у нас не нет @iZEN, а то его опять бы кондрашка хватила). Пробовал задавать геометрию штратными олд-скульными UNIX-средствами, пробовал создавать zpool сразу с разными ashift. У меня была классная теория, что чанки ZFS размером 128k нужно бить кусками по количеству страйпов...
Пробовал отключать чексумы...
<<< cut

В итоге оказалось, что все мои теории - это все фигня. Зато я обнаружил, что год назад выключил кеши на запись на контроллере и поэтому у меня все тормозит. Так что могу гордо заявить, что решил свою проблему:

всеравно у меня звук на FreeBSD лагает:( фиг знает, в чем дело.

@JamesHolden, звук в порядке.

@odalist, заодно решил проблему, когда у меня из-за тормозов дисковой системы переполнялся журнал (не ZFS! одно из изобретений FreeBSD в махровые дни) на диске и машина падала. официально defined поведение [ развел лапами ]

Пока я с этим упражнялся на удаленной машине все три дня копилировались пакеты. Под это дело пришлось добавить еще 16Gb swap: rust, llvm…

@cocucka классический OOM на FreeBSD отстреливает любые соседний процессы, отсюда жалобы на форум, я думаю. Зачем вы, программисты, с нами это делаете и придумываете такие алгоритмы? … [ развел лапами ]

@odalist, кстати, chrome вообще сутки собирался. И это на 3.4Ghz!

Вцелом все проапдейтилось и что мне нравится на FreeBSD, с точками отката.

witch ~ # bectl list
BE                                Active Mountpoint Space Created
12.4-RELEASE_2023-02-12_010451    NR     /          13.7G 2023-02-12 01:04
12.4-RELEASE_2023-02-16_145134    -      -          91.0M 2023-02-16 14:51
13.1-RELEASE-p6_2023-02-16_145625 -      -          3.97M 2023-02-16 14:56
13.1-RELEASE-p6_2023-02-18_123041 -      -          4.54M 2023-02-18 12:30

Почему у меня сейчас загружен снапшот, который якобы не самый новый и при этом все работает? А хз. Продвинутые технологии! Видимо, там где-то не происходило автоматическое переключение на зрагрузку с нового и вместо инкрементальных снапшотов я получил один большой. Ну ок.

Что сломалось?

Ну, во-первых, сломался ping! Это теперь программа с двумя ключами -4/-6, но если не задать ни один, она работать не может. Без гугла это никак не выяснить:( Так что обходился без пинга. Теперь вот придется делать обвзяку из альясов, выяснять версию FreeBSD, добавлять ключ… Можно еще багрепорт отправить…

Самое главное сломался OpenVPN. Почему он не может теперь создавать интерфейс, я так и не понял. Но так как я не догадался сначала установить nvidia video driver, а начал компилять все пакеты одной пачкой, то три дня прожил без гугла.

И вообще OpenVPN меня всегда (лет 15+ примерно) подбешивал кучей опций и сложностью настроек на разных платформах, но WG (@Kaschenko) во FreeBSD еще не появился. Но, когда сидишь без интернета, плюс в том, что начинаешь читать мануалы. Я случайно увидел простой man по подянитю IPSec … и поднял!

А чего? Как работает IPSec я имел представление, но мне всегда казалось тупостью два его возможных режима работы. А вышло довольно круто! Если OpenVPN необходим хендшейк для установления сессии, то здесь все выглядит элегантно.

ipsec0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> metric 0 mtu 1400
	tunnel inet XX.XX.XX.XX --> YY.YY.YY.YY
	inet AA.AA.AA.AA --> BB.BB.BB.BB netmask 0xffffff00
	groups: ipsec
	reqid: 200
	fib: 1
	nd6 options=9<PERFORMNUD,IFDISABLED>

FreeBSD тут сразу радует, что можно из ifconfig сразу дружить интерфейс с таблицами маршрутизации. И работать теоретически должно быстрей.

Авторы FreeBSD подложили грабли и засунулу sysctl хуков, которые изымают часть сетевых пакетов из оборота. Поотлаживав в свое удовольствие, я наконец догадался найти (а вы помните, что браузер еще компилируется, так что нашел сам без гугла, по логике вещей).

net.inet.ipsec.filtertunnel

Осталось перенести все данные и выяснить, насколько действительно проседает скорость ZFS, если заполнить весь диск.

★★★☆☆
Ответ на: комментарий от crypt

Вот умеешь ты открыть глаза на вещи буквально двумя словами. Не первый раз замечаю.

Вооружившись твоим принципом - «тут из коробки не бывает, такая система» я кинулся явно задавать все параметры, какие смог найти. И таки да, это такая система.

Основное влияние оказывает hw.snd.latency. Надо подобрать его оптимальное значение. Слишком маленькое если - все хрипит. Слишком большое - не дает выставить маленький буфер. Если его вообще не задать - полная фигня происходит, даже плееры нормально не играют.

Включение риалтайм аудио профиля уменьшает допустимый буфер раза в два.

После тщательного подбора latency начинает корректно работать jack. Ну и плееры, конечно. Я психанул, и запускал и jack и Ardour от рута. При этом без лишних телодвижений и всяких сомнительных rtprio, jack запускается в риалтайм режиме и работает полноценно.

Итого - удалось добиться стабильной работы при буфере 256 семплов. Меньше - уже никак, как бы я ни изголялся.

В линуксе я ставлю 128 семплов, и можно выставить 64 семпла, но работает нестабильно, на каждый чих трещит. Но это не на дефолтном ядре дистрибутива, а на ванильном. На дефолтном я не знаю, что они там ломают, но так не работает.

И прикол - я проверил через rtprio, а какой приоритет у jack, запущенном от рута в риалтайм режиме. Оказывается - rtprio пишет что «нормльный». То есть jack себе выставляет не то, что умники из интернетов пытаются сделать через rtprio.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

И да, весь прикол линукса в том, что там мне не надо вручную у alsa какие-то задержки настраивать. Все автоматически делает pipewire, а мне надо настроить только само pipewire. Я думал что и тут так, а оно вона как

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

Слишком маленькое если - все хрипит. Слишком большое - не дает выставить маленький буфер

чего-то такого я и ожидал.

а ты все параметры отсюда посмотрел?

https://www.youtube.com/watch?v=fNALnFIfenM&t=15m33s

crypt    
★★★☆☆
FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

а ты пройдись на всякий случай по списку sysctl параметров в man snd, вдруг что-то заинтересует.

хрипит

я же тебе еще в /boot/loader.conf еще впихнул агрессивные настройки hw.snd.latency_profile

Итого - удалось добиться стабильной работы при буфере 256 семплов. В линуксе я ставлю 128 семплов.

да, это уже больше похоже на правду.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

а вообще ты можешь все-таки тест-кейс описать. что нужно сделать, в каких программах для теста.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

а ты пройдись на всякий случай по списку sysctl параметров в man snd, вдруг что-то заинтересует.

Я по ним и прошел

я же тебе еще в /boot/loader.conf еще впихнул агрессивные настройки hw.snd.latency_profile

Я его в sysctl.conf задал все равно, хрипит не особо из-за него. Хрипит когда низкий latency задашь, при любом профиле.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

но я так понимаю, речь идет о связке с jack? потому что у меня же в плеере ничего не хрипит. наверное, там еще какой-то буфер в самой софтине играет роль…

witch ~ # sysctl hw.snd.latency_profile
hw.snd.latency_profile: 1
witch ~ # sysctl hw.snd.latency
hw.snd.latency: 0
crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

и еще смотри дальше, для real thread jackd должен залочить память, а для этого

Memory locking has to be allowed in /etc/login.conf or ~/.login_conf. Set the
resource limit ":memorylocked=unlimited:" and don't forget to run
# cap_mkdb /etc/login.conf

ты можешь проверить, как это повлияет на результат? я бы сам проверил, но это требует релогина, а я не хочу закрывать сеанс. тем более, что ты пока тест-кейс не описал полностью.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Запустить Ardour, проще от рута, create new session, выставить частоту дискретизации 96000, буфер когда попросит. Если после этого все запуститься и не будет выдавать окна с ошибками - то хорошо.

Это простейший тест.

Далее, в правом верхнем углу нажать кнопку Mix. Это переключение в режим микшера. Справа будет колонка Master и в ней поле для добавления плагинов, в котором только один плагин - Fader. Два раза щелкнуть по пустому полю под Fader - откроется окно выбора плагина. Там поиском выбрать SinGen (это генератор синуса). Нажать кнопку Insert.

Сразу должен раздаться чистый мелодичный писк синуса. Если звук не чистый, хриплый, странный - плохо.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от crypt

Когда я запускаю его от рута - он сам лочит (судя по тому что на это не ругается). Это влияние сразу не заметно, без нагрузки он и без этого хорошо работает, но под нагрузкой на комп может при незалачивании прийти ему гаплык.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от crypt

Нет, ардур должен сам запустить jack. Если Ardour от рута запускать.

Если вручную запустить jack сначала - то во-первых, он какого-то рожна падает при запуске Ardour и его надо тут же руками поднять снова. Во-вторых, тогда Ardour уже не дает диалог настройки jack и буфера, это все надо задать в параметрах jack в консоли.

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

Когда я запускаю его от рута - он сам лочит (судя по тому что на это не ругается).

а почему у меня на той же системе не лочит тогда??

daw ~ # /usr/local/bin/jackd --realtime -doss -p2048 -n3 -w16
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
Cannot lock down 107341340 byte memory area (Cannot allocate memory)

это не фатальная ошибка. он будет работать. просто не так оперативно.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

Нет, ардур должен сам запустить jack.

но мы же тогда не управляем буфером и другими настройками в jackd? на какие настройки мы смотрим? ты говорил про количество семплов, я думал, это в jack?

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

а скриншот сделаешь? apsin scrot && scrot -d 3 (через 3 секунды сделает)

ну эт не срочно. может, я и сам там все увижу, когда поставлю.

собрался… сейчас проинсталю.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome

KDE Plasma 5.27 now supports high-resolution scrolling in Wayland, thanks to libinput 1.9

Спасиибо, спасиииибо добрые программисты сломавшие скроллинг к чертям собачьим в LTS плазме!

JamesHolden    
★★★★★★★
Linux / Chrome
Ответ на: комментарий от JamesHolden

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

Could not reconnect to Audio/MIDI engine

?

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

да, он выдает, если число семплом меньше 1024. нам же надо меньше, я правильно понимаю?

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

понятно, то есть что ADR пытается делать, это запустить jackd с числом семплов в виде -p, как ниже. и тут нужно начинать играть с параметрами sysctl или еще чего-то, чтобы его снизить. а потом проверить, как звучит синусоида. все правильно понял?

witch ~ # /usr/local/bin/jackd  -ndefault -t 200 -R -T -d oss -n 2 -r 96000 -p 512
jackdmp 1.9.21
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2022 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
JackOSSDriver::OpenInput set low water mark to 2048
JackOSSDriver::ProbeInBlockSize irregular read block sizes
JackOSSDriver::ProbeInBlockSize mean read block was 763 frames
JackOSSDriver::ProbeInBlockSize period is too small, minimum is 763 frames
crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от JamesHolden

сам jackd запускается на 96-128 фреймов, но звук через него не получилось прогнать. mpv и ardour не видят, как к нему подключиться. че-то какие-то ошибки про порт… позже посмотрю.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

Короче. Смотри на юзерагент ))

Я начал немного вдуплять в этой системе.

Разогнал работу на флешке. Как я и говорил, такого тупняка быть не должно! Теперь все летает, включая браузер, даже быстрее чем с винта (потому что я читер).

Что сделал.

  1. Монтирование флешки async, отключил журналирование.

  2. Отключил лишние сервисы, прежде всего bgfsck.

  3. Отключил сислог.

  4. /tmp на рамдиск.

  5. Такая фишка

# mkdir /tmp/ram
# mount -t mfs -o rw,-s2048M  md /tmp/ram
# mkdir /tmp/ram/var
# mkdir /tmp/ram/home
# cp -rp /var/* /tmp/ram/var
# cp -rp /home/* /tmp/ram/home
# mount -t nullfs /tmp/ram/var/ /var
# mount -t nullfs /tmp/ram/home/ /home

После этого все начинает летать.

Это я не выдрал с форума, а честно сам придумал, из опыта создания линуксовых live систем.

JamesHolden    
★★★★★★★
Последнее исправление: JamesHolden (всего исправлений: 1)

FreeBSD / Firefox
Ответ на: комментарий от JamesHolden

После этого все начинает летать.

«прежде всего bgfsck» - так я тебе сразу сказал, проверь нет ли fsck в фоне в процессах. но у тебя при отключенном журнале система не будет восстанавливаться.

Это я не выдрал с форума, а честно сам придумал, из опыта создания линуксовых live систем.

все остальное в плюс, конечно. но я все-таки думаю, что это fsck в фоне. который должен проверить диск на предмет остатков файлов и освободить немного места.

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome
Ответ на: комментарий от crypt

А я постараюсь не ломать ))

sysctl, оставил только то, что пока определил как влияющее

# $FreeBSD$
#
#  This file is read when going to multi-user and its contents piped thru
#  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
#

# Enhance shared memory X11 interface
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768

# hangup
kern.ipc.somaxconn=65536

# Enhance desktop responsiveness under high CPU use (200/224) 
kern.sched.preempt_thresh=224 

# Bump up maximum number of open files 
kern.maxfiles=200000 

# Disable PC Speaker 
hw.syscons.bell=0 

# Shared memory for Chromium 
kern.ipc.shm_allow_removed=1

hw.snd.latency=2
hw.snd.latency_profile=0

dev.pcm.0.play.vchans=0
dev.pcm.0.rec.vchans=0

Насчет vchans я не уверен, надо еще тестить. Может их отключение и не влияет.

JamesHolden    
★★★★★★★
FreeBSD / Firefox
Ответ на: комментарий от crypt

Одно лишь отключение fsck дало результат, но совсем небольшой. Например, firefox нормально не работает пока хомяк в рам не перенесешь. Он же дрочит флешку тысячей микро файлов.

JamesHolden    
★★★★★★★
FreeBSD / Firefox
Ответ на: комментарий от JamesHolden

Блин почему же у меня на запускается хромиум. Как они его так собирают, что illegal instruction. И главное ноль инфы

сложно сказать, разные причины могут быть. в vm запускается.

crypt    
★★★☆☆
FreeBSD / Chrome