Saya pikir masalah cegukan belum tentu disebabkan oleh pertukaran. Jika suatu program memainkan sesuatu, Linux harus memperhatikan ini dan tidak menukarnya. Program yang tidak melakukan banyak hal adalah yang pertama ditukar. Anda dapat memeriksa apakah program benar-benar ditukar dengan melihat RSS
/RES
bidang dari ps atau atas . RSS
adalah ukuran tetapan residen, memori fisik yang tidak ditukar yang digunakan tugas (dalam kiloBytes).
Saya pikir masalah Anda kemungkinan besar disebabkan oleh penjadwalan CPU dan I/O yang tidak tepat dan sedikit ketidakefisienan Rhythmbox yang membuatnya sensitif terhadap beban sistem yang tinggi. Prioritas CPU dapat diubah dengan perintah bagus dan renice . Prioritas I/O dapat diubah dengan ionice memerintah. Hanya pengguna super yang dapat menggunakan prioritas tinggi. Anda juga harus tahu bahwa orang-orang kernel Linux mencoba meningkatkan daya tanggap sistem desktop dengan berbagai tambalan latensi rendah, jadi Anda dapat mempertimbangkan untuk menggunakannya. Salah satunya adalah tambalan ~200 baris yang ditulis oleh Mike Galbraith yang bahkan mengesankan Linus. Alternatif untuk patch ini adalah trik cgroups Lennart Poettering yang menurut saya akan menjadi default di Fedora 15.
Lagi pula, tanpa tambalan itu ada dua opsi:memulai program dengan prioritas tinggi atau mengubahnya setelah itu. Untuk opsi pertama, Anda dapat menggunakan skrip pembungkus di sekitar Rhythmbox:
#!/bin/sh
# Run Rhytmbox with high CPU and I/O priorities
nice -n -10 ionice -c 1 -n 1 su -l -c rhythmbox alexei
Anda harus menjalankannya sebagai root. Jika Anda tidak ingin masuk sebagai root hanya untuk memulai ini, Anda dapat menggunakan su
atau sudo
.
Untuk mengubah prioritas setelahnya, jika Anda terlalu malas untuk login sebagai root untuk mengubahnya, Anda dapat mencoba menggunakan cron job yang berjalan setiap 5 menit dan menetapkan prioritas rhythmbox
proses, tetapi saya tidak akan merekomendasikan melakukan ini:
#!/bin/sh
renice -n -10 -p `pidof rhythmbox`
ionice -c 1 -n 1 -p `pidof rhythmbox`
Jawaban singkat:Anda tidak bisa, dan tidak boleh.
Dahulu kala, file yang dapat dieksekusi menghargai bit lengket +t
yang akan memberi tahu kernel untuk tidak bertukar, tetapi hari ini diabaikan.
Jika kernel memutuskan untuk menukar, itu pasti memiliki alasan yang sah. Linux sangat agresif dalam penggunaan memori, karena RAM yang tidak digunakan adalah sumber daya yang terbuang percuma.
Jika Anda benar-benar tidak ingin menukar, dapatkan lebih banyak RAM, atau cukup # swapoff -a
(tidak disarankan, dapat membuat sistem Anda tidak dapat digunakan jika Anda sudah mengalami masalah).
Shouldn't
berlaku saat Anda mengembangkan beberapa aplikasi dan tidak ingin aplikasi tersebut ditukar sama sekali. Lihatlah posting ini di stackoverflow.
Ada beberapa cara untuk melakukannya. Anda dapat mencoba untuk mencoba "mengatakan" agar Linux bekerja lebih sedikit dengan swap (umumnya):
echo 10 > /proc/sys/vm/swappiness
Dari :https://www.kernel.org/doc/Documentation/sysctl/vm.txt
pertukaran
Kontrol ini digunakan untuk menentukan seberapa agresif kernel akan menukar halaman memori. Nilai yang lebih tinggi akan meningkatkan agresivitas, nilai yang lebih rendah akan mengurangi jumlah swap.
Nilai defaultnya adalah 60.
Pilihan lainnya adalah menggunakan cgroups kernel manager , ini khusus per proses tetapi Anda akan memiliki beberapa "pekerjaan" yang harus dilakukan:Dijawab di sini:https://unix.stackexchange.com/questions/10214/per-process-swapiness-for -linux#10227