Pendahuluan
Pada
praktikum
kali
ini
kita
akan
mempelajari
tentang
bagaimana
mengelola
memori
RAM
dan
cache.
Kita
akan
memulai
dengan
belajar
menggunakan
tool- tool
sederhana
untuk
menampilkan
informasi
tentang
memori
diantaranya
:
free
om,
top
dan
cat
/proc/meminfo.
Kemudian
kita
akan
melanjutkan
dengan
mengelola
swap
space,
dengan
menggunakan
beberapa
istilah
seperti
swapping,
paging
dan
virtual
memory.
Dan
pada
bagian
akhir,
kita
akan
belajar
menggunakan
vmstat
untuk
memonitor
penggunaan
swap
Peralatan
yang
dibutuhkan
:
Sebuah
PC
yang
sudah
terinstall
Software
virtual
Box
Sebuah
virtual
machine
dengan
OS
Ubuntu
3. top tool top merupakan utilitas yang biasanya digunakan untuk melihat proses-proses yang paling memakan sumberdaya CPU, tetapi bisa juga digunakan untuk menampilkan informasi memori (biasanya pada baris ke-4 dan ke-5, yang dapat diaktifkan dengan menekan tombol m). Berikut ini adalah contoh informasi yang diperoleh dari tool top : top - 10:44:34 up 16 days, 9:56, 6 users, load average: 0.13, 0.09, 0.12 Tasks: 166 total, 1 running, 165 sleeping, 0 stopped, 0 zombie Cpu(s): 5.1%us, 4.6%sy, 0.6%ni, 88.7%id, 0.8%wa, 0.0%hi, 0.3%si, 0.0%st Mem: 3830176k total, 3613720k used, 216456k free, 45452k buffers Swap: 6384636k total, 84988k used, 6299648k free, 2050948k cached
root@RHELv4u4:~# swapon /dev/hda1 Sekarang anda dapat melihat file /proc/swaps akan menampilkan semua swap space secara terpisah. Anda juga dapat menggunakan perintah free om untuk menampilkan informasi dalam bentuk yang lebih mudah untuk dibaca. root@RHELv4u4:~# cat /proc/swaps Filename Type Size Used Priority /dev/mapper/VolGroup00-LogVol01 partition 0 -1 /dev/hda1 partition 0 -2 1048568 524120
root@RHELv4u4:~# free -om total used free shared buffers cached Mem: 249 245 4 0 125 54 Swap: 1535 0 1535 3. membuat file swap untuk membuat file swap gunakan command dd (pada system operasi solaris gunakan command mkfile). Berikut ini adalah contoh membuat file swap : root@RHELv4u4:~# dd if=/dev/zero of=/smallswapfile bs=1024 count=4096 4096+0 records in 4096+0 records out root@RHELv4u4:~# mkswap /smallswapfile Setting up swapspace version 1, size = 4190 kB root@RHELv4u4:~# swapon /smallswapfile root@RHELv4u4:~# cat /proc/swaps Filename Used Priority /dev/mapper/VolGroup00-LogVol01 0 -1 /dev/hda1 0 -2 /smallswapfile 0 -3 Type partition partition file Size 1048568 524120 4088
Kalau anda ingin mempermanenkan swap space (ketika PC anda reboot informasi file swap anda masih tersimpan dan akan diload otomatis), maka jangan lupa untuk menaruh informasi swap space anda pada file /etc/fstab. Berikut ini adalah contoh isi file /etc/fstab : /dev/hda1 swap swap defaults 0 0 /smallswapfile swap swap defaults 0 0
Berikut
ini
adalah
contoh
monitoring
vmstats
ketika
membuka
sebuah
terminal
lain
login
sebagai
root
dan
menjalankan
perintah
find/.
Dapat
dilihat
banyak
proses
i/o
yang
melibatkan
disk
(bi
dan
bo
adalah
blocks
in
dan
blocks
out).
Disini
masih
belum
terlihat
operasi
yang
melibatkan
swapping.
sisop@ubu1010:~$ vmstat 2 100 procs ----------memory---------- ---swap-- -----io---- -system- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 84984 1999436 53416 269536 0 0 2 5 2 10 6 5 89 1 0 0 84984 1999428 53416 269564 0 0 0 0 1713 2748 4 4 92 0 0 0 84984 1999552 53416 269564 0 0 0 0 1672 1838 4 6 90 0 0 0 84984 1999552 53424 269560 0 0 0 14 1587 2526 5 7 87 2 0 0 84984 1999180 53424 269580 0 0 0 1001748 2193 4 6 91 0 1 0 84984 1997800 54508 269760 0 0 610 0 1836 3890 17 10 68 4 1 0 84984 1994620 55040 269748 0 0 2501681724 4365 19 17 56 9 0 1 84984 1978508 55292 269704 0 0 126 0 1957 2897 19 18 58 4 0 0 84984 1974608 58964 269784 0 0 182647826054355 7 7 44 41 0 2 84984 1971260 62268 269728 0 0 163475622573865 7 7 47 39
Berikutnya kita akan mensimulasikan memory leak yaitu suatu program yang akan memaksa untuk terjadi swapping. Program berikut diambil dari Wikipedia tanpa nama penulis source code nya . (Anda buat dengan menggunakan text editor). sisop@ubu1010:~$ cat memleak.c #include <stdlib.h> int main(void) { while (malloc(50));
return 0; } Kemudian
kita
jalankan
program
memleak
tersebut
dan
kita
lihat
hasilnya
dengan
memonitor
menggunakan
vmstat.
[paul@rhel6c ~]$ vmstat 2 100 procs ----------memory-------- ---swap-- ----io---- --system------cpu----r b swpd free buff cache 1916 908 992 1024 1140 1136 si so 261 0 bi bo in cs us sy id wa st 0 42 27 21 0 1 98 1 88 86 85 87 87 0 0 0 0 0 0
0 3 245208 5280 232 0 1 1 0 3 2 3 4 4 5 263372 350672 449584 471968 505960 4800 4792 4788 4828 4764 72 56 56 56 56
143840 128 0 1138 462 191 210 0 169280 256 0 1092 360 142 113 0 95880 64 0 606 471 191 213 0 44832 80 0 390 235 90 212 0 68008 16 0 538 286 109 112 0
Dari simulasi di atas tampak banyak terjadi proses swapping (si adalah swapped in)
Eksplorasi
1. Gunakan dmesg untuk mencari jumlah total memory yang ada pada pc anda 2. Gunakan free untuk menampilkan penggunaan memori dalam kilobytes (kemudian dalam megabytes) 3. Pada mesin virtual, buatlah sebuah partisi swap (anda mungkin memerlukan sebuah virtual disk ekstra yang harus dibuat sendiri) 4. Tambahkan sebuah file swap berukuran 20 MB ke PC atau system mesin virtual anda 5. Letakkan swap space pada /etc/fstab untuk dipermanenkan dan kemudian aktifkan swap space tersebut. Test dengan cara me-reboot computer anda dan cek apakah swap tersebut sudah di mount secara permanen. 6. Gunakan free untuk memverifikasi penggunaan dari swap pada saat ini 7. (optional) tampilkan penggunaan dari swap dengan menggunakan vmstat dan free -s