centos9を動かしているさくらのVPSにsshしてdnfしたらsshが切れる。
調べてもそんな例は見当たらない。何度やっても、どこからつないでも切れるのでコンソール(さくらの管理画面から)につないでdnfしてみたら、物騒なメッセージが出ていた。
# dnf update
[25559685.849171] dnf invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=0
[25559685.852614] CPU: 1 PID: 2780910 Comm: dnf Not tainted 5.14.0-252.el9.x86_64 #1
[25559685.853720] Hardware name: Red Hat Linux KVM, BIOS 0.5.1 01/01/2011
[25559685.854759] Call Trace:
[25559685.855521] <TASK>
(以下略)
oom-killer?
検索してみるとメモリ枯渇の時に出るようだった。
freeを実行してみるとSwapが0 ... ?
# free
total used free shared buff/cache available
Mem: 986668 393268 63280 2956 671788 593400
Swap: 0 0 0
freeなんていつも見ないので、この状態が異常なのか普通なのかわからない...
メモリ不足ということはなんか余計なものが動いているのだろうと思い、メモリを多く使用しているプロセスを確認するコマンドを調べて実行した。
ps aux --sort rss
試しにzabbixをインストールしたときに動かしたが使っていないmariadbだのsnmpdだのが多くのメモリを使っているようだったのでそれらを停止、アンインストールした。
dnf updateができるようになった。
が、よく見るとupdateでzabbixのモジュールを更新しようとしている。
もうzabbixはいらないのに。調べると、リポジトリ置き場(/etc/yum.repos.d)に「zabbix」のついたものがある。
ほかにもいろいろ入っている。これらは何かをインストールするときに「これを追加する」と書いてあるのをそのまま鵜呑みにして追加してそのままになっていたものだ。zabbixなんとかを名前を変えて消す。
などやって、freeを見ると、空き領域は増えたようだ。
swapは相変わらずゼロ。多分、swapを使っていないのだろう。
これはどうかと思うが、とりあえず、今回はok
# free
total used free shared buff/cache available
Mem: 986668 332612 416868 4788 412608 654056
Swap: 0 0 0
ちなみに私が使っているサーバのメモリは1Gである。
さくらのVPSはなんだかんだで10年くらい使っているだろうか?そんな古くない?
今調べたらさくらがVPSを提供開始したのは2010年とある。わたしはレンタルサーバを使っていて、これはいいと思ってすぐ使い始めた覚えがあるのでやはり10年以上使ってきた。
でもメモリの不足を感じたことは一度もなかった。
スケールアップしようかな...
それよりswap設定の方が先か...