kswapd0 mengambil 99,9% dari CPU saya sebagai top menunjukkan kepada saya, masalah muncul hari ini ketika bermain game dan pertama kali hilang setelah 6 menit dan sekarang telah melakukannya selama sekitar 20 menit. Bagaimana ini diperbaiki dan apa yang menyebabkan ini?
46
Jawaban:
Proses kswapd0 adalah proses yang mengelola memori virtual. Mesin Anda harus memiliki RAM, SWAP, dan EXT4 pada HDD / SSD Anda. Ext4 adalah tempat semuanya disimpan, dan selalu lebih lambat untuk diakses daripada RAM. RAM seperti ruang berjalan setengah jalan bagi program untuk mengakses informasi dengan cepat. Sebagian besar komputer memiliki setidaknya 4GB RAM, yang dalam kondisi normal cukup banyak. Saat bermain game, bagaimanapun, Anda dapat kehabisan ruang RAM, di situlah SWAP masuk.
SWAP adalah RAM palsu yang terletak di HDD / SSD Anda di sebelah EXT4 Anda. Ini lebih cepat untuk diakses daripada EXT4, tetapi jauh lebih lambat dari RAM yang sebenarnya. Ketika kehabisan memori, kswapd0 memindahkan program yang tidak Anda gunakan / tidak gunakan sebanyak program lain ke SWAP, yang menyebabkan keterlambatan ekstrem pada proses tersebut. Jika game Anda membutuhkan RAM 5GB, 1GB paling tidak akan berada di SWAP. Itu berarti ketika mencoba mengakses informasi itu, ia harus menunggu lebih lama untuk mendapatkannya.
Seluruh proses ini menyebabkan penggunaan CPU yang ekstrem, memindahkan informasi dari dan ke SWAP dan RAM dan menangani permintaan informasi secara bersamaan. Bagaimana cara mengatasi masalah ini?
Katakan kswapd0 untuk hanya memindahkan barang ke SWAP saat Anda kehabisan RAM. Ini adalah metode tunggal paling efektif untuk menyelesaikan masalah SWAP. Menjalankan
echo vm.swappiness=0 | sudo tee -a /etc/sysctl.conf
di mana
0
persen yang tersisa dari100
mana SWAP harus digunakan (ketika Anda memiliki 0% RAM yang tersisa, SWAP akan mulai mengambil data). Anda juga dapat mengedit /etc/sysctl.conf sesuai dengan keinginan Anda alih-alih menambahkan perintah ini ke akhir setiap kali menggunakan gedit atau nano atau apa pun, pastikan untuk sudo, file ini dimiliki oleh root. Reboot dan Anda siap!Itu yang terbaik yang bisa Anda lakukan. Orang lain mungkin mengatakan menonaktifkan swap sepenuhnya, tapi itu berbahaya dan saya TIDAK akan merekomendasikan itu. Itu dapat menyebabkan seluruh sistem membeku jika ada kebocoran memori atau terlalu banyak aplikasi yang berjalan. Sadarilah bahwa SWAP adalah failafe yang aman untuk RAM. Ini jelas tidak secepat atau seefisien RAM, tetapi lebih baik daripada Window's Pagefile! (yang mencapai tujuan yang sama)
EDIT: Jika Anda tertarik untuk mempelajari lebih lanjut tentang SWAP, lihat di sini .
sumber
kwapd0
hilang. Terima kasih.kswapd0 beroperasi pada 99,9% dari satu CPU tetapi sebenarnya tidak bertukar sama sekali
Bagi saya itu terjadi di Ubuntu 14.04 dengan kernel 3.19.0-50-generic (dan sebelumnya) berjalan di VMware vm. Saya tidak tahu, apa yang membuatnya muncul, tetapi itu datang selama waktu siaga.
top
menunjukkan:Solusi sementara
reboot memecahkan masalah - sementara.
mengikuti jawaban di serverfault (kswapd sering menggunakan CPU 100% saat swap digunakan) di sana pengaturan yang sama pada sistem saya:
solusinya sebenarnya
# echo 1 > /proc/sys/vm/drop_caches
:sekarang baik-baik saja:
Solusi permanen (dapat ditemukan)?
tetapi karena alasan sebenarnya belum diketahui, dan saya tidak mendenda penjelasan yang sesuai di internet, ini bukan solusi permanen. Sebenarnya, jawaban yang dipilih bisa menjadi solusi permanen. Saya hanya ingin menambahkan ini untuk referensi di masa mendatang, karena reboot (untuk membuat sysctl berlaku) tidak selalu mungkin.
Solusi lain mungkin untuk mengatur THP ke salah satu
madvice
ataunever
(lihat komentar poige untuk jawabannya , Bagaimana cara memodifikasi "/ sys / kernel / mm / transparent_hugepage / diaktifkan" dan Manual MongoDB yang direferensikan tentang Nonaktifkan Halaman Besar Hilang (THP) )pekerjaan cron
Saya telah mengatur batch berikut sebagai tugas cron sebagai solusi "permanen":
dipanggil dengan
16,04 14,04 swap
sumber