Zswap
2018年2月6日 (火) 23:43時点におけるKusakata.bot (トーク | 投稿記録)による版 (文字列「http://askubuntu.com/」を「https://askubuntu.com/」に置換)
関連記事
Wikipedia より:
- "Zswap はスワップされたページのライトバックキャッシュを圧縮する Linux カーネルの機能です。スワップアウトされたときにメモリページをスワップデバイスに移動する代わりに、zswap は圧縮を行なってシステムの RAM 内のメモリプールに動的に保存します。"
zswap はスワップデバイスの圧縮 RAM キャッシュです。スワップアウトされそうになったページは圧縮されて RAM が本当に満杯になるまで RAM 内で扱われます。そして最も長く使われてない (LRU) ページがディスクに送られます。zram は RAM のスワップデバイスとして動作するので、他にスワップデバイスは必要としません。
要するに、zswap を使用するにはスワップデバイスを設定する必要があるということです。
目次
zswap の有効化
以下のコマンドを root で実行することで zswap を有効化できます:
# echo 1 > /sys/module/zswap/parameters/enabled
永続的に zswap を有効にするには、以下をカーネルブートパラメータに追加してください:
zswap.enabled=1
zswap のカスタマイズ
故意に、zswap ではカスタマイズできるパラメータが比較的少なくなっています。
最大使用容量をカスタマイズ
zswap はあらかじめ割り当てられたメモリプールを使って圧縮・スワップされたデータを保存するわけではありません。zswap が利用できるメモリの最大使用率を設定したい場合、カーネルブートパラメータに以下を追加してください (デフォルトは20):
zswap.max_pool_percent=25
上記の設定は sysfs
でもできます。
圧縮アルゴリズムを変更する
/sys/module/zswap/parameters/compressor
に使用したいアルゴリズムを書き込むことで設定できます:
# echo lz4 > /sys/module/zswap/parameters/compressor
zswap の圧縮アルゴリズムもカーネルブートパラメータで設定できます:
zswap.compressor=lzo #deflate #lz4
LZ4 圧縮を有効にする (lzo や deflate より高速で、圧縮率は低め)
- Mkinitcpio#MODULES に
lz4 lz4_compress
を追加 mkinitcpio
を実行- カーネルパラメータに
zswap.compressor=lz4
を追加 - 再起動
- dmesg を確認:
$ dmesg | grep zswap: [ 0.918052] zswap: loaded using pool lz4/zbud