このサイトは Oracle Cloud を使用してホストしています。
Oracle Cloud には無料で使用できるサーバがあり、それを使用している形になります(安いから)。
導入するにしたがってやったことを備忘録として記事にしていこうと思います。
メモリ少ない問題
まず、yum のアップデートを試みましたが、ここで問題が発生しました。
sudo yum update -y
上記コマンドを実行しても、しばらくして Killed になってしまいます。
調べると、メモリが小さいのが原因と思われるので、スワップファイルを増やすことにしました。
# free -t -h
total used free shared buff/cache available
Mem: 503Mi 182Mi 165Mi 0.0Ki 177Mi 321Mi
Swap: 502Mi 156Mi 346Mi
Total: 1.0Gi 338Mi 512Mi
# dd if=/dev/zero of=/var/swap bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 18.4546 s, 58.2 MB/s
# mkswap /var/swap
mkswap: /var/swap: insecure permissions 0644, fix with: chmod 0600 /var/swap
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=ef53324e-d5ac-4864-a221-e4e9b2f8539b
# swapon /var/swap
swapon: /var/swap: insecure permissions 0644, 0600 suggested.
# chmod 600 /var/swap
# swapon /var/swap
swapon: /var/swap: swapon failed: Device or resource busy
# swapon -s
Filename Type Size Used Priority
/.swapfile file 515068 159556 -2
/var/swap file 1048572 0 -3
# swapoff -a
# swapon -s
# swapon /var/swap
# swapon -s
Filename Type Size Used Priority
/var/swap file 1048572 0 -2
# free -t -h
total used free shared buff/cache available
Mem: 503Mi 319Mi 11Mi 3.0Mi 197Mi 183Mi
Swap: 1.0Gi 0B 1.0Gi
Total: 1.5Gi 319Mi 1.0Giswapon でスワップ領域を設定し、swapoff でスワップ領域を外しています。
既に設定済みの場合はDevice or resource busyでエラーになるみたいです。
上記の動作で 500MiB 程度から 1.0GiB 程度に大きくしました。
しかしこれでも update は終了せず……
# swapoff -a
# dd if=/dev/zero of=/.swapfile bs=4M count=1024
1024+0 records in
1024+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 83.422 s, 51.5 MB/s
# mkswap /.swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=53ed20a9-1a6c-4844-b306-437b10a3d5cb
# swapon /.swapfile
# swapon -s
Filename Type Size Used Priority
/.swapfile file 4194300 0 -2
# free -t -h
total used free shared buff/cache available
Mem: 503Mi 324Mi 18Mi 3.0Mi 187Mi 179Mi
Swap: 4.0Gi 0B 4.0Gi
Total: 4.5Gi 324Mi 4.0Gi
4GiB のスワップファイルを作成して設定することでどうにか update が終了しました。
ついでにredditの情報をもとに、microdnf パッケージをインストールして、アップデートしてみました。
dnf キャッシュの自動更新も無効にしています。
dnf install microdnf
systemctl disable dnf-makecache.timer
microdnf update -y今のところ問題なく動作しています。
参考:https://webbibouroku.com/Blog/Article/linux-swap
https://blog.freks.jp/create-swap-area/