GNU/Linux >> Linux の 問題 >  >> Linux

Linux – Zramを使用する場合のVm.swappinessの適切な値は?

コンピューターでzramを圧縮RAMバックアップスワップとして使用しています。システムが何かをスワップアウトする必要がある場合、それをzramでバックアップされたスワップファイルにスワップすることは、メモリ内のデータを圧縮してスペースを解放することとほぼ同じです。これにより、ディスクでバックアップされたスワップと比較して、ほとんどの場合、スワッピングが非常に高速になります。このため、実際にディスクにぶつかることなく交換できるので、システムに未使用のものをより積極的に交換するように促すことで、ある程度のパフォーマンスが得られるのではないかと思います。

たとえば、vm.swappinessの設定をいじった人はいますか。 zramを使用しているときに100になりますか?これは望ましいことでしょうか?

sysctl -w vm.swappiness=100

承認された回答:

簡単な答え:vm.swappiness=100 zramの適切な値です(少なくともLinux4.9を使用するDebianStretchでは、これが最良の値だと思います)

すでにvm.swappiness=100をテストしています 私にとって。

簡単なテストを行って、どの値が自分に最適かを確認できると思います。

また、この質問をテストするための別の簡単なプログラムを作成しました。
x
私のマシンでは、vm.swappinessが非常に低くなっています。 値(vm.swappiness=1など )明らかな応答性の問題が発生します。

SwapCachedについて /proc/meminfoにあります :

まず、vm.page-cluster=0を試してください 、これにより、役に立たないSwapCachedを減らすことができるかもしれません スワップインから。

SwapCachedは、非zramスワップデバイスと同じようにzramを高速化できます

SwapCached 必要に応じて再利用(無料)できます:

./linux-4.9/mm$ grep -rn delete_from_swap_cache
memory-failure.c:715:   delete_from_swap_cache(p);
shmem.c:1115:       delete_from_swap_cache(*pagep);
shmem.c:1645:            * unaccounting, now delete_from_swap_cache() will do
shmem.c:1652:               delete_from_swap_cache(page);
shmem.c:1668:       delete_from_swap_cache(page);
vmscan.c:673:       __delete_from_swap_cache(page);
swap_state.c:137:void __delete_from_swap_cache(struct page *page)
swap_state.c:218:void delete_from_swap_cache(struct page *page)
swap_state.c:227:   __delete_from_swap_cache(page);
swapfile.c:947:         delete_from_swap_cache(page);
swapfile.c:987: delete_from_swap_cache(page);
swapfile.c:1023:            delete_from_swap_cache(page);
swapfile.c:1571:            delete_from_swap_cache(page);
./linux-4.9/mm$ 

Linux
  1. Cを使用してLinuxでCPUの数を取得するには?

  2. Linuxでcpを使用するときに「同じファイルです」という警告メッセージを回避するにはどうすればよいですか?

  3. Linux メモリ管理で swappiness を設定するには?

  1. Linuxコマンドラインでのtcpdumpの使用の概要

  2. Linuxでprocファイルシステムを使用してトラブルシューティングする

  3. Linuxコマンドラインで力を使用する

  1. Linuxでtopコマンドを使用するためのヒント

  2. Linuxストーリー:バックアップがその日を救ったとき

  3. Linux マクロ access_ok() を使用するポイントは何ですか?