- Mereka itu apa? bagaimana mereka berbeda (saya telah menulis pemahaman saya dalam jawaban di bawah)
- Dalam sistem Zswap, ketika sebuah halaman diusir dari zswap ke swap aktual, apakah ia disimpan dalam kompresi dari? (atau apakah itu dikompresi sebelum disimpan?, AFAICT masih dikompresi tetapi saya tidak yakin)
- Bagaimana keadaan zcache saat ini? itu tampaknya dihapus atau sesuatu dalam 3.11. Apa artinya ini? ( http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=96256460487387d28b8398033928e06eb9e428f7 )
kernel
performance
ram
swap
staticd
sumber
sumber
Jawaban:
Mengenai 2., zswap tampaknya melakukan dekompresi halaman pada penulisan kembali, mengonfirmasi komentar @ Cbhihe.
mm / zswap.c , baris 828:
Jadi zswap berguna untuk situasi di mana cache in-ram terkompresi kemungkinan akan dilupakan segera sebelum ditulis kembali ke disk. Ini bukan untuk aplikasi dengan tumpukan besar, umur panjang yang pada akhirnya perlu didukung oleh perangkat swap yang sebenarnya.
sumber
Ada banyak hal tentang ketiga sistem ini tetapi tidak ada yang membuat perbandingan sederhana di antara mereka, apalagi menjelaskannya dengan baik. Aku mencoba memahaminya tetapi kepalaku meledak. Kemudian saya pikir saya sudah mendapatkannya sehingga saya mencoba menuliskannya dan kepala saya meledak lagi. (lihat ringkasan implementasi) Saya pikir akan bermanfaat untuk memposting ini di sini karena ada banyak pertanyaan stackexchange yang menanyakan tentang perbandingan berpasangan di antara mereka.
Ringkasan apa yang akan digunakan saat:
Ringkasan implementasi mereka:
Detail:
ZRAM: Membuat perangkat swap di RAM. Halaman yang dikirim ke sini dikompres saat disimpan. Ini memiliki prioritas yang lebih tinggi daripada perangkat swap lainnya: halaman yang ditukar lebih disukai dikirim ke perangkat zram sampai penuh, hanya kemudian perangkat swap lain yang digunakan.
ZSWAP: The
frontswap
sistem kait upaya swap keluar halaman dan menggunakan zswap sebagai write-back cache untuk perangkat swap HDD / SSD: Suatu usaha dilakukan untuk kompres halaman dan jika mengandung kurang data yang dimampatkan secara langsung ditulis ke disk. Jika data dikompresi, data itu disimpan dalam kumpulan memori zswap. Jika halaman bertukar keluar dari memori ketika total halaman dikompresi dalam RAM melebihi ukuran tertentu, Least Recently Used (LRU) dikompresi halaman ditulis ke disk karena tidak mungkin diperlukan segera.ZCache: Ini adalah backend untuk sistem memori Transenden. Memori transenden menyediakan memori seperti RAM yang hanya dapat diakses satu halaman dengan menggunakan
put
danget
menelepon. Ini tidak seperti memori normal yang dapat diakses satu byte setiap kali. Thefrontswap
dancleancache
sistem upaya kait untuk swap dan file halaman-sistem reclaim cache masing-masing dan mengirimkannya ke backends memori transenden. Ketika zcache digunakan sebagai backend, data dikompresi dan disimpan dalam RAM. Ketika mengisi, halaman terkompresi diusir ke swap. (backend alternatif adalah RAMster yang berbagi kumpulan RAM di seluruh komputer jaringan). Hanya menggunakanfrontswap
frontend denganzcache
backend berfungsi seperti ituzswap
. (Sebenarnya zswap adalah himpunan bagian yang disederhanakan dari zcache)Sumber daya terbaik yang saya temukan adalah:
sumber
zswap
? Berikut detail askubuntu.com/a/361321/25388zram
adalahswap
benar-benar salah.zram
BUKAN aswap
. Satu-swap
satunya BISA disimpan dizram
. Tapi ini adalah salah satu dari banyak kasus penggunaan yang mungkin !. Berikut ini sebuah contoh: "Beberapa usecases termasuk penyimpanan / tmp, digunakan sebagai disk swap, berbagai cache di bawah / var dan mungkin banyak lagi :)" kernel.org/doc/Documentation/blockdev/zram.txt Misalnya saya menggunakannya untuk penyimpanan sementara yang saya format dan mount seperti perangkat blok normal lainnya.