Rebakeが失敗する:診断と修正の方法は?

リビルド中は、通常の動作時よりもメモリ使用量がはるかに大きくなります。同様に、リベイク(rebaking)も大きな負荷をかけるようです。もしそうであれば、定期的な監視は何の価値もありません。監視が必要なのは、幸いにも管理者が特定のアクションを実行したときに発生するピーク時だからです。

より小さく、より限界的なマシンの構成で実行していた頃は、2つ目のターミナルウィンドウを開き、サーバーにssh接続して以下を実行していました。
vmstat 5
これはメモリ使用量がどのように増減するかを記録します。swpd列を見て、設定したスワップ領域と比較してください。通常、障害は徐々にではなく突然発生するため、短期的な傾向を見てもあまり役に立ちません。

ディスク容量があれば、多くのスワップ(RAMの半分、あるいはRAMと同量)があっても全く害はありません。これはピークに対処するためにそこにあります。通常の動作中にスワッピング/ページングアクティビティを見るべきではありません。ここでも、vmstat 5 5を使用して、ページングアクティビティの短期的な状況(si列とso列)を確認できます。

例を以下に示します。

# 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

swpd列が設定した2.0Gに対して1.5Gを超えてピークに達しているのがわかります。同じ5秒間のウィンドウでスワップアウト(so)アクティビティがピークに達し、次のウィンドウでスワップイン(si)がピークに達しているのがわかります。

(追記:以前にfreeを実行したため、2.0Gのスワップを設定していたことがわかります。

# free
              total        used        free      shared  buff/cache   available
Mem:        1009140      696504       78544       51784      234092      118436
Swap:       2097144      154628     1942516

この時点で、1GのRAMしかなくてもDiscourseを実行できていたこともわかります。)

「いいね!」 1