@freebsd_ru

Страница 646 из 669
Roman
11.10.2018
20:27:53
вот и я не хочу тут велосипед, благо всё кроме кривой у нас есть
Угу. Потому что попытки генерализации приводят к мострам типа crypto api. Где ты создаёшь сокет, через setsockopt конфигурируешь и потом начинается цирк. Например, если там хеши, то пишем в сокет сырые данные, а чтение возвращает digest. А потом начинается боль с aio, zero copy и o_nonblock. В итоге, нормально использовать очень неудобно.

Andrey
11.10.2018
21:09:38
ОЙ... #ZFS OpenZFS Feature Matrix https://docs.google.com/spreadsheets/d/1CFapSYxA5QRFYy5k6ge3FutU7zbAWbaeGN2nKVXgxCI/edit#gid=0 https://www.youtube.com/watch?v=2Bi0ZicXEz0

MK
11.10.2018
21:15:44
Это типа в Linux ZFS в лучшем состоянии чем у нас?

Andrey
11.10.2018
21:29:21
ну... пилило бы его у нас не три калеки, а три отдела, чего бы ему не быть лучше :)

Google
MK
11.10.2018
21:29:45
угу

Andrey
11.10.2018
21:31:07
с другой стороны, там во всю работает подлянка солнышка, да и то что оно как лоскутное одеяло, не способствует, пакеты, там где есть обычно страх и ужас, а руками, ну... то такое

Rushan
11.10.2018
21:31:38
а какие-нибудь крупные фирмы имеют прогеров, которые контрибутят в FreeBSD? У Линукса вроде бы такие работники есть

MK
11.10.2018
21:32:26
ясное дело. да и врождённые дефекты в наличии.

ThePanaceya
11.10.2018
21:42:42
У juniper фря :). Еще забыл nintendo

Andrey
11.10.2018
21:43:16
и шо толку с той нинтенды?

Lev
12.10.2018
08:49:01
Так. А SSE и прочий AVX у нас в ядре нельзя, да?

Andrey
12.10.2018
08:55:48
вроде в make же оптимизации врубаются, но в ядре да вроде код максимально общий

Vadim
12.10.2018
08:57:42
в ядре нельзя FPU

Lev
12.10.2018
08:58:00
в ядре нельзя FPU
Вот я и смотрю.

Google
Vadim
12.10.2018
08:58:14
я не знаю точно, SSE и пр. относится к FPU номинально или нет

Lev
12.10.2018
08:58:46
А есть планы что бы было можно? Linux как-то справляется. Это, наверное, на hackers@ надо идти

Так. А что у нас вместо rcu? epoch(9)?

Andrey
12.10.2018
09:07:43
@dmitryluhtionov если склероз не изменяет, тоже по чему то такому ядерному страдал, сори если ошибся :)

Lev
12.10.2018
09:14:38
А кто у нас сейчас за Intel? В MAINTAINERS указан erj@ но очень давно туда вписан.

Andrey
12.10.2018
11:36:20
их толпа, а толку мало

а есть тут кто-то, у кого болит от того что в stateful ipfw стейты грохаются при удалении правил?

Yaroslav
12.10.2018
11:54:33
звучит как предложение по улучшению :-)

Andrey
12.10.2018
11:59:21
Ну я вроде бы реализовал возможность хранить такие стейты пока они сами не заэкспайрятся. Надо тестировать.

Dmitry
12.10.2018
12:30:19
А никто с такой странностью не сталкивался: uwsgi за nginx, всё хорошо, но если uwsgi отвечает больше чем за ~1.2 секунды откуда-то берется дополнительная задержка до 2 секунд

Lev
12.10.2018
13:02:21
А как бы мне в out of tree модуле (который, однако, использует .include <bsd.kmod.mk>) сослаться на файл в ${SYSDIR}? Если просто его добавить в SRCS то make пытается и объектник создать прямо там, в ${SYSDIR}, на что у него, конечно, нет прав.

Andrey
12.10.2018
13:09:29
.PATH

Lev
12.10.2018
13:42:03
.PATH
Чо-та я не то с ним делаю, похоже. Не ищет :-\ И make -V .PATH добавленное не показывает!

Хотя казалось бы, ну где там можно ошибиться — .PATH: <path>

Lev
12.10.2018
13:43:50
Хм. А добавление .PATH: /mnt работает

Artem
12.10.2018
13:45:09
ну, двоеточие потерял?)

Lev
12.10.2018
13:45:20
ну, двоеточие потерял?)
Да не, не потерял!

Google
Artem
12.10.2018
13:45:38
И make -V .PATH добавленное не показывает! разве?)

Lev
12.10.2018
13:45:39
Такое впечатление, что SYSDIR выставляется ПОСЛЕ отработки .PATH

Т.е. что в момент выполнения .PATH: путь невалидный и он скипается

Ага

Если выписать /usr/src/sys вместо ${SYSPATH} то работает

SYSPATH в bsd.kmod.mk определяется слишком поздно. :-\

И поддериктории make всё равно сам не создаёт :-(

Dmitry
12.10.2018
15:16:13
я хотел это добавить в лог но обломался, он не знает такой переменной. как я понял, это только к upstream относится, а у меня uwsgi

Andrey
12.10.2018
15:16:30
запоминает опкод?
https://reviews.freebsd.org/D17532

Dmitry
12.10.2018
15:17:50
если по http отвечать будет?

Artem
12.10.2018
15:18:30
да, либо nginx -> nginx <-> uwsgi.sock

если эти nginx <-> uwsgi.sock много

Dmitry
12.10.2018
15:20:06
чето это городить ради лога неохота. сейчас руки дойдут, соберу стенд локально, убежусь что повторяется, попробую в других конфигурация и ktrace посмотрю

а есть какой-нибудь cli uwsgi клиент?

Lev
12.10.2018
15:21:39
А как вместе живут очереди и пакетов и CK в ядре? Что-то mbufq ниифнга не потокобезопасен, как я посмотрю. Как нынче правильно работать с очередями mbuf'ов в многопоточной ситуации? @bu7cher ?

Artem
12.10.2018
15:22:07
а есть какой-нибудь cli uwsgi клиент?
так кто мешает напрямую обращаться к нему?

склонить код, http-socket включить

Google
Lev
12.10.2018
15:24:29
придумай
Ну то есть, общепринятого паттерна нет?

Я именно потому и спрашиваю — что если есть какой-то общепринятый метод, что бы велосипед не изобретать. Так-то я возьму CK'шную реализацию queue.h, кажется должно работать.

Dmitry
12.10.2018
15:25:18
склонить код, http-socket включить
я хотел прямо в проде проверить, чтобы сразу понять uwsgi это или nginx

Artem
12.10.2018
15:25:27
опасный ты ?

Anton
12.10.2018
15:25:40
я хотел это добавить в лог но обломался, он не знает такой переменной. как я понял, это только к upstream относится, а у меня uwsgi
а, точно это другой модуль. По идее в ngx_http_uwsgi_module должны быть аналогичные переменные, но в документации их нет

Admin
ERROR: S client not available

Dmitry
12.10.2018
15:26:25
во-во

Andrey
12.10.2018
15:27:05
CKшная реализация queue не гарантирует тебе ничего в многопоточном окружении, она только позволяет некоторые вещи сделать lockless, но это тоже ещё нужно придумать

Anton
12.10.2018
15:31:53
@AMDmi3 можно попробовать отдельно upstream определить в конфигурации: The ngx_http_upstream_module module is used to define groups of servers that can be referenced by the proxy_pass, fastcgi_pass, uwsgi_pass тогда может переменные $upstream_ будут доступны.

Andrey
12.10.2018
15:32:20
но ты должен сам реализовать алгоритм, в котором ты не будешь обращаться к уже освобождённой памяти, SPMC тебе этого не даёт на блюдечке

Dmitry
12.10.2018
15:32:24
а-а, можно

Lev
12.10.2018
15:34:07
но ты должен сам реализовать алгоритм, в котором ты не будешь обращаться к уже освобождённой памяти, SPMC тебе этого не даёт на блюдечке
SPMC даёт мне достать голову очереди и быть уверенным, что я единственный, кто её достал, нет? Ну, или это не SPMC нифига.

А, блин, там нет операции dequeue. Ну что за жизнь

Что, во всём ядре нигде нет очереди пакетов что бы с минимумом локов, подсмотреть негде?

Главное, ну написать-то такую очередь я могу (в очередной раз), но я не верю, что этот велосипед надо изобретать

Andrey
12.10.2018
15:52:07
драйверы обычно используют кольцевые буферы

buf_ring, mp_ring

Lev
12.10.2018
15:52:30
драйверы обычно используют кольцевые буферы
Ну то есть, ограниченные очереди. Что правильно.

Google
Lev
12.10.2018
15:52:47
Ага, посмотрю на них.

Dmitry
12.10.2018
16:13:50
а как эти 2 секунды измараются - $upstream_response_time в логах nginx при этом какое?
upstream_response_time правильный, т.е. без дополнительной задержки

локально что-то пока не повторяется

Anton
12.10.2018
16:15:46
можно еще $request_time туда же логгировать - время в течение которого клиент общался с nginx и за одно $tcpinfo_rtt (оно пишется в микросекундах) чтобы видеть насколько медленная у клиента сеть

Dmitry
12.10.2018
16:18:57
не, ничего про лишнюю секунду там нет. интересно что даже в логе запись на сервере появляется через 1.2 секунды, а клиенту ответ приходит через 2

Anton
12.10.2018
16:44:11
клиенту т. е. браузеру? А если curl-ом wget-ом потестировать? И нет ли там по дороге прозрачного прокси.

Dmitry
12.10.2018
17:01:20
клиенту т.е. и браузеру и курлу и чему угодно. я повторил это запустив ещё один nginx на той же машине. что-то там не так с kevent

вот такой интересный график

Terminator
12.10.2018
17:20:10
Vova Okhrimenko будет жить. Поприветствуем!

Alexander
12.10.2018
19:01:53
Это офигенно. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231402

Ещё пара аналогичных PR, везде получается, что qt5-network ломается при наличии vlan-интерфейсов

Lev
12.10.2018
19:12:16
QT для меня большая загадка. Он занимает места больше чем свежая установка винды. ЧТО ОН ТАКОЕ?!

Andrey
12.10.2018
19:15:04
да что нынче не занимает, тут как возьмешь собирать, то gtk2 какая то хрень по пол года компиляется, то шланг, то ещё какая разжиревшая хрень и ведь почти каждый раз, и это при том что оно надо то для одного двух пакетов

Alexander
12.10.2018
19:15:47
гтк не меньше небось. И вообще он марсианский какой-то. Есть мнение, что хорошую вещь "г" не назовут

Andrey
12.10.2018
19:16:14
у них есть там какая то хрень, очень толстая и долго компиляемая

Alexander
12.10.2018
19:24:32
Началась вся эта потеха, по-моему, с qt5-5.11. Можно, конечно, откатить qt5-порты до 5.10 и portmaster -a. Но это больно и не хочется. Попробовать, что ли, qt5-* в jail запихнуть...

Хотя слабо себе представляю, как потом из jail'а тот же telegram-desktop в хост-иксы запускать. Не ssh-туннелем же :(

Страница 646 из 669