Bagaimana mencegah sistem saya menjadi tidak responsif saat meronta-ronta (kehabisan RAM)?


11

Saya memiliki 8GB RAM, tetapi kadang-kadang saya menjalankan beberapa VM dan cukup proses Chrome untuk menggunakan sebagian besar memori saya. Itu biasanya baik-baik saja, tetapi kadang-kadang sistem saya mulai meronta-ronta, dan sulit bagi saya untuk pulih darinya tanpa hanya menunggu hal-hal menjadi lebih baik karena UI sebagian besar beku.

Dalam semua kasus ini, program yang menggunakan sebagian besar RAM saya bisa diprioritaskan. Jika Chrome atau VM menjadi tidak responsif tetapi lingkungan dan terminal grafis saya masih responsif, saya bisa beralih ke terminal, menemukan pelakunya, dan membunuhnya. Saya bisa membayangkan sesuatu seperti "baik" untuk memori (sehingga saya bisa bagus Chrome dan VM saya) atau sesuatu untuk memaksa lingkungan grafis dan terminal saya untuk tetap dalam memori dan bukan untuk bertukar.

Apakah ada cara untuk memastikan bahwa UI tetap responsif ketika sistem saya meronta-ronta?

Terima kasih!

EDIT: Saya masih tertarik pada apakah ada sesuatu seperti memori yang bagus, tetapi saya baru menemukan bahwa sistem saya tidak memiliki ruang swap. Saya pikir ini terjadi karena saya mulai menggunakan rumah terenkripsi dan swap terenkripsi (lihat Swap tidak bekerja pada instalasi bersih 14,04 menggunakan rumah terenkripsi ). Jadi, sistem saya mungkin menjadi tidak responsif karena saya tidak punya ruang swap, jadi sistem saya tidak bisa menukar program yang tidak perlu ketika kehabisan memori.


Jadi sepertinya Anda menemukan penyebab masalah Anda (tidak ada swap yang dialokasikan) - apakah Anda sekarang ingin tahu cara mengatur swap terenkripsi? Mungkin Anda bisa mengedit pertanyaan atau memulai pertanyaan baru.
thomasrutter

1
Saya masih tertarik pada gaya RAM-bagus karena saya memiliki masalah yang mirip dengan yang dijelaskan dalam pertanyaan saya bahkan ketika saya memang memiliki file swap.
Sam King

Jawaban:


2

Saya baru saja menemukan bahwa sistem saya tidak memiliki ruang swap

Jika ini benar, maka itu mungkin berkontribusi terhadap masalah tersebut.

Dengan menggunakan banyak VM dengan alokasi memori yang besar, sejumlah RAM yang biasanya lebih dari cukup untuk penggunaan normal (8GB) mulai menjadi kencang, yang berarti sistem Anda tidak akan dapat menggunakan banyak cache, dan ingin bertukar . Sekarang, jika Anda tidak memiliki swap, akan ada lebih banyak tekanan pada memori dan Anda bahkan mungkin mendapatkan tugas terbunuh karena kehabisan memori.

Swap mencoba meningkatkan stabilitas dan kinerja keseluruhan dalam situasi seperti yang telah Anda gambarkan, dengan mengalokasikan kembali beberapa data yang dialokasikan tetapi jarang digunakan dalam memori ke disk, membebaskan memori untuk data yang Anda gunakan. Menambahkan swap, jika Anda memang tidak memilikinya, akan membantu. Namun, dalam hal kinerja, Anda akan membuat lebih banyak peningkatan jika Anda juga membeli lebih banyak RAM, atau menggunakan lebih sedikit.

Pada sistem di mana Anda menjalankan VM tetapi Anda juga menggunakan desktop biasa pada host VM, Anda tidak ingin VM Anda mengambil semua RAM Anda, sebenarnya saya akan menghemat setengah RAM Anda (hingga 4GB ) untuk host, mengingat Anda menjalankan perangkat lunak pada host dan ingin responsif.

Perhatikan juga bahwa VMs memiliki inefisiensi yang melekat bukan hanya karena RAM mereka benar-benar terpisah mereka tidak berbagi cache atau buffer, tetapi mereka menjalankan seluruh OS terpisah di bawah sejumlah lapisan abstraksi. Jadi Anda selalu bisa mendapatkan efisiensi yang lebih baik jika Anda memutuskan untuk menjalankan sesuatu di host daripada di VM - meskipun jika tujuan Anda untuk menggunakan VM adalah menggunakan sistem operasi lain, ini tidak akan mungkin.

Apakah ada cara untuk memastikan bahwa UI tetap responsif ketika sistem saya meronta-ronta?

Ketika jumlah RAM yang Anda miliki adalah masalah, apa pun yang dapat Anda lakukan hanyalah peretasan - solusi sebenarnya adalah membeli lebih banyak RAM (meskipun dalam kasus Anda seperti yang saya sebutkan, Anda mungkin hanya dapat mengalokasikan lebih sedikit ke VM).

Pertanyaan Anda dimasukkan ke dalam istilah sederhana - Anda ingin UI dapat terus beroperasi dengan lancar bahkan jika IO padat. Namun, sulit untuk dijawab. Sistem Anda sudah akan melakukan ini semampu kemampuannya: operasi yang tidak memerlukan akses disk tidak akan ditunda. Jika "UI Anda gagap", itu karena proses khusus yang bertanggung jawab untuk UI itu memerlukan akses disk. Dalam situasi kehabisan memori dan di mana disk meronta-ronta, bahkan sesuatu yang biasanya sepele - seperti membaca beberapa konfigurasi dari direktori rumah Anda untuk mengetahui apa preferensi tampilan Anda - bisa lambat karena menipisnya cache disk.

Saya bisa membayangkan sesuatu seperti "bagus" untuk memori (sehingga saya bisa bagus Chrome dan VM saya)

Sebenarnya tidak ada "memori yang bagus". Akses memori sangat cepat sehingga Anda biasanya bisa mengabaikannya. Ketika Anda telah meronta-ronta, itu bukan memori, itu disk, itulah masalahnya. Ada "ionice" karena ini. Meskipun itu mungkin bukan yang saya rekomendasikan untuk masalah Anda.

Setara kasar lain dari "baik untuk memori" adalah swap - Anda tidak dapat mengontrol seberapa swappy setiap proses secara individual tetapi sistem melakukan pekerjaan yang cukup baik untuk mengerjakan proses mana yang Anda gunakan secara aktif dan karenanya merupakan prioritas yang lebih tinggi untuk dijaga RAM

Tetapi seperti yang saya katakan dan sebagai aturan emas, jika Anda kehabisan RAM, maka membeli lebih banyak RAM adalah solusinya dengan sakit kepala dan kelemahan yang paling sedikit.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.