Info Ter-Update Seputar Game Mobile (Android & iOS)

Senin, 07 Mei 2012

Tutorial Hemat Baterai Android dengan Modifikasi Sysctl.Conf

https://lh6.ggpht.com/EU8WK-DjXP0OmmXzm1WUwmxuTEsP58o9iabbPeREzvHZ6IPQ2RdJPu8cRdgHpgG2fg=h230

Pada artikel kali ini saya mau jelasin sedikit yang saya tahu tentang sysctl. Sysctl Config adalah aplikasi utilitas yang biasanya terdapat di ROM2 custom terbaru atau anda bisa mendapatkannya secara gratis di android market. Apa gunanya? Gunanya adalah untuk tweaking file Sysctl.conf dengan cara yang lebih human being :P Apa saja yang dibutuhkan? Tentu saya Handheld Android (pastinya) yang sudah Root dan sudah terinstall busybox. Root nggak perlu dijelasin kan? Busybox installer (nama aplikasinya busybox) silahkan cari di market, setelah diinstall, uninstall aja busybox installernya, toh busyboxnya udah keinstall di system daripada menuh2in space :P Nah sekarang lanjut ke pembahasan perbagian :)

Sebelum lanjut, mau saya jelaskan bahwa tweak ini tidak akan mempengaruhi hasil benchmark seperti quadrant, benchmark lebih ke arah hardware dan tidak dipengaruhi oleh tweak ini. Apa sih sysctl.conf ini? Karena Android berbasis linux, sama seperti di linux, di android juga terdapat file bernama sysctl.conf yang berisi parameter kernel. Dengan aplikasi Sysctl Config (bisa diunduh disini) di android, kita bisa memodifikasi file sysctl.conf di handheld kita untuk meningkatkan performa dan memperpanjang umur batere. Maksudnya, disini membuat batere tidak cepat habis/boros. Sebagai contoh, sebelum saya memodifikasi dengan Sysctl, Samsung Galaxy Mini saya dengan pemakaian standar saya, jam 6 pagi saya cabut dari charger, jam 6 sore saya sampai rumah batere tersisa 20%. Setelah saya modifikasi, jam 6 sore saya sampai rumah batere masih tersisa 50-60% …. lumayan buat modal socmed di kampus pas kuliah klo dosennya lagi ngebosenin :D

Nah, kelemahannya (bukan kelemahan akibat modifikasi ini) adalah, poin2 yang bisa diedit dengan Sysctl ini cuman sedikit >_< padahal masih banyak parameter lainnya, tapi it’s ok, menurut saya (sekarang) ini sudah cukup untuk meningkatkan performa device dan ketahanan batere. Nah sekarang kita bahas per poin parameter.

  • Min Free KBytes (vm.min_free_kbytes), ini digunakan untuk membuat Virtual Memory (VM) Linux mempertahankan nilai minimum kilobytes. VM menggunakannya untuk menghitung nilai pages_min untuk setiap zona low memory dalam sistem. Setiap zona low memory dalam sistem mempunyai nilai free pages (istilahnya apa yah, saya jugak bingung :D ) cadangan yang sesuai dengan ukurannya sendiri-sendiri. Nilai default poin ini adalah 2048
  • Dirty Ratio (vm.dirty_ratio) dan Dirty Background Ratio (vm.dirty_background_ratio) berfungsi mengontrol seberapa sering kernel menulis data ke disk (disk dalam hal ini adalah internal sd card di sistem/handheld, bukan external sd card). Ketika aplikasi-aplikasi menulis data ke disk, Linux sebenarnya tidak menulis data langsung ke disk, tetapi linux menulisnya ke system memory dan kernel menangani kapan dan bagaimana data tersebut dimasukkan ke disk. Nilai dalam sysctl mempresentasikan prosentase, lebih tinggi prosentase yang sampeyan masukkan, lebih lama menunggu data di masukkan ke disk, sebaliknya, semakin rendah nilai prosentase yang sampeyan masukkan, data lebih sering dimasukkan ke disk. Sekarang kita ingat2 lagi, kita berhadapan dengan internal disk yaitu solid state disk, bukan disk dengan sistem piringan seperti harddisk di komputer, jadi kita bisa menahan sistem memasukkan data ke disk lebih lama daripada di disk dengan sistem piringan.
  • VFS Cache Pressure (vm.vfs_cache_pressure), nah …. yang ini menarik, cache file sistem (dentry/inode) lebih penting daripada block cache dalam dirty ratio dan dirty background ratio, jadi kita menginginkan kernel untuk menggunakan lebih banyak RAM untuk cache file sistem. Ini akan meningkatkan performa sistem tanpa mengorbankan performa pada level aplikasi. Nilai defaultnya adalah 100 (dalam prosentase), yang harus dilakukan adalah merubah prosentasenya lebih rendah untuk memberitahukan kernel agar mendukung cache file sistem dan tidak men-drop-nya secara tiba-tiba.
  • Oom Allocating Task (vm.oom_kill_allocating_task) di Sysctl diberikan opsi centang maksudnya diaktifkan atau tidak atau merepresentasikan nilai “1″ / “0″ atau On/Off. Fitur ini digunakan untuk mengaktifkan atau tidak trigger untuk killing task pada situasi OOM (Out Of Memory). Kalau ini tidak dicentang/diaktifkan, OOM Killer akan memindai seluruh daftar task dan memilih task yang akan di kill berdasarkan heuristik (silahkan googling artinya :D ). Biasanya OOM akan memilih task yang memakan banyak memori (rogue memory hogging) dimana bila di kill akan melegakan memory dalam jumlah besar. Bila poin ini di aktifkan/dicentang, maka OOM Killer akan meng-kill aplikasi yang memicu kondisi OOM. Ini meminimalisir pemindaian task dimana bisa mengakibatkan sistem hang atau freeze.
Lalu berapa nilai2 yang harus saya assign pada Sysctl? Tergantung hardware dan kenyamanan masing2. Intinya silahkan coba nilai satu persatu. Intinya dengan mengaktifan Sysctl, biarkan sampeyan coba konfigurasi default selama 1-2 hari, bila dirasa kurang, silahkan dirubah-rubah nilainya. Lah kalau Galaxy Mini saya pengaturannya:
  • Min Free KBytes: 16384
  • Dirty Ratio: 90
  • Dirty Background Ratio: 70
  • VFS Cache Pressure: 10
  • Oom Allocating Task: Aktif
Hasilnya seperti yang saya ceritakan diatas :D Selamat mencoba :)

12 komentar: