Size: a a a

2020 October 22

PK

Petr Kozorezov in ErlangRus
Коллеги, особенно @stolen и @maxlapshin, тк знаю вы точно эту область копали. Я тут хочу у себя в приложении отстрелять по максимуму локи в erts и остался лок под названием 'run_queue'. Получилось отследить его и понять, что это функция 'try_steal_task' в erl_process.c , но можно ли с ним что-то сделать (и нужно ли, или это неизбежность) понять не могу. Может кто уже с этим сталкивался?
источник

V

Vasilii Demidenok in ErlangRus
можно со стратегиями шедулеров поиграться
источник

V

Vasilii Demidenok in ErlangRus
или попробовать побиндить процессы
источник

DZ

Danil Zagoskin in ErlangRus
Petr Kozorezov
Коллеги, особенно @stolen и @maxlapshin, тк знаю вы точно эту область копали. Я тут хочу у себя в приложении отстрелять по максимуму локи в erts и остался лок под названием 'run_queue'. Получилось отследить его и понять, что это функция 'try_steal_task' в erl_process.c , но можно ли с ним что-то сделать (и нужно ли, или это неизбежность) понять не могу. Может кто уже с этим сталкивался?
Попробуйувеличить sfwi.
А вообще это, наверное, не должно быть проблемой, поскольку работает в ненагруженном шедулере
источник

PK

Petr Kozorezov in ErlangRus
Vasilii Demidenok
или попробовать побиндить процессы
пробовал, немного cpu уменьшает, но кол-во конфликтов локах нет
источник

DZ

Danil Zagoskin in ErlangRus
Petr Kozorezov
Коллеги, особенно @stolen и @maxlapshin, тк знаю вы точно эту область копали. Я тут хочу у себя в приложении отстрелять по максимуму локи в erts и остался лок под названием 'run_queue'. Получилось отследить его и понять, что это функция 'try_steal_task' в erl_process.c , но можно ли с ним что-то сделать (и нужно ли, или это неизбежность) понять не могу. Может кто уже с этим сталкивался?
И глянь в расширенный msacc — так ли всё плохо на самом деле
источник

PK

Petr Kozorezov in ErlangRus
Danil Zagoskin
И глянь в расширенный msacc — так ли всё плохо на самом деле
всё началось с того, что я стал смотреть вывод perf и там весь топ в локах
источник

DZ

Danil Zagoskin in ErlangRus
Petr Kozorezov
всё началось с того, что я стал смотреть вывод perf и там весь топ в локах
lcnt смотрел?
источник

V

Vasilii Demidenok in ErlangRus
так он тот же run_queue покажет, нет?
источник

PK

Petr Kozorezov in ErlangRus
ага
источник

PK

Petr Kozorezov in ErlangRus
в смысле, что смотрел, и run_queue лок взял именно оттуда
источник

DZ

Danil Zagoskin in ErlangRus
Petr Kozorezov
всё началось с того, что я стал смотреть вывод perf и там весь топ в локах
Я не могу понять, у тебя проблема есть или ты просто нашёл чиселку, которая не нравится.
источник

PK

Petr Kozorezov in ErlangRus
Danil Zagoskin
Я не могу понять, у тебя проблема есть или ты просто нашёл чиселку, которая не нравится.
у меня основная проблема в потреблении cpu
источник

PK

Petr Kozorezov in ErlangRus
и в том, что оно растёт при увеличении кол-ва эрланговых шедулеров
источник

DZ

Danil Zagoskin in ErlangRus
Petr Kozorezov
у меня основная проблема в потреблении cpu
Упираешься в процессор?
источник

ML

Maksim Lapshin in ErlangRus
Andrei Beliak
нет, просто сборка вызывает erlc кторый сама и собрала (как я понял он зачем то требуется в процессе сборки), он не запускается.

но я посмотрю как в buildroot сделано, если не смогу разобраться — буду спрашивать.

спасибо.
apt install -y build-essential crossbuild-essential-armhf
./otp_build autoconf --host=arm-linux-gnueabihf --build=x86_64-linux-gnu
./configure --enable-bootstrap-only --disable-pgo --without-threadnames
# тут фигня написана
# http://erlang.org/pipermail/erlang-questions/2014-April/078459.html
# тут дело: http://erlang.org/doc/installation_guide/INSTALL-CROSS.html
make -j 5 bootstrap

# а потом уже основной код:

./configure --host=arm-linux-gnueabihf --build=x86_64-linux-gnu --enable-smp-support \
--enable-dynamic-ssl-lib --enable-builtin-zlib \
--without-megaco --without-wx --without-et --without-diameter --without-eldap \
--without-debugger --without-mnesia \
--without-odbc --without-jinterface \
--disable-pgo \
--enable-kernel-poll --without-java --enable-dirty-schedulers $SSL_ERL_FLAGS \
--enable-lock-counter $EXTRAOPTS
источник

PK

Petr Kozorezov in ErlangRus
Danil Zagoskin
Упираешься в процессор?
да
источник

DZ

Danil Zagoskin in ErlangRus
Тогда проблем с локами нет
источник

PK

Petr Kozorezov in ErlangRus
локи едят cpu при конфликтах
источник

EK

Evgeny Khramtsov in ErlangRus
там спинлоки штоле? почему ЦПУ жрется?
источник