Selasa, 13 Agustus 2013

Hiyaa... Kita bertemu lagi di blog Tutorial Linux Untuk Pemula, Sekarang saya akan berbagi pengalaman yang baru saya alami hari ini. Artikel ini sebenarnya tidak akan membahas tentang tools apa saja yang bisa kita pakai untuk monitoring sistem server. Saya hanya akan mengklarifikasi beberapa persoalan yang ternyata, bukan hanya saya yang pernah mengalaminya. Artikel ini hanya akan menjelaskan tentang perbedaan output dari top, free dan htop di linux. Entah anda pernah mengalaminya atau belum tapi saya rasa informasi ini akan cukup membantu.

Saya terbiasa melihat resource consumption server saya dengan htop, output dari htop adalah seperti ini :
output htop di ubuntu
htop
Anda lihat pada bagian Mem, saya memberikan kotak merah untuk menunjukkan ram usage dari server saya. Ternyata jika kita melihat ram usage di top, hasilnya akan berbeda. Pada top hasilnya seperti ini :
output top di linux ubuntu
top
Saya bingung kenapa bisa seperti ini, Silahkan lihat pada bagian Mem, disana disebutkan bahwa RAM usage adalah 1606832k dari 2050904k. Artinya dari 2 GB RAM yang ada, yang dipakai adalah sekitar 1,6 GB. Padahal htop menunjukkan bahwa yang terpakai hanyalah 428 MB. Membingungkan bukan?

Setelah saya mencari-cari informasi, ternyata keduanya menunjukkan hasil yang benar. Tidak ada kekeliruan dari hasil keduanya. Hanya saja yang terjadi adalah metode pembacaan yang bebeda sehingga menunjukkan hasil yang berbeda pula. Penjelasannya :

[ linux meminjam free ram untuk disk cached ]
Hal ini membuat RAM yang sebenarnya tidak dipakai oleh aplikasi TAPI dipinjam oleh disk cached dianggap telah terpakai oleh system. Pada akhirnya akan tampak RAM server anda LOW CRITICAL namun sebenarnya tidak. Semuanya baik-baik saja!


[ kenapa begitu? ]
Disk Caching membuat system bekerja lebih cepat! Tidak ada yang salah, kecuali untuk para pemula seperti saya. Ini sebenarnya tidak memakan RAM yang akan digunakan oleh aplikasi.


[ bagaimana jika kita akan menjalankan aplikasi lain? ]
Jika aplikasi anda lebih membutuhkan RAM. Linux akan mengembalikan Free RAM yang dipinjam oleh disk cache. Anda tidak akan kekurangan RAM!


[ apakah kita membutuhkan tambahan swap? ]
Tidak perlu, disk caching hanya meminjam RAM yang tidak digunakan sama sekali oleh aplikasi apapun. Ini tidak akan menggunakan swap. Jika aplikasi membutuhkan tambahan RAM, mereka hanya akan mengambil kembali dari disk cache. Mereka tidak akan mempermasalahkan swapping.


[ Bagaimana agar linux berhenti melakukan ini? ]
Anda tidak bisa men-disable disk caching. Satu-satunya alasan semua orang ingin men-disable disk caching adalah karena mereka pikir ini memakan RAM dan membuat aplikasi kekurangan RAM! Disk cache membuat aplikasi-aplikasi berjalan lebih cepat dan lebih halus, tapi disk cache TIDAK PERNAH memakan RAM yang akan digunakan oleh aplikasi. Jadi, tidak ada alasan tepat untuk men-disable disk cache.


[ mengapa TOP dan FREE mengatakan semua RAM kita digunakan padahal tidak? ]
Ini hanya kesalahpahaman istilah. Antara anda dan Linux setuju bahwa RAM yang telah dipakai oleh aplikasi disebut "DIPAKAI", sementara RAM yang tidak digunakan untuk apapun adalah "TIDAK DIPAKAI".

Anda mengatakan RAM "TIDAK DIPAKAI", tapi linux mengatakan ini "DIPAKAI"

RAM yang....Anda menyebutnyaLinux menyebutnya
dipakai oleh aplikasi Dipakai Dipakai
available untuk aplikasi, digunakan untuk sesuatu TIDAK DIPAKAI DIPAKAI
tidak digunakan untuk apapun TIDAK DIPAKAI TIDAK DIPAKAI

"Sesuatu" disini adalah apa yang top dan free sebut "buffers" dan "cached". Sejak anda dan terminologi Linux berbeda, anda beranggapan bahwa anda kekurangan RAM, padahal tidak.


[ Bagaimana kita melihat seberapa banyak RAM yang tidak dipakai? ]
Untuk melihat seberapa banyak RAM yang tidak dipakai oleh aplikasi, run free -m dan lihat pada row baris yang ada tanda "-/+ buffers/cache". Pada kolom free, itu jawaban dalam format Megabytes.

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1504       1491         13          0         91        764
-/+ buffers/cache:        635        869
Swap:         2047          6       2041
$

Jika anda tidak tau bagaimana membaca angka, anda akan berpikir RAM telah digunakan sebanyak 99% ketika sebenarnya yang terpakai adalah 42%.

Itulah mengapa hasil terminologi TOP berbeda dengan HTOP dan FREE. Karena HTOP dan FREE tidak membaca RAM yang dipinjam oleh disk caching sebagai RAM yang terpakai.

Sampai disini, saya pikir keraguan saya terjawab. Semoga anda juga :)
Semoga artikel ini dapat bermanfaat,

Salam penguin! :)