GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Mencegah Sistem Menjadi Tidak Responsif Saat Thrashing (Out Of Ram)?

Saya memiliki RAM 8 GB, tetapi terkadang saya menjalankan beberapa VM dan proses Chrome yang cukup untuk menghabiskan sebagian besar memori saya. Itu biasanya baik-baik saja, tetapi terkadang sistem saya mulai meronta-ronta, dan sulit bagi saya untuk memulihkannya tanpa hanya menunggu keadaan menjadi lebih baik karena sebagian besar UI dibekukan.

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

Apakah ada cara untuk memastikan bahwa UI tetap responsif saat sistem saya rusak?

Terima kasih!

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

Jawaban yang Diterima:

Saya baru tahu bahwa sistem saya tidak memiliki ruang swap

Jika ini benar, maka itu mungkin berkontribusi pada masalah.

Dengan menggunakan beberapa VM dengan alokasi memori yang besar, jumlah RAM yang biasanya lebih dari cukup untuk penggunaan normal (8GB) mulai menjadi sempit, yang berarti sistem Anda tidak akan dapat menggunakan cache sebanyak itu, dan ingin menukar . Sekarang, jika Anda tidak memiliki swap, akan ada lebih banyak tekanan pada memori dan Anda bahkan dapat menghentikan tugas karena kehabisan memori.

Swap mencoba meningkatkan stabilitas dan kinerja secara keseluruhan dalam situasi seperti yang telah Anda jelaskan, 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 menggunakannya lebih sedikit.

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

Perhatikan juga bahwa VM memiliki inefisiensi yang melekat bukan hanya karena RAM mereka benar-benar terpisah, mereka tidak berbagi cache atau buffer apa pun, tetapi mereka menjalankan seluruh OS yang 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 menggunakan VM adalah untuk menggunakan sistem operasi lain, ini tidak akan mungkin.

Apakah ada cara untuk memastikan bahwa UI tetap responsif saat sistem saya rusak?

Ketika jumlah RAM yang Anda miliki bermasalah, apa pun yang dapat Anda lakukan hanyalah meretas – solusi sebenarnya adalah membeli lebih banyak RAM (walaupun dalam kasus Anda seperti yang saya sebutkan, Anda mungkin dapat mengalokasikan lebih sedikit ke VM).

Terkait:Tidak ada ruang tersisa di perangkat meskipun ada?

Pertanyaan Anda sederhana – Anda ingin UI dapat terus beroperasi dengan lancar meskipun IO sedang padat. Namun, itu rumit untuk dijawab. Sistem Anda akan sudah melakukan ini dengan kemampuan terbaiknya:operasi yang tidak memerlukan akses disk tidak akan ditunda. Jika "UI Anda gagap" itu karena proses tertentu yang bertanggung jawab untuk UI tersebut memerlukan akses disk. Dalam situasi memori rendah dan disk rusak, bahkan sesuatu yang biasanya sepele – seperti membaca beberapa konfigurasi dari direktori home Anda untuk mengetahui preferensi tampilan Anda – dapat menjadi lambat karena penipisan cache disk.

Saya dapat membayangkan sesuatu seperti memori yang “bagus” (sehingga saya dapat menggunakan Chrome dan VM saya)

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

Setara kasar lainnya dari "bagus untuk memori" adalah swap - Anda tidak dapat mengontrol seberapa swappy setiap proses secara individual tetapi sistem melakukan pekerjaan yang cukup baik untuk mengetahui proses mana yang Anda gunakan secara aktif dan oleh karena itu merupakan prioritas yang lebih tinggi untuk disimpan RAM.

Namun seperti yang saya katakan dan merupakan aturan utama, jika Anda kehabisan RAM, maka membeli lebih banyak RAM adalah solusi dengan sedikit sakit kepala dan kekurangan.


Ubuntu
  1. Bagaimana Mencegah Windows 10 Dari Merusak Superblock Ext4 Setiap Saat?

  2. Bagaimana Cara Memperbaiki Masalah "Tidak Dapat Menghitung Peningkatan" Saat Memutakhirkan Dari 12,04 Ke 12,10?

  3. Bagaimana cara mendeteksi spesifikasi chip memori RAM dari dalam mesin Linux

  1. Debian – Bagaimana Kami Memprediksi Kapan Rilis Debian Berikutnya Akan Keluar?

  2. Bagaimana menemukan informasi tentang RAM?

  3. Berapa banyak RAM yang digunakan kernel?

  1. Linux – Sistem Menggantung Saat Kehabisan Memori?

  2. Bagaimana Mencegah `ls` Dari Menyortir Output?

  3. Bagaimana Cara Memperbaiki Instalasi?