Memori virtual adalah salah satu hal yang mendukung OS modern tetapi biasanya, Anda tidak terlalu memikirkannya kecuali Anda memiliki masalah. Distro Linux meminta Anda untuk mengatur ruang memori virtual Anda (partisi swap) selama instalasi, tetapi kebanyakan pemula tidak menyadari betapa bergunanya itu.

Inilah semua yang perlu Anda ketahui tentang memori virtual di Linux.

Apa itu Memori Virtual?

Memori virtual adalah cara untuk merepresentasikan memori Anda yang diabstraksikan dari memori fisik pada mesin Anda. Itu menggunakan RAM dan ruang penyimpanan Anda, baik itu di hard drive tradisional atau SSD.

Di Linux, ini dilakukan di tingkat kernel dan perangkat keras. CPU memiliki perangkat keras yang disebut Memory Management Unit (MMU) yang menerjemahkan alamat memori fisik menjadi alamat virtual. Alamat-alamat ini tidak tergantung pada tempat mereka secara fisik berada di mesin. Ruang alamat ini dikenal sebagai "halaman" dan bisa berada di RAM atau di hard drive atau SSD Anda. OS melihat alamat ini sebagai satu kumpulan besar memori, yang dikenal sebagai "ruang alamat."

instagram viewer

Memori virtual mengambil keuntungan dari fakta bahwa tidak semua memori yang digunakan secara teori digunakan sepanjang waktu. Program dalam memori dipecah menjadi halaman-halaman dan bagian-bagian yang dianggap tidak perlu oleh kernel "diganti," atau dipindahkan ke hard drive. Saat dibutuhkan, mereka dapat "ditukar", atau dibawa kembali ke RAM.

Ruang yang digunakan untuk memori virtual pada drive dikenal sebagai "penyimpanan cadangan", atau "ruang swap". Di dunia Windows, itu biasanya diimplementasikan sebagai file, yang dikenal sebagai "file swap". Ini juga memungkinkan untuk melakukan ini di Linux, tetapi jauh lebih umum ke gunakan partisi disk khusus.

Swap file di Linux biasanya dicadangkan untuk sistem minimal atau tertanam, dan yang terakhir umum untuk berjalan tanpa memori virtual sepenuhnya karena OS yang disematkan harus kecil.

Hasil dari memori virtual adalah memungkinkan untuk menjalankan program besar dengan menggunakan lebih banyak memori daripada RAM fisik di mesin Anda, mirip dengan bagaimana kartu kredit memungkinkan Anda melakukan pembelian besar dengan lebih banyak uang daripada yang Anda miliki di bank Anda Akun. Seperti kartu kredit, memori virtual berguna saat Anda membutuhkannya tetapi Anda tidak ingin memperpanjang penggunaannya.

Memori virtual juga memungkinkan pengembang untuk membuat aplikasi tanpa harus mengetahui bagaimana memori komputer diatur.

Kelemahan utama secara historis dengan memori virtual adalah bahwa hard drive lebih lambat daripada RAM. Jika mesin tidak memiliki cukup RAM, sistem dapat terus bertukar halaman masuk dan keluar tanpa henti, proses yang dikenal sebagai "thrashing." Ini adalah sedikit masalah pada PC modern dengan lebih banyak RAM dan SSD yang lebih cepat menggantikan hard drive mekanis, tetapi itu masih sesuatu yang harus diperhatikan dari.

Partisi Tukar Linux

Seperti disebutkan sebelumnya, metode biasa untuk menyiapkan memori virtual di Linux adalah dengan menggunakan partisi disk khusus. Utilitas instalasi akan memeriksa perangkat keras Anda dan mengusulkan skema partisi yang menyertakan partisi swap.

Anda juga dapat menambahkan partisi swap setelah instalasi. Jika Anda ingin menambahkan partisi baru ke drive yang ada, Anda harus gunakan alat partisi tak rusak seperti GParted. Pastikan Anda telah memilih "Linux swap" sebagai sistem file untuk partisi Anda.

Cadangkan data penting sebelum mempartisi ulang drive Anda.

Setelah Anda membuat partisi, gunakan perintah mkswap untuk memformat partisi Anda.

sudo mkswap /dev/sdX

Sekarang Anda harus mengedit /etc/fstab sebagai root untuk menambahkan partisi swap Anda. Baris ini, ditambahkan ke file, akan mengatur partisi swap untuk dipasang pada saat boot:

/dev/sdX tidak ada default swap 0 0

Sekarang gunakan swapon perintah untuk mengaktifkan ruang swap baru Anda, di mana sdX adalah nama partisi swap Anda:

sudo swapon /dev/sdX

Menggunakan Swap File di Linux

Sangat mudah untuk mengatur file swap di Linux menggunakan baris perintah. Anda mungkin ingin melakukan ini jika Anda tidak ingin repot mempartisi ulang drive atau mengedit /etc/fstab. Salah satu caranya adalah dengan menggunakan salah:

Misalnya, untuk membuat file swap 2GB:

sudo fallocate -l 2G /path/ke/swapfile

Sebagai alternatif, Anda dapat menggunakan perintah dd untuk membuat file swap.

sudo dd jika=/dev/nol dari=/path/ke/swapfile bs=1024 hitung =2048

Pastikan Anda menggunakan perintah dd dengan benar, karena kesalahan infile dan outfile dapat menyebabkan hilangnya data. fallocate adalah metode yang disukai untuk alasan ini.

Itu /dev/zero perangkat adalah perangkat khusus yang menghasilkan "0." Apa yang dilakukan perintah dd ini adalah membuat file blok dua gigabyte kosong menggunakan blok 1024 kilobyte yang cocok untuk digunakan sebagai ruang swap.

Anda kemudian dapat menggunakan mkswap dan swapon perintah dengan file swap seperti yang Anda lakukan dengan partisi swap:

sudo mkswap /path/ke/swapfile
sudo swapon /path/ke/swapfile

Anda mungkin bertanya-tanya kapan Anda harus menggunakan file swap atau partisi khusus untuk ruang swap Anda. Pilihannya mudah: dalam kebanyakan situasi, Anda harus menggunakan partisi. Ini adalah pilihan terbaik untuk desktop atau server Linux. Skema partisi yang disarankan oleh penginstal biasanya memadai pada desktop Linux pengguna tunggal.

Anda mungkin ingin menggunakan file swap jika Anda menjalankan Linux di mesin virtual, pada sistem tertanam kecil, atau Anda hanya tidak ingin mempartisi ulang sistem Linux yang ada.

Berapa Banyak Ruang Tukar?

Selama bertahun-tahun, saran standar untuk berapa banyak ruang swap yang dibutuhkan adalah dua kali RAM fisik. Dengan drive besar dan jumlah memori yang bahkan dimiliki oleh PC termurah, aturan ini mungkin dipertanyakan.

Pada banyak sistem, jika Anda memeriksa top atau htop, Anda bahkan mungkin memperhatikan bahwa ruang swap Anda bahkan tidak digunakan sama sekali jika Anda mengatur sistem Anda dengan cara ini.

Namun, memori fisik dua kali lipat adalah titik awal yang baik dan polis asuransi jika Anda menuntut memori yang lebih besar. Anda dapat membuat perubahan pada sistem Anda jika diperlukan. Jika sistem Anda menggunakan semua RAM Anda, komputer mungkin mengalami masalah kinerja saat menggunakan memori virtual.

Komputer dapat terus bertukar masuk dan keluar, sebuah proses yang dikenal sebagai thrashing, membuatnya tampak tidak responsif. Jika Anda masih memiliki hard drive mekanis, Anda sering dapat mendengarnya terus-menerus mengakses.

Ini jauh lebih sedikit masalah hari ini karena jumlah RAM bahkan pada PC termurah lebih dari cukup, ditambah kecepatan SSD jauh lebih cepat daripada hard drive lama. Itu masih sesuatu yang harus Anda sadari.

Cara termudah untuk memperbaikinya adalah dengan menambahkan lebih banyak RAM ke mesin Anda. Jika tidak memungkinkan, Anda dapat mencoba menyesuaikan "swappiness" kernel Linux.

Nomor swappiness menentukan seberapa banyak kernel dicelupkan ke dalam memori virtual. Ini berkisar dari 0 hingga 100. Menyetelnya ke 0 berarti Linux tidak akan bertukar sama sekali, sementara pada 100, Linux akan bertukar di setiap kesempatan. Default pada sebagian besar sistem adalah 60.

Untuk mengubah swappiness sementara, gunakan perintah sysctl:

sudo sysctl vm.swappiness=20

"20" dalam perintah itu akan menjadi nomor swappiness sampai Anda reboot. Untuk mengubahnya secara permanen, edit /etc/sysctl.conf file sebagai root dan letakkan baris, "vm.swappiness=[nomor swappiness]", di mana "[nomor swappiness]" adalah nomor swappiness yang Anda inginkan. Ini akan menjadi jeda sampai Anda dapat menginstal lebih banyak RAM.

Memori Virtual Menjaga Sistem Linux Anda Berjalan dengan Lancar

Memori virtual adalah komponen OS modern, termasuk Linux, yang membuat komputer Anda berjalan dengan lancar. Anda dapat menggunakan file swap, tetapi metode yang biasa digunakan adalah partisi khusus. Anda tidak perlu terlalu memikirkannya, tetapi partisi swap Linux dan file swap mudah diatur dan dipecahkan.

Banyak saran ini juga berlaku untuk sistem lain, termasuk Windows, meskipun metode untuk menyiapkan memori virtual berbeda.