
10 月末にリリースが予定されている Fedora 33 ですが、いくつか大きな変更が加えられます。まだベータ版のリリースもされていませんが、Fedora 32 をインストールしているテスト機を、33 のプレリリース版にアップグレードして、どんなものか見てみました。
アップグレード
以下の手順で Fedora 32 からアップグレードしました。
- sudo dnf update --refresh
- sudo dnf install dnf-plugin-system-upgrade
- sudo dnf system-upgrade download --releasever=33
- sudo dnf system-upgrade reboot
アップグレード後、Fedora 33 のデフォルト背景 (f33-backgrounds-base-33.0.3-1.fc33.noarch) に変更したところ、下記のようになりました。なんだか Fedora らしくない背景ですが、正式リリースでは変更される可能性があります。
スワップメモリ
Fedora 33 のリリースで予定されている大きな変更のひとつに、従来、ハードディスクなどのストレージ上に確保していたスワップ領域の代わりに、メモリ (RAM) を使用した zram が、デフォルトスワップとして設定されるようになることがあげられます。これは、アクセス速度の遅いストレージ領域を使わずに、RAM を使ってパフォーマンスを向上させようという目的です。
Fedora プロジェクトの以下のサイトに変更の詳細が説明されています。
上記サイトで説明されている内容のうち、重要な部分の抄訳(意訳)をしました。
zram デバイス(通常は /dev/zram0)で使用されるメモリは事前に割り当てられるものではありません。必要に応じて動的に割り当てられ、解放されます。目一杯 /dev/zram0 の領域が割り当てられる場合、メモリの半分を使用します。/dev/zram0 は他のブロックデバイスと同じように扱うことができ、mkswap でスワップ用にフォーマットすることができます。
システムは、RAM が一杯になるまでは通常通り RAM を使用し、RAM が全て使われれば、従来のスワップ領域と同じように zram へのページングを開始します。データの圧縮をしているため、スワップ領域への退避処理の速度は、通常のメモリへのアクセスに比べ半分程度に落ちますが、ハードディスクのスワップに比べると桁違いに速くなります。
zram は 約 0.1% のオーバーヘッドが生じます。メモリが 1GiB あれば約 1MiB がオーバーヘッドになります。
意図的に重い処理をして、zram の状況を見てみました。
使用した PC は Fedora 32 からアップグレードしたため、ストレージの構成はスワップを含めて変わっていません。
[bitwalk@localhost ~]$ cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri May 1 20:44:58 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/fedora_localhost--live-root / ext4 defaults 1 1
UUID=b5aa3c77-fae0-45ce-8586-f767c15cde92 /boot ext4 defaults 1 2
UUID=0B92-CBA1 /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/fedora_localhost--live-home /home ext4 defaults 1 2
/dev/mapper/fedora_localhost--live-swap none swap defaults 0 0
[bitwalk@localhost ~]$
しかし lsblk コマンドでブロックデバイスを確認すると、zram0 があります。
[bitwalk@localhost ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk1 179:0 0 57.6G 0 disk ├─mmcblk1p1 179:1 0 600M 0 part /boot/efi ├─mmcblk1p2 179:2 0 1G 0 part /boot └─mmcblk1p3 179:3 0 56G 0 part ├─fedora_localhost--live-swap 253:0 0 5.8G 0 lvm [SWAP] ├─fedora_localhost--live-root 253:1 0 93.9G 0 lvm / └─fedora_localhost--live-home 253:2 0 76.6G 0 lvm /home mmcblk1boot0 179:8 0 4M 1 disk mmcblk1boot1 179:16 0 4M 1 disk mmcblk3 179:24 0 120.2G 0 disk └─mmcblk3p1 179:25 0 120.2G 0 part ├─fedora_localhost--live-root 253:1 0 93.9G 0 lvm / └─fedora_localhost--live-home 253:2 0 76.6G 0 lvm /home zram0 252:0 0 2.8G 0 disk [SWAP] [bitwalk@localhost ~]$
free と swapon コマンドでメモリとスワップの使用状況を確認すると下記のようになっています。スワップ領域は /dev/zram0 を使用するように優先度 (PRIO) が設定されています。
[bitwalk@localhost ~]$ free -h total used free shared buff/cache available Mem: 5.6Gi 3.7Gi 605Mi 113Mi 1.4Gi 1.6Gi Swap: 8.6Gi 987Mi 7.6Gi [bitwalk@localhost ~]$ swapon NAME TYPE SIZE USED PRIO /dev/dm-0 partition 5.8G 0B -2 /dev/zram0 partition 2.8G 987.3M 100 [bitwalk@localhost ~]$
zramctl コマンドで、スワップされているデータと圧縮率を確認します。
[bitwalk@localhost ~]$ zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo-rle 2.8G 986.7M 346.5M 399.3M 4 [SWAP]
[bitwalk@localhost ~]$
986.7M のデータが圧縮されて 346.5M になり、実際にスワップ領域として使用しているメモリサイズは 399.3M ということでしょうか。
重い処理をしようといろいろやってみましたが、意外とスワップの使用量が増えませんでした。メモリ上にスワップ領域を確保するということで、RAM をある程度積んでいないと使い物にならなくなるかもと心配していたのですが、自分の使い方だとそんなに心配しなくとも良いのかもしれません。
今回は 6GB の DRAM を搭載しているテスト機を使いましたが、4GB の時はどうか確認してみたくなりました。
Fedora 33 のベータ版がリリースされ、インストールイメージが利用できるようになったら、クリーンインストールして、ワークステーション用に新しくデフォルトのファイルシステムになる btrfs も確認したいところです。
参考サイト
- Raspberry Piでメモリを拡張したい時にZramを使う - そうなんでげす [2019-07-01]
- zramの状態を確認するコマンド zramctl - 以下省略! [2018-05-31]

にほんブログ村
0 件のコメント:
コメントを投稿