アップグレード中、メモリ(RAM+swap)に最も大きな負荷がかかるのは、‘ember’ プロセスが実行されているときです。アップデートを実行するたびに以前よりも大きくなっているように思われ、推奨最小サイズのコンピューターで実行できなくなる寸前まで来ています。
実際に失敗する前に、この問題について調査することをお勧めします。(コストの理由から、推奨最小サイズを増やすという回答にならないことを願っています。ディスク容量が許せば、スワップを増やすことで改善されるでしょう。原理的には、より高価な大容量RAMインスタンスに一時的に移行することも可能です。)
私は小規模なインスタンスで2つの適度なサイズのフォーラムを実行しています。どちらも推奨最小値内にあると信じています。どちらの場合も、RAM+swap=3Gです。一方は1G RAMと2GスワップのDigital Oceanインスタンス、もう一方は2G RAMと1GスワップのHetznerインスタンスです。
以下は、DOマシンで ps auxc を使用した ember プロセスの3つのスナップショットです。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1000 10342 87.7 65.1 32930460 657936 ? Rl 16:57 2:23 ember
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1000 10342 84.9 60.7 43572204 612668 ? Rl 16:57 2:57 ember
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
1000 10342 81.2 55.2 43405220 557128 ? Rl 16:57 3:40 ember
明らかに、43GBのプロセスサイズ全体が仮想メモリに存在するわけではありません。利用可能なのは3Gだけです。RSSのRAMサイズの65%を使用するのは印象的ですが、それ自体は問題ではありません。空きメモリと空きスワップの量は、マシンがメモリ不足(OOM)状態に近づいていることを示しており、これはおそらく何らかのプロセスが終了され、アップデートが不体裁に終わる結果となるでしょう。
以下は、ある時点での free のスナップショットです。
# free
total used free shared buff/cache available
Mem: 1009140 863552 72768 6224 72820 34868
Swap: 2097144 1160628 936516
失敗に最も近い状況を捉えようと、vmstat 5 を使用しました。
# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 1392140 61200 11632 76432 41 32 117 93 0 1 2 1 97 0 0
1 1 1467220 63416 324 67284 8786 20499 13178 20567 2539 8924 77 13 0 10 0
0 2 1593340 57916 1096 53832 24262 46868 29986 46889 5377 18534 44 22 0 34 0
4 0 1155632 120680 2772 86280 39111 35424 54768 37824 6987 25174 38 27 0 35 0
3 0 1102988 74096 2852 85276 11261 246 12610 271 1879 6365 86 6 0 8 0
多くのコンテキストスイッチ(cs)、多くのディスクアクティビティ(bi、bo)、そして多くのスワップアクティビティ(si、so)に気づくでしょう。しかし、最も重要なのは、スワップ使用量が1.6Gに達し、空きメモリが60Mに減少し、バッファ使用量が54Mしかないことです。これは、利用可能な3Gの仮想メモリの約2.6Gが使用されていることを意味します。これは容量の87%です。(5秒ごとにサンプリングしているため、実際にはもう少し悪いかもしれません。)
8月にアップデートした際、状況は(2G使用時で、今日はそれほどクリティカルではなかった)心配なものでした。
# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 700404 62740 1956 48748 35 29 108 92 3 8 2 1 96 0 1
1 0 741000 65996 1880 44360 3708 11190 3982 11191 643 1437 92 4 0 3 1
1 0 834836 70452 1480 53856 528 18969 4274 18974 532 1575 93 6 0 1 0
4 1 1010144 82192 4644 44400 30065 38803 35455 39946 4432 19267 28 26 0 39 7
1 0 644116 307764 1644 55348 24406 21154 27724 21945 2551 8672 52 22 0 21 6
