pengembangan-web-mp-pd.com

Apa itu swap memory?

Saya menggunakan RAM untuk menyimpan beberapa tabel database saya dan yang lainnya disimpan dalam hard disk.

Hari ini saya mengetahui bahwa proses saya menggunakan memori swap. Sekarang apa itu swap memory dan bagaimana saya bisa mendeteksi proses mana yang menggunakan memory swap dan bagaimana saya bisa menghentikan mereka menggunakannya?

30
developer

Jika kehabisan memori fisik, Anda menggunakan memori virtual, yang menyimpan data dalam memori pada disk. Membaca dari disk adalah beberapa urutan besarnya lebih lambat daripada membaca dari memori, jadi ini memperlambat segalanya. (Saling menukar data antara memori nyata dan memori virtual adalah "swapping". Ruang pada disk adalah "ruang swap".)

Jika aplikasi Anda "menggunakan swap", maka Anda harus menggunakan lebih sedikit memori atau membeli lebih banyak RAM.

(Swap berguna karena aplikasi yang tidak sedang digunakan dapat disimpan pada disk sampai mereka digunakan. Kemudian mereka dapat "paged in" dan berjalan normal lagi. Meskipun tidak dalam memori, OS dapat menggunakan memori itu. untuk sesuatu yang lain, seperti cache disk. Jadi ini adalah fitur yang sangat berguna, tetapi jika Anda tidak memiliki cukup memori fisik untuk menjalankan program Anda, Anda pasti membutuhkan lebih banyak memori. Untungnya, memori saat ini benar-benar sangat murah.)

45
jrockway

Komputer memiliki sejumlah memori fisik. Tetapi sebagian besar waktu kita menginginkan lebih. Jadi kami menukar beberapa memori pada disk.

Setiap kali kita membutuhkan memori itu perlu ditukar kembali ke memori (menukar beberapa bagian lainnya). Ada algoritma yang sangat cerdas untuk meminimalkan penundaan, tetapi kadang-kadang kita masih harus menunggu.

Di windows, jika Anda melihat task manager, Anda bisa menunjukkan kesalahan halaman kolom. Ini menunjukkan jumlah waktu, aplikasi meminta sepotong memori yang ada di disk dan perlu ditukar. Banyak kesalahan halaman = aplikasi lambat.

Proses ini digunakan pada beberapa tingkatan. Ringkasan dari cepat ke lambat:

  • Pada level CPU, ada register. Ini adalah memori tercepat tetapi jumlahnya terbatas.
  • Juga pada CPU ada cache memori kecil. Di sini sepotong kecil program yang sedang berjalan disimpan untuk akses cepat. Cari pada algoritma prediksi cabang jika Anda ingin tahu lebih banyak.
  • Terkadang ada cache level 2 antara CPU dan memori utama.
  • Level selanjutnya adalah memori utama (RAM).
  • Level terakhir dan paling lambat adalah disk, terkadang Anda dapat menggunakan stik USB sebagai memori tambahan.
7
Toon Krijthe
cat /proc/pid/smaps

Jika Anda tidak ingin menggunakan swap, maka jangan gunakan partisi swap (komentar di baris /etc/fstab), tetapi itu akan mencegah untuk memulai proses baru dan akan membuat malloc gagal jika Anda kehabisan memori fisik. Itu bukan ide yang baik secara umum ... tidak terlalu aman dan bahkan tidak terlalu berguna, karena OS akan menyimpan halaman panas dalam memori dan akan bertukar ke disk yang tidak digunakan baru-baru ini.

Solusi lain bisa dengan meretas basis data Anda sehingga mengunci halaman ke dalam memori (saya tahu itu bisa dilakukan, tapi saya tidak bisa memberi tahu Anda sekarang bagaimana tepatnya), tapi bagaimanapun, sepertinya database Anda akan menggunakan swapping sendiri dan mekanisme caching.

Untuk mengetahui apa itu swap dan bagaimana memori virtual bekerja ... Saya sarankan Anda untuk melihat beberapa kuliah Sistem Operasi, mungkin the MIT Open Courseware dapat membantu.

3
fortran

Saya telah menemukan sebagian jawaban. Memori Swap adalah ruang di Hard Disk komputer Anda yang Sistem Operasi akan gunakan untuk meletakkan info yang sebenarnya ada di RAM untuk membebaskannya untuk aplikasi lain. Ini harus dilakukan ketika sistem membutuhkan memori untuk proses baru dan tidak ada, jadi kita dapat melihat bahwa jika sistem kita memiliki banyak RAM mungkin tidak memerlukan memori SWAP.

[~ # ~] pembaruan [~ # ~]

Untuk mencari tahu di mana ruang Swap (atau memori virtual) Anda dapat pergi ke Task Manger (CTRL + ALT + DEL) dan hidupkan dari LIHAT -> KOLOM -> VIRTUAL MEMORY. Sekarang hitung saja perbedaan antara penggunaan memori dan memori virtual. Juga di sini adalah instruksi bagaimana melihatnya jika Anda menjalankan Vista: http://www.ehow.com/how_5067693_increase-swap-space.html

1
faya