Saya menggunakan komputer saya untuk pemrograman ilmiah. Ini memiliki 8GB
RAM yang sehat dan 12GB
ruang swap. Seringkali, karena masalah saya bertambah besar, saya melebihi semua RAM yang tersedia. Alih-alih crash (yang lebih disukai), tampaknya Ubuntu mulai memuat semuanya ke swap, termasuk Unity dan terminal terbuka apa pun. Jika saya tidak menangkap program run-away tepat waktu, tidak ada yang bisa saya lakukan selain menunggu - dibutuhkan 4-5 menit untuk beralih ke command prompt misalnya. Ctrl-Alt-F2
di mana saya bisa membunuh proses yang menyinggung.
Karena kebodohan saya sendiri berada di luar jangkauan forum ini, bagaimana saya bisa mencegah Ubuntu dari crash melalui thrashing ketika saya menggunakan semua memori yang tersedia dari satu program yang menyinggung?
Eksperimen di rumah *!
Buka terminal, luncurkan python
dan jika Anda telah numpy
menginstal coba ini:
>>> import numpy
>>> [numpy.zeros((10**4, 10**4)) for _ in xrange(50)]
* Peringatan: mungkin memiliki efek buruk, memonitor proses melalui iotop
atau top
untuk membunuhnya tepat waktu. Jika tidak, sampai jumpa setelah reboot.
Cgroups harus memungkinkan Anda membatasi penggunaan memori Anda pada basis per proses.
https://en.wikipedia.org/wiki/Cgroups
http://www.mjmwired.net/kernel/Documentation/cgroups/memory.txt
Komputasi ilmiah terkenal membutuhkan banyak memori, dengan mem-sandbox aplikasi Anda dalam cgroup, sisa proses tidak boleh menjadi korban karena tekanan memori akan berkurang.
Atau, VM dapat digunakan sebagai semacam batas keras karena aplikasi hanya dapat menggunakan memori yang didelegasikan ke mesin virtual, dengan mengorbankan kinerja tentu saja. Namun VM jauh lebih mudah untuk dikonfigurasikan untuk yang belum tahu bila dibandingkan dengan mengatur dan memelihara cgroup.
Keputusan keputusan :) Semoga beruntung!
sumber