discourseの更新 - 1Gマシンでnode.jsが自動的に2Gに引き上げられる

最小サポート構成(RAM 1G、スワップ 2G)で実行しています。スクリプトの再構築で Node.js が利用可能なメモリよりも多くの RAM を使用するように指示しているように見え、それがガベージコレクションを抑制し、大量のスワップを引き起こしているようです。これは意図した動作でしょうか?

コンソールログでこれに気づきました。

I, [2024-06-14T15:19:15.613029 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake assets:precompile:build'
Node.js heap_size_limit (504.75) is less than 2048MB. Setting --max-old-space-size=2048 and CHEAP_SOURCE_MAPS=1
...[ConfigLoader]
...[Babel: @embroider/macros > applyPatches]

Stack Exchange は、これは良くないことだと示唆しています。
https://stackoverflow.com/questions/48387040/how-do-i-determine-the-correct-max-old-space-size-for-node-js

設定された max-old-space-size は、マシンの総 RAM 量よりも高い制限を持っていました。

要約すると、2GB のメモリを持つマシンでは、他の用途にメモリを残し、スワップを回避するために、–max-old-space-size を約 1.5GB に設定するでしょう。

この頃、大量のスワップアクティビティが発生しているのを確認しました。

# df -h / ; free ; uptime ; ps auxrc ; vmstat 5 5
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        25G   20G  4.7G  81% /

              total        used        free      shared  buff/cache   available
Mem:        1009140      860952       81820        1104       66368       43068
Swap:       2097144      707016     1390128

 15:21:53 up 155 days, 23:02,  2 users,  load average: 1.69, 1.85, 1.36

USER       PID %CPU %MEM      VSZ    RSS TTY      STAT START   TIME COMMAND
message+   920  0.0  0.1    50192   1872 ?        Rs   Jan10   5:57 dbus-daemon
root     16979  0.0  0.0        0      0 ?        R    14:14   0:02 kworker/u2:2
1000     24317 84.1 71.4 43775512 720984 ?        Rl   15:19   2:07 ember
root     24346  0.0  0.3    40100   3468 pts/0    R+   15:21   0:00 ps
procs -----------memory----------   ---swap-- -----io----  -system-- ------cpu----
 r  b   swpd   free   buff  cache    si    so    bi    bo   in    cs us sy id wa st
 2  1 710656  79768   7712  60940   350   283   586   352    1     2  3  2 90  4  0
 1  5 798060  65440   3848  52544 21749 19198 23815 19247 3896 16477 30 17  0 52  1
 0  1 885676  73820   1256  37388 19674 18806 20887 18811 3851 16681 21 20  0 55  3
 1  0 704056 103080  11512  70892  8414  3910 17269  3914 1855  7618 64 11  0 25  1
 1  0 693816  95020  11520  70908  1589     0  1589    54  470  1032 95  1  0  4  0

(これは、約 3.2.0.beta5-dev(bcb31f79ce) から (最新) 3.3.0.beta3-dev(49fdccbb1d) へのコマンドラインでの再構築と更新中に発生しました。再構築は約 30 分で正常に完了しました。)