Skenario penggunaan desktop Zswap, Zram, Zcache

11

Saya sudah mencoba memahami perbedaan dalam kasus penggunaan untuk Zswap, Zram, dan Zcache. Permintaan maaf sebelumnya untuk pertanyaan panjang / sedikit sembrono. Saya telah melakukan banyak googling, dan saya mengerti bahwa zram pada dasarnya adalah perangkat blok untuk swap terkompresi, sementara zswap memampatkan di kernel menggunakan api frontswap. Tampaknya salah satu keunggulan zswap adalah dapat memindahkan beberapa halaman ke backing swap ketika berada di bawah tekanan dengan cara LRU, sementara zram tidak dapat melakukan itu (mohon konfirmasi, tidak yakin apakah ini benar).

Jadi, inilah pertanyaan saya: 1.) Sebagai pengguna desktop, apa perbedaan kinerja antara zcache / zswap / zram, terutama zswap dan zram? Misalnya, apakah ada yang jauh lebih baik / lebih buruk pada fragmentasi memori (jenis yang mengarah pada penggunaan memori yang berlebihan dan pemborosan)?

Pertanyaan bonus: 2.) Apakah ada kemungkinan kombinasi yang ideal dari yang disebutkan di atas (katakanlah, zram + zswap, atau zram + zcache) untuk kinerja desktop (termasuk responsifitas desktop, ditambah perilaku swap yang minimal mengganggu dan manajemen memori yang waras)?

* Kutipan sumber sangat dihargai.

Saya harus menambahkan bahwa saya adalah pengguna Linux yang cukup berpengalaman (5 tahun), dan telah mencoba untuk benar-benar memahami bagaimana sistem saya termasuk kernel bekerja. Namun, saya bukan seorang programmer, dan hanya memiliki pengetahuan pemrograman yang sangat mendasar (3 sks kuliah). Tetapi bersikaplah teknis jika Anda perlu; Saya akan menguraikan makna Anda pada waktu saya sendiri.

Spesifikasi sistem:

Linux Mint 15
Processor:Core 2 Quad 6600 (2.4ghz)
Ram: 8G
linux kernel: liquorix 3.11 series
Storage: 128 GB SSD, 1TB HDD 5400rpm

Tidak ada komentar "beli lebih banyak ram"! Saya telah memaksimalkan ram pada motherboard ini, dan memiliki anggaran upgrade $ 0 untuk masa mendatang. Namun saya ingin tetap membuka program intensif memori (banyak browser menjadi konsumen utama ram saya) jadi saya tidak keberatan bertukar dalam batas penurunan kinerja yang wajar.

Warren
sumber

Jawaban:

7

Cara terbaik yang dapat saya coba untuk menjawab pertanyaan-pertanyaan itu adalah dengan mengatakan apa sebenarnya mereka bertiga.

zRAM

zRAM pada dasarnya tidak lebih dari perangkat swap. Manajemen memori akan mendorong halaman ke perangkat swap dan zRAM akan memampatkan data itu, mengalokasikan memori sesuai kebutuhan.

Zswap

Zswap adalah ruang swap terkompresi yang dialokasikan secara internal oleh kernel dan tidak muncul sebagai perangkat swap. Ini digunakan oleh frontswap dengan cara yang sama perangkat swap dapat digunakan, tetapi dengan cara yang lebih efisien.

Zcache

Zcache adalah frontend untuk frontswap dan cleancache.

Zcache menggantikan zRAM sehingga Anda tidak benar-benar ingin keduanya memperebutkan sumber daya, meskipun ada beberapa pembicaraan tentang bagaimana keduanya dapat bekerja dengan baik bersama dalam keadaan yang tepat. Untuk saat ini saya tidak akan repot mencoba dan menyerahkannya kepada para ahli untuk mencari tahu.

Beberapa bacaan:
Cleancache vs zram?
https://lwn.net/Articles/454795/
https://www.kernel.org/doc/Documentation/vm/zswap.txt
http://www.zeropoint.com/Support/ZCache/ZCachePro/ZCacheAdvantages.html

Secara pribadi, saya baru saja menonaktifkan zRAM dan mengaktifkan Zcache di semua sistem saya yang memiliki kernel yang cukup baru (zRAM masih diaktifkan pada perangkat Android).

Adapun kinerja: itu adalah sesuatu yang harus Anda perhatikan sendiri. Setiap orang berbeda. Secara teori, meskipun demikian, Zcache seharusnya jauh lebih efisien memori daripada zRAM dan bekerja pada dua level (frontswap dan cleancache), dan ia dapat keluar ke perangkat swap sesuai kebutuhan (pada hard drive, misalnya). Anda juga dapat memilih algoritma kompresi mana yang akan digunakan, apakah itu harus menggunakan CPU terlalu banyak (yang saya tidak bisa bayangkan akan melakukannya).

Pembaruan : Zcache telah dihapus dari kernel 3.11 (untuk saat ini), jadi zRAM telah menjadi satu-satunya opsi di kernel yang lebih baru. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256503/comments/3 http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git / commit /? id = 96256460487387d28b8398033928e06eb9e428f7

Ken Sharp
sumber
1
Zswap diaktifkan di kernel terbaru dengan menambahkan zswap.enabled=1ke baris perintah Linux.
Ken Sharp