「Zswap」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「http://askubuntu.com/」を「https://askubuntu.com/」に置換) |
(→zswap のカスタマイズ: 英語版と同期して追加) |
||
22行目: | 22行目: | ||
==zswap のカスタマイズ== |
==zswap のカスタマイズ== |
||
+ | === 現在のパラメータ === |
||
− | 故意に、zswap ではカスタマイズできるパラメータが比較的少なくなっています。 |
||
+ | |||
− | ===最大使用容量をカスタマイズ=== |
||
+ | Zswap には、カスタマイズ可能なパラメーターがいくつかあります。 ライブ設定は、次を使用して表示できます。 |
||
− | zswap はあらかじめ割り当てられたメモリプールを使って圧縮・スワップされたデータを保存するわけではありません。zswap が利用できるメモリの最大使用率を設定したい場合、カーネルブートパラメータに以下を追加してください (デフォルトは20): |
||
+ | |||
− | zswap.max_pool_percent=25 |
||
+ | {{hc|$ grep -R . /sys/module/zswap/parameters| |
||
− | 上記の設定は {{ic|sysfs}} でもできます。 |
||
+ | /sys/module/zswap/parameters/same_filled_pages_enabled:Y |
||
+ | /sys/module/zswap/parameters/enabled:Y |
||
+ | /sys/module/zswap/parameters/max_pool_percent:20 |
||
+ | /sys/module/zswap/parameters/compressor:lz4 |
||
+ | /sys/module/zswap/parameters/zpool:z3fold |
||
+ | /sys/module/zswap/parameters/accept_threshold_percent:90 |
||
+ | }} |
||
+ | |||
+ | さまざまなパラメーターの説明については、 [https://www.kernel.org/doc/html/latest/vm/zswap.html zswapのドキュメント] を参照してください。 |
||
+ | |||
+ | 初期構成を示すブート時ロードメッセージは、次の方法で取得できます。 |
||
+ | |||
+ | {{hc|$ dmesg {{!}} grep zswap:| |
||
+ | [ 0.317569] zswap: loaded using pool lz4/z3fold |
||
+ | }} |
||
+ | |||
+ | === パラメータを設定 === |
||
+ | ==== sysfsの使用 ==== |
||
+ | 各設定は、[[Wikipedia:sysfs|sysfs]]インターフェースを介して実行時に変更できます。たとえば、 {{ic|compressor}}パラメータを変更するには: |
||
+ | # echo lz4 > /sys/module/zswap/parameters/compressor |
||
+ | |||
+ | ==== カーネルブートパラメータの使用 ==== |
||
+ | パラメータの変更を永続化するには、対応するオプション、たとえば {{ic|1=zswap.compressor=lz4}} をカーネルブートパラメータに追加する必要があります。したがって、上記のすべての設定を永続的に設定するには、次のカーネルパラメータを追加する必要があります。 |
||
+ | |||
+ | zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold |
||
+ | |||
+ | ブートパラメータを介して圧縮アルゴリズムを変更する場合、対応する圧縮モジュールがブートの早い段階でロードされていることを確認する必要があります( [[#Compressionalgorithm]] を参照)。 |
||
+ | |||
+ | ==== systemd-swap の使用 ==== |
||
+ | ''システムスワップ'' スクリプトを使っているものについては、ブートプロセスの後の段階で ''システム'' パラメータを、{{ic|/etc/systemd/swap.conf}} に保存されている [https://github.com/Nefelim4ag/systemd-swap/blob/master/swap-default.conf の設定] に基づいて変更します。 |
||
===圧縮アルゴリズムを変更する=== |
===圧縮アルゴリズムを変更する=== |
2020年12月22日 (火) 20:59時点における版
関連記事
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 には、カスタマイズ可能なパラメーターがいくつかあります。 ライブ設定は、次を使用して表示できます。
$ grep -R . /sys/module/zswap/parameters
/sys/module/zswap/parameters/same_filled_pages_enabled:Y /sys/module/zswap/parameters/enabled:Y /sys/module/zswap/parameters/max_pool_percent:20 /sys/module/zswap/parameters/compressor:lz4 /sys/module/zswap/parameters/zpool:z3fold /sys/module/zswap/parameters/accept_threshold_percent:90
さまざまなパラメーターの説明については、 zswapのドキュメント を参照してください。
初期構成を示すブート時ロードメッセージは、次の方法で取得できます。
$ dmesg | grep zswap:
[ 0.317569] zswap: loaded using pool lz4/z3fold
パラメータを設定
sysfsの使用
各設定は、sysfsインターフェースを介して実行時に変更できます。たとえば、 compressor
パラメータを変更するには:
# echo lz4 > /sys/module/zswap/parameters/compressor
カーネルブートパラメータの使用
パラメータの変更を永続化するには、対応するオプション、たとえば zswap.compressor=lz4
をカーネルブートパラメータに追加する必要があります。したがって、上記のすべての設定を永続的に設定するには、次のカーネルパラメータを追加する必要があります。
zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold
ブートパラメータを介して圧縮アルゴリズムを変更する場合、対応する圧縮モジュールがブートの早い段階でロードされていることを確認する必要があります( #Compressionalgorithm を参照)。
systemd-swap の使用
システムスワップ スクリプトを使っているものについては、ブートプロセスの後の段階で システム パラメータを、/etc/systemd/swap.conf
に保存されている の設定 に基づいて変更します。
圧縮アルゴリズムを変更する
/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