😇

メモリをケチったRocky9でdnf install すると終わる件

2024/07/03に公開

状況

さくらのVPS(メモリ1G)でRocky Linux 9をインストールし、certbotを入れようとepel-releaseをインストールし、dnf updateって打ったらシェルのレスポンスがなくなった。
コントロールパネルから再起動するしかなくなった。

原因究明

/var/log/yum.log

2024-07-02T23:51:04+0900 DEBUG repo: downloading from remote: epel
2024-07-02T23:51:04+0900 DEBUG Failed to retrieve a default SELinux context
2024-07-02T23:51:04+0900 DEBUG Failed to set default SELinux context to "system_u:object_r:rpm_var_cache_t:s0"
2024-07-02T23:51:04+0900 DEBUG countme: no event for epel: budget to spend: 1

SELinuxはデフォルトでdisabledだから関係が無い。
昨今、設定一つでこういったおかしい挙動があるならすぐバグ報告されるはずだが見つからず、おそらくdnf自体のバグではない。

となると、メモリをケチってるのが原因か?でも普通スワップに落ちるから。。。と思って
freeで見てみると

# free
               total        used        free      shared  buff/cache   available
Mem:          787464      230468      324328         288      356612      556996

ふーん、SWAP存在してないじゃん。

ということでとりあえず2GBのSWAP領域を作ってマウント、再起動したらepel-release有効のままdnf install snapできました。
https://manual.sakura.ad.jp/vps/os-packages/add-swapfile.html

/var/log/messages

Jul  3 03:57:24 b4ch1-sakuravps-002 kernel: Out of memory: Killed process 776 (dnf) total-vm:751864kB, anon-rss:605832kB, file-rss:16kB, shmem-rss:0kB, UID:0 pgtables:1364kB oom_score_adj:0
Jul  3 06:44:44 b4ch1-sakuravps-002 kernel: out_of_memory+0xed/0x2e0

でもこれ、コマンド打ったときには出てないんだよな(おそらくdnf定期実行時のOOM)

Discussion