リソースおよび/またはメモリリークと断片化は、すべてのプログラミング言語に共通の問題です。ガベージコレクターがあるかどうか、コンパイルされた言語かインタプリタされた言語かは関係ありません。Rubyも例外ではありません。今日は、これらの問題、それらを解決するためのオプションについて少し話し、さらには独自の問題を作成します。
この問題は、プロセスを長時間実行し、さまざまな作業を行っている場合に発生する可能性があります。これらの問題のほとんどはコードのエラーに関連しているため、コードは引き続きビジネス機能を非常に正しく実行します。それらを見つけて修正するのは必ずしも簡単ではありません。しかし、メモリの断片化は反対側から少し待っており、正しいコードでさえ断片化されたメモリを徐々に蓄積する可能性があります。Railsの世界では、「ロング・プレイング」のカテゴリの下にその年の秋には、実際には、Webサーバとタスク保留中のさまざまな管理の背景/されているプロセス- DelayedJob
、Sidekiq
など彼らのことだし、我々は話だろうと..
Webサーバー
“” . /, (puma, unicorn), Phusion Passenger . “” -, Rails-. , :
https://about.gitlab.com/blog/2015/06/05/how-gitlab-uses-unicorn-and-unicorn-worker-killer/
https://github.com/schneems/puma_worker_killer
https://docs.gitlab.com/ee/administration/operations/sidekiq_memory_killer.html
, “” — . — — . — Passenger Enterprise .
- , DelayedJob
, ActiveJob
( “ ” ). — — . Sidekiq
, DelayedJob
!
- DelayedJob
WorkerKiller
— !
?
middleware
, , .
CPU, . — , , , “" — Limiter
.
— Killer
. unicorn
— SIGTERM. — , Passenger Master Process . , , “inflight” . , :
passenger-config detach-process <PID>
, 500 , 100. Passenger — -, , .
!
-, , , - DelayedJob
. , , .
!
? WorkerKiller ? , . — , , , . — , .
, :
-
-
-
Linuxでメモリを数える方法 -本物の男性のみ
ユニコーンのキラー -彼は最初でした!
-