GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Swap digunakan ketika banyak memori kosong yang tersisa?

Solusi 1:

Ini sangat normal.

Saat startup sistem, sejumlah layanan dimulai. Layanan ini menginisialisasi dirinya sendiri, membaca file konfigurasi, membuat struktur data, dan sebagainya. Mereka menggunakan beberapa memori. Banyak dari layanan ini tidak akan pernah berjalan lagi selama sistem aktif karena Anda tidak menggunakannya. Beberapa dari mereka mungkin berjalan dalam hitungan jam, hari, atau minggu. Namun semua data ini ada dalam memori fisik.

Tentu saja, sistem tidak dapat membuang data ini. Itu tidak dapat membuktikan bahwa itu benar-benar tidak akan pernah diakses. Salah satu layanan itu, misalnya, mungkin yang memberi Anda akses jarak jauh ke kotak. Anda mungkin tidak menggunakannya dalam seminggu, tetapi jika Anda menggunakannya, itu akan bekerja lebih baik.

Tetapi sistem tahu bahwa mungkin ingin menggunakan memori fisik itu untuk hal-hal seperti cache disk atau dengan cara lain yang akan meningkatkan kinerja. Jadi itu melakukan pertukaran oportunistik. Ketika tidak ada yang lebih baik untuk dilakukan, ia menulis data yang sudah lama tidak digunakan ke disk, menggunakan ruang swap. Namun, itu masih menyimpan halaman dalam memori fisik. Jadi mereka tetap dapat diakses tanpa harus menukarnya.

Sekarang, jika nanti sistem membutuhkan memori fisik itu untuk sesuatu yang lain, ia dapat dengan mudah membuang halaman-halaman itu karena telah menulisnya untuk ditukar. Ini memberi sistem yang terbaik dari kedua dunia. Data tersebut masih tersimpan di memori, sehingga dapat diakses tanpa harus membacanya dari disk. Tetapi jika sistem membutuhkan memori itu untuk tujuan lain, ia tidak perlu menuliskannya terlebih dahulu. Kemenangan besar di sekitar.

Solusi 2:

Ini dapat terjadi jika di masa lalu Anda membutuhkan lebih banyak memori daripada RAM fisik di mesin. Pada saat itu beberapa data akan ditulis ke ruang swap.

Ketika nanti memori dibebaskan, data dari swap tidak secara otomatis dibaca kembali ke dalam RAM:ini hanya terjadi ketika data di swap benar-benar dibutuhkan oleh beberapa proses. Ini sangat normal.

Adapun proses mysql Anda:ini semua tergantung pada jenis kueri yang Anda jalankan. Dalam teori 2, kueri yang sangat kompleks mungkin cukup untuk mendapatkan beban seperti itu, terlepas dari jumlah pengguna Anda. Anda dapat mengaktifkan log kueri yang lambat untuk mendapatkan lebih banyak wawasan tentang kueri mana yang memuat intensif.

Solusi 3:

Anda juga dapat mengubah perilaku ini dengan sysctl -w vm.swappiness=10 , yang akan sangat mengurangi penggunaan swap hingga benar-benar dibutuhkan.

Sedangkan untuk MySQL, apakah Anda setidaknya telah melakukan pengujian konfigurasi dasar menggunakan skrip tuning-primer.sh?


Linux
  1. Pemantauan dan manajemen memori

  2. Mengapa menggunakan shm_open?

  3. Bagaimana cara mendapatkan% penggunaan memori dengan vmstat?

  1. Mengapa Unix masih digunakan jika Linux didasarkan padanya, dan Linux gratis?

  2. Mengapa menggunakan innodb_file_per_table?

  3. Pembunuh OOM membunuh banyak hal dengan banyak (?) RAM gratis

  1. Linux – Penggunaan Memori Nyata?

  2. gratis:perintah tidak ditemukan

  3. Mengapa ukuran partisi swap harus dua kali lipat dari ukuran RAM?