Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 August 29

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
нужно хлебнуть горя самостоятельно прежде чем браться за такую работу
а там уже и курсы могут прийтись в пору
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
point212
Всем привет. Ребят, можете кратко пояснить, как треды в Руби (MRI).
Я так понимаю GIL позволяет только одному потоку исполняться одновременно.
Но в какой момент переключение происходит? То есть там какой-то квант в миллисекундах на поток выделяется,
или по достижению конца блока кода, запущенного как тред переключение?
на счет переключения – да, есть квант времени (вроде бы 100мс, но это не точно) который можно работать треду
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
но context switching нормально не документирован
источник

M

Max.d 🤖 in Ruby, Rails, Hanami | dry-rb
Nikita Batrak
перенсти в mysql будет больно, если проблема точно в бд, то можно посмотреть через pghero (https://github.com/ankane/pghero) что там за запросы, их кол-во, среднее время выполнения и так далее

дальше уже думать
+ можно глянуть в slow query log, если там RDS
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
да можно взять appsignal (он дешевый) и посмотреть че вообще с приложением происходит
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
нужно поднять еще один app инстанс
если проблема решится - забрать деньги и уйти в закат
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
newrelic триалки тоже должно хватить
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
Антон Дьячук
нужно поднять еще один app инстанс
если проблема решится - забрать деньги и уйти в закат
ну это вот прям да
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
потому что может оказаться дешевле, чем тратить много времени на оптимизацию
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
point212
Всем привет. Ребят, можете кратко пояснить, как треды в Руби (MRI).
Я так понимаю GIL позволяет только одному потоку исполняться одновременно.
Но в какой момент переключение происходит? То есть там какой-то квант в миллисекундах на поток выделяется,
или по достижению конца блока кода, запущенного как тред переключение?
источник

p

point212 in Ruby, Rails, Hanami | dry-rb
Nikita Batrak
https://www.goodreads.com/book/show/17826435-working-with-ruby-threads есть вот такая книга, она довольно маленьная, прочитай ее, станет все понятно
О! Благодарю.
Я уже нагуглил какую-то ruby hackers. Но довольно подробно и объемно разбирается.
Я хотел в двух словах. Но ок.
За ссылку все равно спасибо. Буду посмотреть.
источник

p

point212 in Ruby, Rails, Hanami | dry-rb
Nikita Batrak
на счет переключения – да, есть квант времени (вроде бы 100мс, но это не точно) который можно работать треду
понял. спасибо.
newrelic может прикручу тоже. но попозже. пока не сильно нужен был )))
источник

p

point212 in Ruby, Rails, Hanami | dry-rb
а вот это чот уже хардкор )))
источник

p

point212 in Ruby, Rails, Hanami | dry-rb
но намёк понял
источник

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
Антон Дьячук
а потом оказывается что курсы не помогут, потому что сайдкик на той же физической машине, а объектов стало так много, что один воркер постоянно крутится
Курс про который я писал поможет точно, там действительно научный подход к решению проблемы оптимизации. И автор не скрывает, что без практики и боли ничего не произойдёт волшебно. Хотя бы человек не будет думать, что на проекте на котором периодически работают удаленщики, (наверное, не очень большом и нагруженном иначе там был бы штат) чем-то поможет переход с БД X на Y. Но дело не в курсе конечно, просто курсы ускорят получения знаний. Я просто хотел подчеркнуть, что область оптимизации достаточно трудоёмкая и требует квалификации. Хотя возможно не все так страшно и надо пару индексов добавить, N+1 убрать и ядер с памятью серверу докинуть.
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
ну и нужно будет увеличивать количество чего-то что будет эти ядра потребалять
источник

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
В любом случае постановка задачи звучит как проект с жёстким легаси, который давно палкой не тыкали и может быть много боли без результата
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
я в таких случаях представляю себе темный-темный лес, сначала у тебя начинают приввыкать глаза к темноте, потом начинаешь видеть где-то в далеке светлячков
n+1, ядра, память - ваще не приходят в голову
кажется нет сценария оптимизации никакого
источник

VS

Viacheslav Stepanov in Ruby, Rails, Hanami | dry-rb
Ну я бы начал с newrelic бесплатной версии в любом случае
источник

АД

Антон Дьячук... in Ruby, Rails, Hanami | dry-rb
да
и с анализа архитектуры
источник