Breaking News
recent

Menghemat Baterai Dengan Edit Sysctl (tweaking)

Android boros baterai? Apakah tips menghemat baterai anda rasa hanya berpengaruh kecil? Tweak ini membutuhkan sysctl.conf. 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 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.
Dalam pengaturan sysctl tidak tetap setelah reboot, sehingga kita dapat me-remount adb kemudian membuat sebuah file sysctl.conf pada pc kita dengan pengaturan ini, maka. / Adb push sysctl.conf / etc / maka kernel harus menerapkan pengaturan setiap reboot



Perlu diingat tweak ini tidak akan mempengaruhi hasil benchmark seperti quadrant benchmark.
Benchmark lebih ke arah hardware dan tidak dipengaruhi oleh tweak ini. 
Sebagai contoh, sebelum saya memodifikasi dengan Sysctl, android anda dengan pemakaian standar, ketika jam 6 pagi anda cabut dari charger, jam 6 sore anda ketika pulang batere tersisa 20%. Setelah dimodifikasi, jam 6 sore anda ketika pulang batere masih tersisa 50-60% .
Sekali lagi saya ingatkan Tweaking berbeda dengan Overclocking, OC lebih mengacu langsung ke Hardware sementara tweak lebih ke script yang mendorong kinerja secara keseluruhan

CARA I (Mudah-menengah)


Buka Terminal dan Jalankan perintah ini sebagai root.
Sebelum memulai mari kita ketahui 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 ke brainware (anda).


Apa saja yang dibutuhkan?
1.Handheld Android (pastinya) sudah Root 
2.Terinstall Busybox.



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 cadangan yang sesuai dengan ukurannya sendiri-sendiri. Nilai default poin ini adalah 2048 (bisa berbeda tergantung devicenya).


>>>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.(catatan kenapa menggunakan istilah linux? Karena android itu dasarnya dari linux)


>>>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 hehe). 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.


Nilai2 yang harus anda masukan pada Sysctl Config? Tergantung hardware dan kenyamanan masing2.
Intinya silahkan coba nilai satu persatu. Dengan mengaktifan Sysctl, biarkan anda mencoba konfigurasi default selama 1-2 hari, bila dirasa kurang, silahkan dirubah-rubah nilainya. Ini adalah contoh parameter kernel yang digunakan.


Min Free KBytes: 4096
Dirty Ratio: 90
Dirty Background Ratio: 70
VFS Cache Pressure: 1
Oom Allocating Task: Aktif, atau nilainya 1 (0=tidak aktif)
Hasilnya seperti yang dijelaskan diatas tadi.






CARA II (Mudah-menengah)
Anda dapat juga menggunakan ROM Toolbox
1.Download disini dan install ROM Toolbox Pro v4.4.4 
2.Jika meminta ijin dari superuser anda klik "allow"
3.Masuk opsi performance>Kernel tweak>
4.Di Opsi sysctl conf anda bisa mengetik parameter yang anda mau



CARA III (Expert)
Untuk contoh sysctl.conf dapat anda cari di google : disini 

Buka Terminal dan Jalankan perintah ini sebagai root


Tweak memori virtual untuk menghemat daya ketika berjalan pada baterai:
kode:

echo 0 > /proc/sys/vm/swappiness #can be ignored if you dont use swap
echo 0 > /proc/sys/vm/dirty_expire_centisecs #can be ignored if you dont use swap
echo 0 > /proc/sys/vm/dirty_writeback_centisecs #can be ignored if you dont use swap
echo 60 > /proc/sys/vm/dirty_background_ratio
echo 95 > /proc/sys/vm/dirty_ratio



Tweak memori virtual ketika anda Charger:
kode:

echo 0 > /proc/sys/vm/swappiness #can be ignored if you dont use swap
echo 3000 > /proc/sys/vm/dirty_expire_centisecs #can be ignored if you dont use swap
echo 500  > /proc/sys/vm/dirty_writeback_centisecs #can be ignored if you dont use swap
echo 10   > /proc/sys/vm/dirty_background_ratio
echo 40   > /proc/sys/vm/dirty_ratio



Mendeteksi apps / jasa yang memerlukan kinerja lebih pada baterai / cpu:
Disini menerangkan bahwa kinerja yang memerlukan energi baterai lebih, untuk itu Anda harus menghentikan semua aplikasi yang tidak benar-benar jalan/siaga bila Anda tidak menggunakan mereka.
Jika Anda ingin menemukan aplikasi yang sedang dalam masa siaga namun anda tidak memerlukan, maka Anda dapat menggunakan:
kode:

strace -p $(pidof yourapp) # for all your running applications 
ps aux | awk '{print$10,$11}' | sort -n # will list all running softs sorted by used cpu time


Secara default ketika android kehabisan memori untuk menjalankan aplikasi melalui daftar proses maka android mulai membunuh proses yang ia kira menggunakan terlalu banyak memori. Sysctl ini membuat android membunuh proses pelarian yang membuat sistem kehabisan memori bukan, yang biasanya apa yang Anda inginkan. (Ini juga akan mengurangi waktu cpu dan meningkatkan penggunaan baterai).
kode:
sysctl-w vm.oom_kill_allocating_task = 1

vfs_cache_pressure sampai 10, memberikan lebih banyak masukan ke tembolok fs dan inode untuk menghemat cpu
Pada nilai default dari vfs_cache_pressure = 100 kernel akan mencoba untuk merebut kembali dentries dan inode pada tingkat "adil" sehubungan dengan pagecache dan swapcache(sistem simpan perintah sementara) kembali. Penurunan vfs_cache_pressure menyebabkan kernel untuk lebih memilih untuk mempertahankan dentry dan cache inode. Meningkatkan vfs_cache_pressure melampaui 100 menyebabkan kernel untuk lebih memilih untuk merebut kembali dentries dan inode.
kode:
sysctl-w vm.vfs_cache_pressure = 10



NB: Anda bisa memasukan semua ini dengan /ADB shell atau terminal emulator pada android anda.
creative innovation

creative innovation

7 comments:

  1. Mo tanya beberapa hal.
    1. Mo mastiin aja, Itu tweak virtual memori yg pertama saya eksekusi ketika running on battery, sementara tweak virtual memory yg kedua saya eksekusi pas running sambil ngeccas.. bener ga?
    Klo iya, berarti bikin 2 script ya, bukan ditumpuk jd
    Satu.

    2. Perintah ini kayaknya ada yg salah deh.
    strace -p $(pidof yourapp) # for all your running applications
    Yg ada di dalem kurung itu harusnya berisi angka process id dari sebuah aplikasi yg sedang berjalan kan. Jadi gak bisa tulisan itu di copas lgsung ke dalem script. Dah gt, process id itu kan unik, tiap aplikasi punya, cape jg masukin nilainya 1-1 untk tiap app yg running. Ada cara lain ?

    3. Saya cb eksekusi sysctl-w ktnnya gak dikenal. Unknown command gt.Kenapa ya?

    ReplyDelete
  2. setau saya sich ea gan,truz itu ID aplikasi yg hendak ente hemat energynya (jadi bisa banyak)klo mo menonaktifkan sysctl semua scr bersama-sama masuk menuconfig>Filesystem>Pseudo Filesystems>Proc>
    Pseudo terminal ato PTY kl mo dinonaktifin juga bisa gan,tapi ati2 kl salah ntar ente ga bisa konek :)

    ReplyDelete
  3. mas kl untuk galaxy young nilai2 nya brp ya?..ane pake cara 2

    ReplyDelete
  4. pertanyaan sama kaya diatas cuma bedaHH..
    Kalau untuk GalaxyGio nilai2nya berapa ya??
    ane ROMnya pake CM7..pake cara2..

    ReplyDelete
  5. terima kasih ilmunya...
    rasanya pengen cepet cepet coba...
    terima kasih infonya...
    diblog saya juga membahas tentang Android
    jadi kalau ada waktu kunjung balik ya gan...

    ReplyDelete
  6. cara ke dua pake Busybox juga ya

    ReplyDelete
  7. .Ora mudeng.

    ReplyDelete

Powered by Blogger.