「Zswap」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:カーネル en:Zswap {{Related articles start}} {{Related|カーネルパラメータ}} {{Related|Mkinitcpio}} {{Related articles end}} Wikipedia:zswa...」)
 
(文字列「http://askubuntu.com/」を「https://askubuntu.com/」に置換)
(他の1人の利用者による、間の3版が非表示)
8行目: 8行目:
 
:"Zswap はスワップされたページのライトバックキャッシュを圧縮する Linux カーネルの機能です。スワップアウトされたときにメモリページをスワップデバイスに移動する代わりに、zswap は圧縮を行なってシステムの RAM 内のメモリプールに動的に保存します。"
 
:"Zswap はスワップされたページのライトバックキャッシュを圧縮する Linux カーネルの機能です。スワップアウトされたときにメモリページをスワップデバイスに移動する代わりに、zswap は圧縮を行なってシステムの RAM 内のメモリプールに動的に保存します。"
   
zswap はスワップデバイスの圧縮 RAM キャッシュです。スワップアウトされそうになったページは圧縮されて RAM が本当に満杯になるまで RAM 内で扱われます。そして最も長く使われてない (LRU) ページがディスクに送られます。zram は RAM のスワップデバイスとして動作するので、他にスワップデバイスは必要としません。
+
zswap はスワップデバイスの圧縮 RAM キャッシュです。スワップアウトされそうになったページは圧縮されて RAM が本当に満杯になるまで RAM 内で扱われます。そして最も長く使われてない (LRU) ページがディスクに送られます。[[パフォーマンスの最大化#Zram または zswap|zram]] は RAM のスワップデバイスとして動作するので、他にスワップデバイスは必要としません。
   
 
要するに、zswap を使用するには[[スワップ]]デバイスを設定する必要があるということです。
 
要するに、zswap を使用するには[[スワップ]]デバイスを設定する必要があるということです。
   
 
==zswap の有効化==
 
==zswap の有効化==
  +
以下のコマンドを root で実行することで zswap を有効化できます:
zswap を有効にするには、以下を[[カーネルパラメータ#設定|カーネルブートパラメータ]]に追加してください:
 
  +
# echo 1 > /sys/module/zswap/parameters/enabled
  +
  +
永続的に zswap を有効にするには、以下を[[カーネルパラメータ#設定|カーネルブートパラメータ]]に追加してください:
 
zswap.enabled=1
 
zswap.enabled=1
  +
  +
{{Tip|{{pkg|systemd-swap}} パッケージを使って {{ic|/etc/systemd/swap.conf}} で zswap を有効化・[[#zswap のカスタマイズ|設定]]することもできます。}}
  +
 
==zswap のカスタマイズ==
 
==zswap のカスタマイズ==
 
故意に、zswap ではカスタマイズできるパラメータが比較的少なくなっています。
 
故意に、zswap ではカスタマイズできるパラメータが比較的少なくなっています。
 
===最大使用容量をカスタマイズ===
 
===最大使用容量をカスタマイズ===
  +
zswap はあらかじめ割り当てられたメモリプールを使って圧縮・スワップされたデータを保存するわけではありません。zswap が利用できるメモリの最大使用率を設定したい場合、カーネルブートパラメータに以下を追加してください (デフォルトは20):
zswap does not use a preallocated pool of memory to hold compressed and swapped data. If you want to put a maximum bound on the percentage of memory that zswap can use, add this to your kernel boot parameters:
 
zswap.max_pool_percent=25
+
zswap.max_pool_percent=25
This can also be set in {{ic|sysfs}}.
+
上記の設定は {{ic|sysfs}} でもできます。
   
 
===圧縮アルゴリズムを変更する===
 
===圧縮アルゴリズムを変更する===
zswaps の圧縮アルゴリズムもカーネルブートパラメータで設定できます:
+
{{ic|/sys/module/zswap/parameters/compressor}} に使用したいアルゴリズムを書き込むことで設定できます:
  +
# echo lz4 > /sys/module/zswap/parameters/compressor
  +
  +
zswap の圧縮アルゴリズムもカーネルブートパラメータで設定できます:
 
zswap.compressor=lzo #deflate #lz4
 
zswap.compressor=lzo #deflate #lz4
   
32行目: 41行目:
 
#再起動
 
#再起動
 
#dmesg を確認:
 
#dmesg を確認:
$ dmesg | grep 'zswap.* compressor'
+
$ dmesg | grep zswap:
[ 0.307223] zswap: using lz4 compressor
+
[ 0.918052] zswap: loaded using pool lz4/zbud
   
 
== 参照 ==
 
== 参照 ==
39行目: 48行目:
 
* [https://www.kernel.org/doc/Documentation/vm/zswap.txt Zswap ドキュメント]
 
* [https://www.kernel.org/doc/Documentation/vm/zswap.txt Zswap ドキュメント]
 
* [https://lkml.org/lkml/2013/7/17/147 zswap: How to determine whether it is compressing swap pages?]
 
* [https://lkml.org/lkml/2013/7/17/147 zswap: How to determine whether it is compressing swap pages?]
* [https://www.ibm.com/developerworks/community/blogs/fe313521-2e95-46f2-817d-44a4f27eba32/entry/new_linux_zswap_compression_functionality7?lang=en IBM Developer Works Article (with benchmarks)]
+
* [https://www.ibm.com/developerworks/community/blogs/fe313521-2e95-46f2-817d-44a4f27eba32/entry/new_linux_zswap_compression_functionality7?lang=en IBM Developer Works の記事 (ベンチマーク結果あり)]
* [http://askubuntu.com/questions/471912/zram-vs-zswap-vs-zcache-ultimate-guide-when-to-use-which-one Ask Ubuntu: zram vs. zswap vs. zcache]
+
* [https://askubuntu.com/questions/471912/zram-vs-zswap-vs-zcache-ultimate-guide-when-to-use-which-one Ask Ubuntu: zram vs. zswap vs. zcache]
* [https://bbs.archlinux.org/viewtopic.php?id=169585 Archlinux forum thread]
+
* [https://bbs.archlinux.org/viewtopic.php?id=169585 Archlinux フォーラムスレッド]

2018年2月6日 (火) 23:43時点における版

関連記事

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
ヒント: systemd-swap パッケージを使って /etc/systemd/swap.conf で zswap を有効化・設定することもできます。

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 より高速で、圧縮率は低め)

  1. Mkinitcpio#MODULESlz4 lz4_compress を追加
  2. mkinitcpio を実行
  3. カーネルパラメータに zswap.compressor=lz4 を追加
  4. 再起動
  5. dmesg を確認:
$ dmesg | grep zswap:
[    0.918052] zswap: loaded using pool lz4/zbud

参照