Friday, December 6, 2013

Yang Harus Diketahui tentang Swap

Saat melakukan pemasangan GNU/Linux seperti Sundara OS, sudah pasti kita diminta untuk mengalokasikan partisi swap khusus selain partisi untuk sistem GNU/Linuxnya sendiri. Tapi, apakah kita sudah mengetahui apakah itu swap dan untuk apa dibuat? Apakah partisi swap itu benar-benar dibutuhkan?

Apa itu swap?

Saat melakukan proses multitasking, sistem operasi bisa kehabisan memori fisik (RAM fisik), sistem operasi tidak bisa membuat proses baru atau mengalokasikan memori baru pada proses yang sudah berjalan. Untuk mengatasi masalah ini, dibutuhkan ruang block khusus pada penyimpanan lokal (biasanya berupa harddrive) yang diperlakukan sebagai area pemegang sementara bagi proses yang tidak berjalan secara aktual pada suatu saat. Sistem operasi "men-swap" proses yang tidak aktif tersebut keluar dari memori dan memasukannya ke dalam hard disk. Hal ini mampu membebaskan memori untuk pekerjaan yang baru. Saat proses yang  tidak aktif tersebut aktif kembali, dia akan di-swap balik dari penyimpanan lokal ke memori. Prosedur seperti ini disebut dengan swapping.

Apakah ruang swap itu benar-benar dibutuhkan? 


Apakah secara teknis ruang swap itu benar-benar dibutuhkan? Ya, walaupun proses swapping itu memperlambat komputer (mengingat proses baca dan tulis ke  hard disk lebih lambat dibandingkan ke RAM) dan memiliki memori fisik pada mesin adalah solusi paling baik untuk menghindari swapping, terdapat beberapa keadaan logis yang menjadikan swapping menjadi hal yang diperlukan. Sebagai contoh, selama pemuatan sistem (system boot), bisa saja ada proses yang berjalan (dan mengonsumsi memori sistem) kemudian secara efektif kemudian sleep untuk beberapa periode waktu yang sangat lama. Atau memori yang dialokasikan, ditulis dan kemudian tidak pernah digunakan lagi. Di saat seperti ini, algoritma swapping akan mulai memindahkan memori ke hard disk sehingga membebaskan memori sistem yang berharga. Hal ini jelas memastikan bahwa jumlah maksimal RAM dapat tersedia sepanjang waktu sehingga meningkatkan kinerja sistem.
Pada mesin yang tidak memiliki RAM fisik yang cukup untuk segalanya untuk berada di memori maka penggunaan ruang swap sangat penting!

Sebagai pelengkap, ada baiknya menyebutkan bahwa Linux juga memiliki subsistem yang disebut  OOM (Out-Of-Memory) Killer , yang akan mulai membunuh proses untuk membebaskan sumber daya,  bukan malah menghentikan kernel saat kehabisan memori. Aksi seperti ini dapat dikonfigurasi.

Berapa besar ruang swap yang harus dialokasikan?


Versi lama dari Sistem Operasi jenis Unix (seperti Sun OS dan Ultrix) membutuhkan suatu ruang swap dengan besar dua atau tiga kali ukuran memori fisik. Implementasi modern (seperti pada Linux) tidak membutuhkan sebanyak itu, tetapi cara itu tetap bisa kita gunakan juga.

Maka, saran terbaik adalah seperti ini:
  1. Untuk sistem desktop, gunakan ruang swap dua kali memori sistem;
  2. Untuk server, gunakan jumlah swap yang lebih kecil (katakanlah setengah dari memori fisik) sehingga kita dapat lebih fleksibel untuk melakukan proses swapping saat dibutuhkan, tetapi awasi jumlah penggunaan ruang swap yang terjadi dan upgrade RAM anda jika dibutuhkan.
  3. Untuk desktop yang lebih tua (katakanlah hanya memiliki memori 128 MB) gunakan sebanyak mungkin swap yang bisa diberikan (katakanlah 1 GB).

Menambahkan swap tanpa memperluas partisi swap

Ada dua cara yang dapat digunakan untuk menambahkan swap tanpa harus memperluas partisi swap yang telah ada: cara pertama adalah dengan menggunakan partisi swap pada drive yang lain, yang kedua adalah dengan menggunakan berkas swap.

Untuk menggunakan hard drive yang lain, buatlah sebuah partisi dengan jenis "Linux swap" (code 82) kemudian jalankan perintah "mkswap" untuk mempersiapkan ruang swap.

mkswap /dev/sdb2

Yang mana /dev/sdb2 adalah nama partisi yang dibuat. Untuk langsung menggunakan ruang swap gunakan perintah "swapon":

swapon /dev/sdb2

Gunakan "swapon -s" untuk mendapatkan daftar dari ruang swap yang saat ini dipakai. Untuk menambahkan ruang swap secara permanen ke sistem, sunting berkas /etc/fstab dengan menambahkan baris seperti ini:

/dev/sdb2       none    swap    sw      0       0

Jika sistem Anda menggunakan penanda khusus pada disk, gunakan perintah "blkid" untuk menampilkan daftar penanda dari disk. Baris untuk mengaitkan ruang swap pada berkas /etc/fstab akan terlihat semisal ini:

UUID=036da155-1ea1-4392-b8d4-700f65aa1ead  none  swap  sw  0  0

Cara yang kedua, yaitu menggunakan berkas untuk swap, kita harus membuat berkas kosong yang relatif besar (menggunakan perintah "dd") pada sistem berkas yang akan digunakan untuk swapping. Sebagai contoh kita memakai berkas dengan ukuran 1 GB, ketikkan:

dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576

Sebagaimana partisi swap tambahan, berkas ini sekarang harus dipersiapkan dengan mkswap kemudian dengan swapon. Selain itu juga harus ditambahkan pada berkas /etc/fstab . Caranya persis seperti di atas, tetapi kita ganti /dev/sdb2 dengan /tempat/berkasswap sebagai parameter ruang swap.

Swappiness


Kernel linux dapat dioprek sedemikan rupa untuk menetapkan seberapa agresif dia harus mencoba untuk men-swap proses keluar dari memori. Kecenderungan ini dikendalikan oleh variabel kernel yang dinamakan swappiness. Nilai 0 swappiness berarti kernel akan mengindari swapping sebisa mungkin, sementara nilai 100 berarti kernel akan secara agresif dalam menggunakan ruang swap. Pengaturan bawaan pada banyak distribusi GNU/Linux adalah 60. Kita bisa mengubahnya secara dinamis menggunakan perintah ini:

sudo sysctl vm.swappiness=10

Untuk mengubah secara permanen, kita harus mengubah (atau menambahkan jika belum ada) variabel vm.swappiness pada berkas /etc/sysctl.conf.




3 comments:

  1. Terima kasih infonya , saya baru mengerti fungsi dari swap.
    Tapi boleh tanya , menambahkan swap tanpa memperluas partisi swap itu maksudnya gimana ? saya masih bingung.
    Di PC saya swapnya 1.8 GB apakah menambahkan swap berarti menambahkan kapasitas dari 1.8 GB menjadi lebih atau gmana ?
    dan maksudnya memperluas patisi swap itu gmana ?
    Mohon penjelasannya !

    ReplyDelete
  2. "Untuk server, gunakan jumlah swap yang lebih kecil (katakanlah setengah dari memori fisik) sehingga kita dapat lebih fleksibel untuk melakukan proses swapping saat dibutuhkan, tetapi awasi jumlah penggunaan ruang swap yang terjadi dan upgrade RAM anda jika dibutuhkan"
    Mohon lebih di jelaskan gan.

    ReplyDelete
  3. Kalau di PC sy di Install Ubuntu Apa Harus nambahin Swap..??

    Asus X302LA-FN205D
    Procesor-Intel Core i5 4005U
    Internal-500 GB HDD
    RAM-4 GB

    ReplyDelete