512MiBメモリで動き24時間で再起動されるプロセスに最適なYJITパラメータ 検索
Conversation
Notices
-
Embed this notice
zunda (zundan@mastodon.zunda.ninja)'s status on Saturday, 13-Apr-2024 16:39:32 JST zunda -
Embed this notice
zunda (zundan@mastodon.zunda.ninja)'s status on Saturday, 13-Apr-2024 16:50:56 JST zunda @tadd や、まじめな話しちゃうと、某ヘ社のいちばんちっちゃい環境でPumaとSidekiqがぎゅうぎゅうに詰まってて時折ffmpegも登場するので、YJITを追求すると、メモリがボトルネックになってる状況でCPUをラクにしようとするという、誰もあんまり幸せにならない感じなんですよね…
-
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Saturday, 13-Apr-2024 16:50:57 JST 斎藤ただし @zundan ルールベースAI(??)というかRubyVMが頑張って欲しいですよね、自分で。
次点で、外部から動的に指示したい。 -
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Saturday, 13-Apr-2024 16:50:57 JST 斎藤ただし @zundan というのをやっていた会社と某アドオンがあったのを思い出しました……
-
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Saturday, 13-Apr-2024 17:00:09 JST 斎藤ただし @zundan なるほどなるほど。いやそれはそれで、ある種典型的なターゲットとしてそんなルールを考えてもいいと思いますけどねー。やはり外からのプロセス間調停が必要?
-
Embed this notice
zunda (zundan@mastodon.zunda.ninja)'s status on Saturday, 13-Apr-2024 17:00:09 JST zunda @tadd 現状ではメモリのスパイクを抑えたい(OOM Killer相当を避けたい)ので、同時に画像変換するスレッドをPumaやSidekiqをひっくるめて最大ひとつにできるとうれしいです…セマフォを使うのかな?ルートじゃなくても使えるのかな?画像変換サーバプロセスを足すのかな…
-
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Saturday, 13-Apr-2024 19:25:10 JST 斎藤ただし @zundan なるほど〜〜。大変実用的で説得力があり、かつ他に人も悩んでいそうなユースケースだと思いました。
サーバープロセス足す、でももちろん行けそうですが、先に自分が分かってなくてお聞きしたいことが。PumaもSidekiqも互いに別プロセスで、さらにPaperClipとかがimagemagickの別プロセスを立ち上げてるんでしたっけ? -
Embed this notice
zunda (zundan@mastodon.zunda.ninja)'s status on Saturday, 13-Apr-2024 19:25:10 JST zunda @tadd はい!コードを追ったわけではないのですがそのように見えます。Mastodonの場合、ローカルなユーザーがアップロードしたメディアはPumaが、リモートから取得したメディアはSidekiqが、一時ファイルを作ってPaperclipに渡して、PaperclipがImagemagickやらffmpegやらを起動して処理をして、できたファイルをS3などにアップロードしていそうです
-
Embed this notice
zunda (zundan@mastodon.zunda.ninja)'s status on Sunday, 14-Apr-2024 15:20:34 JST zunda @tadd ありがとうございます!あとの処理があることを考えると--fgで起動することになりそうですが、トイレが空くまでスレッドひとつブロックしたいかどうかよくわからないんですよね…
-
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Sunday, 14-Apr-2024 15:20:35 JST 斎藤ただし @zundan なるほどーー。昨日ざっと調べた限りですが、Rubyレベルでなくコマンドでどうにかなる予感がしています。
まさにセマフォなんですが、sem(1)ことparallel --semaphoreで-j1とID指定をすれば、交通整理してくれそうなんですよね。
https://www.gnu.org/software/parallel/sem.html
Paperclipはコマンド名決め打ちの雰囲気だったので、semを使ったdrop-inなシェルスクリプトを書いて同名(convertとか)でパスを通しとけば、何とかなりそうです。という、ちょいめんどいけど大半は人に頼れて、かつ汎用的な方法でした。
Paperclipが自前でやってくれてもいいじゃん、と思いましたが、EOLらしいので仕方ないすね😢 -
Embed this notice
斎藤ただし (tadd@best-friends.chat)'s status on Sunday, 14-Apr-2024 15:50:16 JST 斎藤ただし @zundan なるほど。自分が試した限りデフォルトの--bgでも(シェルからは)ブロックしてるように見えました。
ブロックする方針でよさそうなのは、単純な置き換えスクリプトが作れそうなことですね。Paperclipからは「なんか偉い待たされたな」と見えるだけになります。
さもなければ、もうちょい考える・作り込む必要がありそうですねーIn conversation permalink -
Embed this notice
zunda (zundan@mastodon.zunda.ninja)'s status on Sunday, 14-Apr-2024 15:50:16 JST zunda @tadd マニュアルを読んだだけですが、--bgだとコマンドの実行が始まった時点でsemコマンドが終了しちゃいそうに見えます。このコマンドじたいはPerlスクリプトのようで、suid rootしなくていいならファイルを置くだけで動くかも。MastodonのPaperclipはまだサポートされてるフォーク版だったと思うので触って見ようかな…
In conversation permalink
-
Embed this notice