
Misak
12.02.2018
08:23:08
спасибо всем, буду думать

Michael
12.02.2018
08:47:20

ThePanaceya
12.02.2018
09:32:07

Michael
12.02.2018
09:37:18

Google

m
12.02.2018
10:17:46
Общался сейчас с одним из разработчиков KVM. Он сказал, что производительность операционки сильно зависит от того, поддерживает ли она драйвера для kvm или нет.
Собственно вопрос: интеграцию с kvm во фре делают, уже сделали или не делают?

Roman
12.02.2018
10:20:24

m
12.02.2018
10:22:22
как я понял, паравиртуализация - это быстро. Эмуляция - это медленно. virtio - это паравиртуализация.

ThePanaceya
12.02.2018
10:25:59
я его вобще убил... скопировал ядро, бинари и либы от 11....

Иван
12.02.2018
10:35:37
https://www.freebsd.org/cgi/man.cgi?query=virtio&sektion=4

m
12.02.2018
10:42:21
собственно вопрос в том, какую операционку ставить: фрю, в которой я немного разбираюсь или линух, где я полный ноль. Если разницы в производительности нет, то поставлю фрю. А если она имеется, то придётся линух.

Moris
12.02.2018
10:53:10
Фря или линукс... зависит от задач, имхо

Roman
12.02.2018
10:59:11

vonabarak
12.02.2018
11:00:39
Если кроме наличия virtio-драйверов ничего больше не беспокоит - то исключительно вопрос предпочтений. Оные драйверы есть и во фре и в линуксе.

m
12.02.2018
11:01:26
в моей задаче процессор много считает. эксперименты на VirtualBox-е показали, что профайлер показывает странные тормоза при работе со временем. Возможно это особенности только vbox-а, но в вопросе решил для себя разобраться.

Evgeny
12.02.2018
11:02:38

Google

ThePanaceya
12.02.2018
11:03:38
https://forums.freebsd.org/threads/the-update-metadata-is-correctly-signed-but-failed-an-integrity-check.56060/page-2#post-329700 Вот так же было.
Там даже патчил freebsd-update.

Roman
12.02.2018
11:13:00

m
12.02.2018
11:15:54
и потому могут всплыть те же проблемы с получением времени, что и в VirtualBox

Roman
12.02.2018
11:22:43

Dmitry
12.02.2018
11:36:52
ну, если не использовать PPS, то никаких проблем с получением времени во фре не будет

Roman
12.02.2018
12:13:54

Dmitry
12.02.2018
12:14:20
это понятно. но вдруг ты решил во фре PPS использовать ?

m
12.02.2018
12:14:39
я решил взять две виртуалки у одного провайдера, запустить своё приложение и сравнить. под профайлером сразу будет видна разница междё фрёй и линуксом, если она есть.

Dmitry
12.02.2018
12:14:41
внутри virtualbix

m
12.02.2018
12:14:54
у меня всё по дефолту

Dmitry
12.02.2018
12:15:10
по дефолту что ?
для тайминга что используешь ? PPS ?

m
12.02.2018
12:15:33
настройки vbox-а, фри внутри неё.

Dmitry R16
12.02.2018
12:15:41

Dmitry
12.02.2018
12:16:16
блин, ты можешь сказать, используешь ли PPS в своем приложении, или нет

m
12.02.2018
12:16:25

Dmitry R16
12.02.2018
12:16:47

m
12.02.2018
12:17:07
в своём приложении на Go я использую time.Now(). Во что оно выливается в потрохах Go я не знаю.

Google

Dmitry R16
12.02.2018
12:17:18
(а, да, оно ответит на вопрос "что ставить тому кто не умеет настраивать" — это, разумеется, Линукс)

m
12.02.2018
12:18:21
точнее даже так: я сейчас отказался от вызовов time.Now() почти. Но профайлер всёравно показывает кучу всего связанного со временем, исходящего от рантайма.

Michael
12.02.2018
12:20:38

Dmitry
12.02.2018
12:21:04
PPS - это синхронизация времени от внешних устройств, как грубый пример, во времена 4.x фри были источники времени, подключаемые к LTP порту
Ну, или от DVB карт со спутника

Michael
12.02.2018
12:21:51

Dmitry
12.02.2018
12:21:52
# Enable support for the kernel PLL to use an external PPS signal,
# under supervision of [x]ntpd(8)
# More info in ntpd documentation: http://www.eecis.udel.edu/~ntp
options PPS_SYNC

Michael
12.02.2018
12:21:54
?

Dmitry
12.02.2018
12:22:51
не поверишь, активно используется джунами
только там источники времени "поточнее"

Michael
12.02.2018
12:25:10
только там источники времени "поточнее"
ОК, но для профилирования тот же TSC/HPET в целом не плох. Да, иногда ntp корректирует и проходят приколы, но это в рамках погрешности. Ты ж не один раз метод замеряешь, а миллионы )))

Dmitry
12.02.2018
12:28:27
про эту прогу на GO
как вариант, посмотреть, "дергает" ли она gettimeofday(), или что-то другое

Roman
12.02.2018
12:37:57
и gettimeofday сильно зависит от гипервизора ос и ее версии
Такси чем ipfw отличается от pf?

m
12.02.2018
13:08:57

Dmitry
12.02.2018
13:14:10
ага, читаем код
TEXT runtime·nanotime(SB), NOSPLIT, $32
MOVL $232, AX
// We can use CLOCK_MONOTONIC_FAST here when we drop
// support for FreeBSD 8-STABLE.
MOVQ $4, DI // CLOCK_MONOTONIC
LEAQ 8(SP), SI
SYSCALL
MOVQ 8(SP), AX // sec
MOVQ 16(SP), DX // nsec

Google

Dmitry
12.02.2018
13:15:16
замени
MOVQ $4, DI
на
MOVQ $12, DI
и будет тебе счастье

m
12.02.2018
13:16:18
а что именно произойдёт? ?

Michael
12.02.2018
13:16:27
// We can use CLOCK_MONOTONIC_FAST here when we drop
// support for FreeBSD 8-STABLE.

m
12.02.2018
13:16:45

Dmitry
12.02.2018
13:16:47
будет вызываться CLOCK_MONOTONIC_FAST
ну и второй вызов
// func walltime() (sec int64, nsec int32)
TEXT runtime·walltime(SB), NOSPLIT, $32
MOVL $232, AX // clock_gettime
MOVQ $0, DI // CLOCK_REALTIME
LEAQ 8(SP), SI
SYSCALL
вот нафига постоянно дергать CLOCK_REALTIME ?
там же все еще с 9.0-RELEASE переписано с нуля

m
12.02.2018
13:19:45
разрабы Go только недавно отказались от поддержки старых версии FreeBSD. наверное потому так и происходит.

Michael
12.02.2018
13:20:10
go ж многотредовый в одном процессе - правильно? В таком случаи обычно делают отдельный тред по timer, остальные просто из переменной зачитывают время. Если конечно не интересно разрешение меньше миллисекунды

Dmitry
12.02.2018
13:20:38
возможно. в девятке был полностью с нуля переписан callout(), ивенттаймеры, gettimeofday() и т.п.
в частности, gettimeofday() уже давно не лезет ко всяким RTC

m
12.02.2018
13:21:39
В коммитерах Go мало спецов по FreeBSD.

Dmitry
12.02.2018
13:24:39
тут смысл такой, что gettimeofday() вообще не вызывает syscall()

Google

Michael
12.02.2018
13:24:42
а это что вообще за замер?

m
12.02.2018
13:25:05
это про cpu замер моего демона.

Michael
12.02.2018
13:25:19
за какое время

m
12.02.2018
13:26:01
за 30 секунд. я просто обрезал колграф, где про мой код информация.
он простаивает много времени, да. на обычной машинке процент cpu кушает. а на виртуалке вдруг 40% показал. и это профайлинг именно такого момента.

Michael
12.02.2018
13:27:23
40% от 30 секунд = 12 секунд.
в колграфе всё гораздо мельче

m
12.02.2018
13:28:17
https://github.com/golang/go/issues/new - тут можно предложить изменения в получении времени во Фре. Я бы и сам запостил, но не смогу вести последующую дискуссию и отвечать на вопросы.

Michael
12.02.2018
13:29:32
ну так это же не 40%
где 40)))

m
12.02.2018
13:30:00
в top-е . ?
а тут написано, что взята только часть: 2.73%
а можно как-то fetch (ведь он используется при pkg install) сделать более дружелюбным на плохом канале? Браузер под виндой качает отлично то, что fetch уже пол часа не может скачать.
большие пакеты я уже ручками скачал, а мелочь, коей дофига и всего на 300кб, никак не могу. ?

Roman
12.02.2018
13:44:06

m
12.02.2018
13:44:11
Proceed with this action? [y/N]: y
[1/18] Fetching dbus-1.10.16_1.txz: 100% 17 KiB 0.3kB/s 01:05
pkg: http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly/All/dbus-1.10.16_1.txz: Operation timed out

Dmitry
12.02.2018
13:45:13
http://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxreWl2YnNkfGd4OjczNThmZTVhYzZlOTA2NzU

Roman
12.02.2018
13:46:16