Berapa besar partisi swap yang diperlukan untuk hibernasi?

11

Saya sudah membaca pertanyaan ini , tetapi tidak secara definitif menjawab pertanyaan saya .

Jika saya ingin komputer saya dapat melakukan hibernasi, apakah saya perlu memiliki partisi swap sebesar RAM saya, atau apakah Ubuntu dengan bijaksana dapat melakukan hibernasi jika partisi swap dapat sesuai dengan RAM yang saat ini digunakan ? Saya akan menginstal Ubuntu pada komputer dengan banyak RAM, dan hard drive yang relatif kecil, jadi saya tidak ingin menggunakan lebih banyak ruang hard drive daripada yang diperlukan.

Saya ingin menghindari memberikan spesifikasi aktual saya untuk menjaga pertanyaan ini lebih umum, meskipun saya akan memberikannya jika perlu.

Koboi Penutupan
sumber

Jawaban:

9

Sulit diprediksi: swap Anda perlu diakomodasi

  • apa yang sudah ada di swap saat Anda hibernasi
  • apa yang ada di RAM ketika Anda hibernasi, tetapi hanya bagian yang bukan cache disk atau buffer; gambar RAM dikompresi jika Anda gunakanuswsusp
  • beberapa struktur data kernel

Jadi Anda bisa gagal melakukan hibernasi walaupun swap Anda lebih besar dari RAM Anda, karena sebagian besar swap Anda sudah digunakan. Dan secara konversi, Anda dapat berhibernasi dengan swap yang lebih kecil dari RAM, jika Anda tidak menggunakan keduanya pada saat itu.

Jika Anda ingin menghindari partisi swap ukuran tetap karena disk Anda sangat kecil, Anda bisa menggunakan file swap. Lebih mudah untuk mengubah ukuran, dan hibernasi ke file swap seharusnya didukung (tidak yakin apakah itu berfungsi di luar kotak, itu datang dan pergi antara rilis Ubuntu; IIRC melakukannya di 9,10 tetapi harus diatur di 10,10 ).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Cache disk tidak dikompresi
psusi
1
cara Anda melakukannya worded membuatnya terdengar seperti Anda mengatakan bahwa cache dikompresi, bukan gambar hibernasi. Agar gambar hibernasi dikompresi, Anda harus menginstal paket uswsusp. Implementasi kernel default tidak memampatkan.
psusi
2

Pertanyaan ini terus muncul di pertanyaan umum saat mengubah ukuran swap untuk mengatur hibernasi. Jawaban aslinya benar karena bisa sangat bervariasi berdasarkan pada beban kerja Anda, tapi saya tidak merasa itu jawaban yang lengkap.

Jawaban lengkapnya adalah Anda dapat mengetahui berapa banyak yang Anda butuhkan berdasarkan beban kerja spesifik Anda, lalu Anda dapat mengukurnya dengan tepat.

Alat dasar adalah pesan-pesan kernel selama hibernasi. Anda ingin melihat berapa banyak memori yang digunakan dengan perintah ini:

sudo cat /var/log/syslog | grep 'PM:'|grep kbytes

Anda harus mendapatkan output seperti:

Aug 14 11:03:20 mike-XPS-15-9570 kernel: [17594.823584] PM: Allocated 11809876 kbytes in 2.65 seconds (4456.55 MB/s)
Aug 14 11:03:20 mike-XPS-15-9570 kernel: [17605.365657] PM: Wrote 11787284 kbytes in 9.09 seconds (1296.73 MB/s)

Kemudian strateginya adalah menjalankan beban maksimum Anda, dan memicu hibernate, lihat ruang swap apa yang diperlukan, mungkin menambah margin keselamatan, lalu buat ruang swap Anda sebesar itu.

Mike Hardy
sumber