🚴

さくらVPSでコンパイル中にKillされる。

2024/02/18に公開

事象

さくらVPSで1GByteのUbuntuでPythonのTA-Libをpip3でインストールするのを横で見ていた時に、

(省略...)
      x86_64-linux-gnu-gcc: fatal error: Killed signal terminated program cc1
      compilation terminated.
      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for TA_Lib

というエラーに遭遇した。
UbuntuへのTa-Libインストールはこんな感じにやってた。
https://medium.com/@outwalllife001/how-to-install-ta-lib-on-ubuntu-22-04-step-by-step-88ffd2507bbd
公式はここ
https://pypi.org/project/TA-Lib/

推察

なかなかLinuxでコンパイルでkillされることはない気がします。
メモリがなくなってもSwapファイルを作って頑張ってくれる印象なので。

メモリ不足かなと疑いターミナルをもう一つ立ち上げてメモリ監視のためtopコマンドを実行しつつ別のターミナルでコンパイルをかけてると、メモリが48Mbyteに減ったところでswapサイズが0Byteで落ちている。
原因はきっとメモリ不足。

topコマンドについて
https://qiita.com/k0kubun/items/7368c323d90f24a00c2f

さくらVPSがメモリ不足でkillされる時の対処法を2つ

1.OSの設定でswapファイルを作成する

初期設定ではswapファイルが作成されないらしい。
(デフォルトの設定が不思議な気がするけど、運営から見てVPSでSwapファイルをデフォルトでは使って欲しくないのかな。メモリが不足してると認識して欲しい的な?)
https://manual.sakura.ad.jp/vps/os-packages/add-swapfile.html

2.さくらVPSをメモリの大きい上のランクにアップグレードする。

とりあえずは上記ですが、別の手段として、上記で遅い場合やSwapファイルを使いたくない場合は、Vps自体をスケールアップもできます。
https://vps.sakura.ad.jp/specification/
https://manual.sakura.ad.jp/vps/server/scaleup.html
移行によるスケールアップもできるらしいですが、やったことはないですねぇ💦

(スケールアップについて書いてると広告っぽい印象だけど、PR記事や広告ではありません。)

Discussion