====== FreeBSD 11で「warning: total configured swap (X pages) exceeds maximum recommended amount (Y pages).」と言われた時の対処法 ====== 「対処法」と言いつつ、FreeBSD 11.1-RELEASE-p4で試した限り、なぜか上手く行かないので対処法になってない。折角調べたので参考情報として残しておく…(´・ω...:.;::.. 物理メモリ1.5GBのFreeBSD 11.1-RELEASE環境で、16GBのスワップを追加したら以下のメッセージが表示された。 warning: total configured swap (4194304 pages) exceeds maximum recommended amount (2994784 pages) warning: increase kern.maxswzone or reduce amount of swap. カーネルが扱えるサイズを超えるスワップを追加すると出るそうで。本事例だと、最大スワップサイズは2994784ページで、1ページ=4KiBなので約11.4GiBとなる。 この値はどこで決まるかと言えば、warningの2つ目で示されている''kern.maxswzone''カーネルパラメータである。スワップ管理用メモリの最大バイト数を指定するパラメータで、11.1Rではスワップ約200MiBにつき1MiBが必要とのこと。特に指定しなければ、物理メモリの8倍のスワップを扱うのに十分な容量が確保される。 実際に確保された量は恐らく''vm.swzone''パラメータの値。本事例では53904384バイトとなっており、計算するとwarning中の最大スワップサイズと概ね一致する。 というわけで、''/boot/loader.conf''に次の一行を追加してみた。 kern.maxswzone="75464704" 値はまー適当。11.4GiBで53904384バイト必要なんだから、16GBなら1.4倍して一応4KiB単位に揃えた感じ。 これで再起動すればOK! ……のハズだったんだけど、なぜか値が反映されないの(´・ω・`)。''kern.maxswzone''には反映されるんだけど、肝心の''vm.swzone''が変わってない。警告も相変わらず出る。''kern.maxswzone''は名前の通り最大値を制限するものであって、スワップの最大サイズは物理メモリの8倍という制限は超えられないって事なのかしら…?これ以上はソース見ないとわからんな。 ===== 参考サイト ===== * [[https://www.freebsd.org/cgi/man.cgi?query=loader&apropos=0&sektion=8&manpath=FreeBSD+11.1-RELEASE&arch=default&format=html|loader(8)]] * [[https://lists.freebsd.org/pipermail/freebsd-hackers/2014-March/044419.html|kern.maxswzone]] * [[http://uyota.asablo.jp/blog/2017/05/24/8573513|FreeBSD で swap デバイスを増やし続けると…: uyota 匠の一手]]