Wednesday, February 18, 2015

Nilai Swappiness Optimal

RAM
RAM, (guvnr.com)

Swap Memory

Swap adalah bagian dari sistem operasi berbasis Linux yang berfungsi sebagai virtual memory. Pada sistem operasi Windows, kita mengenalnya dengan istilah page file. Virtual memory ada untuk membantu kerja dari RAM atau Random Access Memory dalam beberapa kasus.

Swap space biasanya terdiri dari sebuah atau beberapa buah partisi tersendiri dari sebuah harddisk, tetapi swap file juga bisa jadi berupa file yang tersimpan dalam suatu partisi.

Untuk mengecek penggunaan swap, anda dapat menjalankan perintah :
$ cat /proc/swaps
$ free

Keterangan :

  • cat /proc/swaps, digunakan untuk mengetahui pada device mana swap aktif.
  • free, digunakan untuk melakukan pengecekan kondisi memory, cache dan swap.
Output :
Swap usage
Penggunaan swap, (dokumentasi pribadi)

Cara Kerja Swap

Virtual memory ini akan bekerja jika ada suatu aktifitas proses yang sedang berjalan, namun tidak banyak digunakan (lebih banyak idle). Agar tidak terlalu lambat ketika akan digunakan kembali, sistem operasi tidak mematikan proses tersebut, melainkan memindahkannya ke virtual memory sehingga RAM dapat kembali digunakan untuk proses yang lain.

Selain itu, virtual memory juga akan bekerja ketika RAM hampir penuh dan memasukkan sebagian dari proses yang sedang idle ke virtual memory untuk menyediakan ruang bagi proses baru yang akan dijalankan.
How Swap Works
How Swap Work, (thetechnicalstuff.com)
Ketika proses yang sebelumnya berada pada virtual memory atau swap diakses kembali, proses tersebut akan dipindahkan kembali ke RAM dan memasukkan sebagian proses yang idle dari RAM ke virtual memory atau swap.

Tentu saja hal ini akan sangat terasa jika anda menggunakan RAM berukuran kecil dan kecepatan akses harddisk yang lambat. Hal ini terjadi karena harddisk memiliki kecepatan akses yang jauh lebih lambat ketimbang RAM. Saat ini sudah ada harddisk yang memiliki kecepatan akses sangat tinggi, yaitu : SolidState Disk (SSD). SSD ini tidak menggunakan piringan (disk), tetapi menggunakan memori elektrik, sehingga kecepatan aksesnya tinggi.

Mengoptimalkan Kerja Swap

Setelah membaca penjelasan di atas, mungkin anda akan bertanya "Bagaimana mengoptimalkan kerja swap di Linux?" atau "Kenapa Linux saya lambat? Sedangkan di Windows terasa cepat dengan hardware yang sama".

Berapa Ukuran RAM Anda ?

Berapa ukuran RAM yang terinstall pada komputer anda? 
Idealnya, sistem operasi berbasis Linux modern seperti Ubuntu atau Fedora dapat bekerja dengan baik dengan 1 GB RAM. Tentu jika anda ingin melakukan hal lebih dengan OS tersebut, maka ada baiknya menambah ukuran RAM anda.

Berapa Ukuran Swap yang Dibutuhkan ?

Daam beberapa teori yang tersebar di internet, banyak diantaranya mengatakan bahwa ukuran partisi swap atau file swap adalah sebesar 1.5 sampai 2 kali ukuran dari RAM. 

Ini tidak salah, memang benar ketika kita menggunakan mode hibernasi, proses yang ada di RAM akan dimasukkan terlebih dahulu ke dalam swap sebelum komputer dimatikan. Jika anda tidak menggunakan fitur hibernasi, saya rasa hal tersebut tidak terlalu perlu.

Bagaimana jika anda memiliki 8 GB RAM? Apa swap-nya harus  berukuran 16 GB? Sesuatu sekali :v

Berdasarkan pengalaman saya pribadi, saya selalu mengatur ukuran partisi swap sesuai dengan kebutuhan, baik itu pada komputer nyata ataupun komputer virtual yang ada di jaringan rumah saya.

Ada sebuah virtual system yang berjalan di komputer saya, memiliki RAM sebesar 600 MB dan swap sebesar 2 GB dengan OS Debian 7 64-bit.

Saya menggunakan 64-bit karena memang membutuhkan 64-bit untuk menjalankan tugas dari server tersebut, jadi bukan karena ukuran RAM yang menjadi penentu 32-bit atau 64-bit OS yang saya gunakan, tapi sesuai kebutuhan, untuk lebih jelasnya akan saya bahas pada post tersendiri.
Virtual Server
Virtual server, (dokumentasi pribadi)

Nilai Swappiness Ideal

Apa itu nilai swappiness?

Nilai swappiness adalah nilai yang digunakan oleh sysctl untuk memutuskan bagaimana kondisi swap akan bekerja.

Nilai ini memiliki range angka 0 - 100. Semakin tinggi nilai swappiness, maka semakin agresif sistem memanfaatkan swap space yang terbaca oleh sistem.

Pada Ubuntu 14.04 nilai default swappiness adalah 60.

Swappiness dapat dicek dengan menggunakan command :
$ sysctl vm.swappiness
Swappiness
Swappiness, (dokumentasi pribadi)
Untuk melakukan setting nilai swappiness :
$ sysctl -w vm.swappiness=XX
Swappiness
Swappiness, (dokumentasi pribadi)
Jadikan perubahan permanen ketika reboot :
$ sudo echo "vm.swappiness=XX" >> /etc/sysctl.conf
Swappiness
sysctl.conf, (dokumentasi pribadi)

Keterangan : XX adalah nilai swappiness yang diinginkan.

Saya sendiri menggunakan nilai 80 untuk swappiness.

Dalam beberapa tutorial yang tersebar di internet, kebanyakan menyarankan menggunakan nilai swappiness 10. Penggunaan nilai swappiness sebesar 10 ini memang akan meningkatkan kecepatan sistem, karena tidak banyak menggunakan swap space, tetapi 90% akan bekerja pada RAM.

Namun masalah lain muncul, bagaimana dengan sistem yang memiliki RAM kecil? Bagaimana dengan ruang gerak untuk aplikasi yang lain? Karena hampir semuanya dilakukan sendiri oleh RAM. Realitanya, performansi sistem akan menurun sangat drastis bahkan terjadi freeze ketika RAM kepenuhan, padahal swap space masih sangat luas. Tentu saya juga pernah mengalami hal ini.

Setelah menganalisa cara kerja virtual memory di Windows, saya mengamati adanya aktifitas page file bahkan ketika OS itu startup, silahkan cek Task Manager di Windows untuk membuktikannya. Hal ini membuat sistem mempunyai cukup banyak ruang untuk menjalankan banyak sekali proses di atasnya.

Hal inilah yang kemudian saya coba terapkan di Linux dengan memperbesar swappiness, dan ternyata hasilnya cukup keren.

Silahkan perhatikan screenshot laptop saya berikut ini :
Die-hard Multitasking Linux Mint 13 Maya
Die-hard Multitasking, Linux Mint 13 Maya (dokumentasi pribadi)
Laptop saya memiliki 2 GB RAM dan 2.5 GB Swap. Pada screenshot tersebut sangat terlihat jelas berapa banyak tab yang terbuka pada browser Chrome yang terkenal rakus memory, dan aplikasi lain yang terlihat pada taskbar. Bahkan saya masih bisa melakukan screenshot dan meng-uploadnya di facebook :D. Nilai swap yang saya berikan adalah sebesar 90.

Kesimpulan

Besar ukuran swap space dan nilai swappiness adalah sesuai dengan kebutuhan dan spesifikasi sistem. 

Jika anda memiliki kapasitas RAM yang besar, maka anda bisa mengecilkan nilai swappiness dan menyesuaikan ukuran swapspace sesuai dengan kebutuhan.

Jika anda memiliki kapastias RAM yang terbatas, maka anda bisa meminta bantuan harddisk untuk menjadikan sebagian dari penyimpanannya sebagai swap space yang memadai, gunakan swappiness yang agak lebih tinggi dari nilai standar, misalnya 80. Sehingga RAM akan memiliki ruang lebih untuk proses-proses baru yang mungkin akan dijalankan tanpa mengganggu proses yang telah berjalan sebelumnya.

Demikian pembahasan saya sekaligus sharing pengalaman saya.

Semoga artikel ini bermanfaat untuk kita semua, silahkan share link halaman ini ke teman-teman anda. :D

<eof>
<Alfiyan>

0 komentar:

Post a Comment