Apa yang membuat Linux tidak responsif?
Overcommitting RAM yang tersedia, yang menyebabkan pertukaran dalam jumlah besar, pasti dapat melakukan ini. Ingatlah bahwa I/O akses acak pada HDD mekanis Anda memerlukan pemindahan kepala baca/tulis, yang hanya dapat melakukan sekitar 100 pencarian per detik.
Biasanya Linux benar-benar keluar untuk makan siang, jika Anda menggunakan RAM "terlalu banyak". Saya juga memiliki disk spinny dan RAM 8GB. Saya mengalami masalah dengan beberapa perangkat lunak dengan kebocoran memori. Yaitu. penggunaan memori mereka terus bertambah dari waktu ke waktu dan tidak pernah menyusut, jadi satu-satunya cara untuk mengontrolnya adalah dengan menghentikan perangkat lunak dan memulai ulang. Berdasarkan pengalaman yang saya alami selama ini, saya tidak terlalu terkejut mendengar penundaan lebih dari sepuluh menit, jika Anda menghasilkan 3GB+ swap.
Anda tidak akan melihat ini dalam semua kasus di mana Anda memiliki lebih dari 3GB swap. Teori mengatakan konsep kuncinya adalah meronta-ronta. Di sisi lain, jika Anda mencoba untuk beralih di antara dua set kerja yang berbeda, dan membutuhkan pertukaran 3GB masuk dan keluar, pada 100MB/s akan memakan waktu setidaknya 60 detik bahkan jika pola I/O dapat dioptimalkan dengan sempurna. Dalam praktiknya, pola I/O akan jauh dari optimal.
Setelah kesulitan yang saya alami dengan ini, saya memformat ulang ruang swap saya menjadi 2GB (beberapa kali lebih kecil dari sebelumnya), sehingga sistem tidak dapat melakukan swap secara mendalam. Anda dapat melakukan ini bahkan tanpa mengubah ukuran partisi, karena mkswap
mengambil parameter ukuran opsional.
Keseimbangan kasarnya adalah antara kehabisan memori dan mematikan proses, dan membuat sistem hang begitu lama sehingga Anda menyerah dan tetap melakukan boot ulang. Saya tidak tahu apakah partisi swap 4GB terlalu besar; mungkin tergantung apa yang Anda lakukan. Hal yang penting adalah berhati-hati saat disk mulai berputar, periksa penggunaan memori Anda, dan tanggapi dengan semestinya.
Memeriksa penggunaan memori dari aplikasi multi-proses itu sulit. Untuk melihat penggunaan memori per-proses tanpa menghitung memori bersama dua kali, Anda dapat menggunakan sudo atop -R
, tekan M dan m , dan lihat di kolom PSIZE. Anda juga dapat menggunakan smem
. smem -t -P firefox
akan menampilkan PSS dari semua proses firefox Anda, diikuti dengan baris dengan total PSS. Ini adalah pendekatan yang tepat untuk mengukur penggunaan memori total browser berbasis Firefox atau Chrome. (Meskipun ada juga fitur khusus browser untuk menampilkan penggunaan memori, yang akan menampilkan tab individual).
AFAIK, bloatware seharusnya tidak membuat OS tidak responsif, jadi saya tidak akan mempertimbangkan atau bahkan menerima bahwa bloatware adalah akar penyebab masalahnya
Anda tidak akan menyukai ini, tapi menurut saya bloatware is masalah Anda (walaupun saya tidak yakin apakah itu memori atau disk yang menjadi masalah). Sayangnya, kernel Linux sangat buruk dalam menangani situasi tekanan memori tinggi, dan diketahui pada dasarnya membutuhkan reboot setelah memori habis. Ada tiga hal yang membuat saya percaya bahwa masalah Anda adalah kehabisan sumber daya:
- Ruang disk Anda di root (/) dan DATA hampir penuh. Saya tidak yakin untuk apa Anda menggunakan DATA, tetapi saya pernah mengalami masalah sebelumnya dengan mengubah ukuran partisi root saya terlalu kecil dan sistem saya menjadi tidak dapat dioperasikan.
- Anda memiliki tekanan memori tinggi, artinya RAM Anda hampir penuh. Ketika RAM mulai penuh, Anda akan mulai mendapatkan kesalahan halaman. Kesalahan halaman terjadi ketika kernel tidak dapat mengalokasikan cukup memori untuk suatu proses dan sebagai gantinya harus menggunakan beberapa sistem ruang swap yang jauh lebih lambat. Ini membawa kita ke pengamatan terakhir kita:
- Ruang tukar Anda hampir penuh. Jelas ada tekanan memori yang tinggi pada sistem Anda karena RAM dan swap hampir penuh.
Pada dasarnya, gabungkan ketiganya dan sistem Anda tidak memiliki sumber daya yang cukup untuk melakukan banyak hal. Adapun sangat disayangkan betapa buruknya Linux menangani situasi memori rendah (dibandingkan dengan, katakanlah, kernel NT di Windows) tetapi tampaknya memang begitu. Anda dapat menemukan lebih banyak diskusi di utas Reddit ini dan milis tertautnya.
Adapun cara memperbaiki situasi Anda, menurut saya meningkatkan ukuran swap Anda adalah ide yang bagus, tetapi karena Anda kekurangan ruang disk, itu akan menjadi masalah. Kecuali jika server Minecraft Anda memiliki banyak orang, menurut saya akan aman untuk mengurangi memorinya menjadi sekitar 1024m (Saya pribadi menggunakan 1024m dengan sekitar 10 orang dan berfungsi dengan baik). Saya juga akan menggunakan keran atau kertas untuk server Minecraft Anda karena cenderung lebih berkinerja.
Semoga berhasil!
Apa output dari free -m
? Jumlah RAM yang Anda miliki tidak ada gunanya jika kami tidak tahu berapa banyak yang Anda gunakan. Itu dan saya tertarik untuk mengetahui berapa banyak ruang swap yang digunakan.
Saya pikir Anda telah menjawab pertanyaan Anda sendiri. Membuka "banyak tab" di browser Anda pasti dapat memperlambat sistem Anda jika Anda tidak pernah menutupnya, karena tab tersebut akan terus menghabiskan memori; ketika sistem Anda macet, berapa banyak yang Anda buka sekaligus?
Ini juga masuk akal jika sistem Anda membeku dari tugas intensif memori lainnya seperti "menghasilkan grafik yang sangat besar dari diagram UML yang sangat kompleks". Itu benar-benar akan memperlambat sistem Anda saat menghasilkan grafik, jadi itu tidak mengejutkan.
Kedengarannya seperti inilah cara sistem Anda seharusnya berperilaku. Entah itu atau saya melewatkan sesuatu di sini.
Omong-omong, statistik HDD tidak menjadi masalah jika sistem Anda menjadi tidak responsif karena kurangnya memori hampir selalu menjadi penyebabnya.