SlideShare a Scribd company logo
1 of 6
Download to read offline
TUTORIAL                                       Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Tuning Kernel




Meningkatkan Kinerja Multimedia
dengan Tuning Kernel
Sering pada kombinasi multitasking tertentu, kernel Linux seperti
“kedodoran” padahal dari spesifikasi hardware masih mencukupi. Hal ini
terutama terjadi pada pengguna rumahan yang mania multimedia. Lalu,
bagaimana cara tuning-nya?



A
           nda punya komputer bagus,            yang pernah sedikit belajar assembly, Anda        CPU akan melewati “bus” (bukan bus yang
           Athlon 3 GHz, memori 512 MB,         akan tahu bahwa interrupt ini ada banyak          mampir di halte) dengan kecepatan tertentu
           video card GeForceFX 5900,           jumlahnya. Salah satunya, interupt 10h            menuju harddisk melewati controller EIDE
harddisk SCSI. Welah-welah, mestinya Anda       (hexa) berkaitan dengan manipulasi display        (jika harddisk Anda IDE). Tapi jangan lupa,
bisa jadi lupa waktu (asal jangan lupa          ke monitor. Pada sistem operasi                   perintah akses I/O ini (lagi-lagi) melewati
kerja...hehehe. “Bejibun” game, “selong-        multitasking seperti Linux, pengiriman            lapisan sistem operasi. Jadi selain kecepatan
song” MP3, VCD Matrix Reloaded, coba-           interrupt akan masuk ke dalam antrian             bus, seberapa cepat sistem operasi
coba konversi MP3 ke OGG, render gambar,        (queue). Ini disebabkan mungkin saja dalam        melayani akses I/O ini juga sangat
dan seabrek rencana lain udah membayang.        waktu yang sama, ada permintaan interrupt         berpengaruh pada kecepatan akses.
Lalu ada boot Linux Anda di komputer baru.      lain (misal event keyboard pada interrupt             Terlihat dari penjelasan singkat di atas,
Tapi setelah beberapa job tadi dijalankan       16h). Antrian interrupt ini akan dikerjakan       keterlambatan (delay atau latency) adalah
(mungkin lebih tepat disebut “bom nuklir”)      satu per satu berdasar urutan masuk (First        sesuatu yang tidak terelakkan. Benar, sekali
anda berpikir “baru 5 task multimedia, kok      In First Out) kecuali pada program real time.     lagi, tidak terelakkan. Bahkan pada sistem
udah keok, gimana nih? Saya kan maunya          Jika program yang meminta akses interrupt         yang mengklaim dirinya real time sekalipun.
sambil render gambar, dengar MP3, plus          tidak segera dilayani, maka program               Yang bisa kita lakukan adalah mereduksi
compile program”. Tipe orang begini (dan        tersebut akan dihentikan sementara (sleep)        latency ini di bawah suatu batasan
saya juga) mungkin tipe benchmarker sejati.     dan dibangunkan lagi (wake up) jika               sehingga kita mengganggap sistem sudah
Inginnya benchmark dan benchmark dan            interrupt telah dilayani.                         responsif. Soal kata “responsif” ini, sangat
tidak pernah puas dengan tweaking.                  Dari paragraf di atas, terlihat ada kaitan    relatif. Sebuah server dengan CPU 200
    Kira-kira dengan asal usul yang sama        antara waktu pelayanan interrupt dengan           MHz mungkin cukup untuk mail server
plus karena sedang mulai coba-coba              mekanisme scheduler. Secara umum,                 dengan 100 account, tapi tidak cukup
memprogram di kernel, saya mulai                scheduler bisa dianalogikan seperti polisi lalu   untuk mengolah video sekaligus streaming
eksplorasi mengenai cara meningkatkan           lintas yang bertugas pada perempatan jalan.       ke Internet. Jadi tergantung kita sendiri,
kinerja kernel. Dasar pemikirannya begini.      Polisi (scheduler) akan menyetop mobil dari       bagaimana yang kita anggap cukup.
Kernel adalah jantung dari sistem operasi.      3 ruas (ruas A,B,C) dan memperbolehkan                Sekarang pertanyaannya, “OK, sekarang
Bisa juga dikatakan sebagai pengatur utama      mobil-mobil dari 1 ruas sisa (ruas D) berjalan.   saya mulai paham letak keterlambatan OS
interaksi pengguna dan hardware                 Setelah (anggap saja) 1 menit, giliran ruas A     saya, lalu bagaimana cara tuning-nya?”
komputer. Kernel yang diprogram secara          diperbolehkan berjalan, dan ruas B C D            Karena konteks pembicaraan kita pada OS,
baik akan menghasilkan kinerja sistem yang      berhenti. Demikian seterusnya. Kecerdikan         maka ada beberapa patch yang bisa
baik pula. Jadi biarpun hardware bagusnya       dan kecekatan polisi (scheduler) akan             membantu yaitu:
selangit, kalau kernelnya sedang-sedang,        menentukan apakah antrian mobil bisa              1. Low latency patch buatan Andrew
sistem tidak akan bekerja optimal.              segera dikosongkan dengan segera sambil               Morton.
    Berbicara mengenai optimasi sistem,         melihat antrian baru dari segala ruas. Bisa       2. Preemptible kernel patch buatan Robert
sebenarnya banyak aspek yang terlibat.          saja ruas C terus menerus mendapat antrian,           M Love.
Kalau kita persempit pada aspek multime-        tapi ruas A B dan D cukup sepi.                   3. Variable HZ patch buatan Robert M Love.
dia, saya simpulkan faktor-faktor yang              Faktor lain yang bermain adalah
terlibat adalah waktu respons interupt,         kecepatan akses I/O. I/O disini bisa                  Untuk tiga patch di atas, Anda mem-
kecepatan kerja scheduler, dan kecepatan        bermacam-macam, bisa ke arah disk (floppy,        butuhkan source kernel “vanilla”. Maksud
akses I/O. Faktor-faktor ini akan dijelaskan    harddisk, USB storage, CD-ROM drive, dan          “vanilla” di sini bukan seperti rasa es krim,
satu per satu.                                  sebagainya), video card, memory, bahkan           tapi istilah untuk menyatakan source yang
    Hardware komputer bekerja dengan cara       network card. Pada saat CPU meminta               asli belum ditambah patch apapun. Penulis
menerima instruksi berupa interrupt. Bagi       akses ke (misalkan) harddisk, maka perintah       sarankan Anda memakai kernel 2.4.22 dari


76    INFOLINUX MEI 2004                                www.infolinux.web.id
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial                                                     TUTORIAL
                                                                                                                                      Tuning Kernel




   Gambar 1. Code maturity level options.                                       Gambar 2. Processor type - Low latency.


www.kernel.org. Patch nomor satu bisa                 Logikanya, saat kernel mengerjakan               handler untuk timer yang dipanggil pada
anda ambil dari http://www.zip.com.au/            interrupt, tidak boleh terjadi perpindahan ke        interval tertentu. Misalkan timer diset tiap
~akpm/linux/schedlat.html. Patch nomor            task lain. Kalau ini terjadi, sistem akan            0.01 mikro second, makan tiap 0.01 mikro
dua dan tiga bisa Anda download dari http://      bingung karena di satu sisi interrupt sedang         second scheduler akan berpindah ke task
www.tech9.net/rml/linux/. Untuk kernel            dikerjakan, tapi karena tidak sampai selesai,        lain (kecuali ada keadaan seperti nomer 2).
2.4.22 ambil patch sebagai berikut:               bisa jadi ada akses ke interrupt yang sama           Mulai paham idenya? Jadi akalnya, kita
   http://www.zip.com.au/~akpm/linux/             sehingga saling menumpuk.                            perkecil interval ini. Kernel Linux biasanya
   2.4.22-low-latency.patch.gz                        Demikian juga saat ada program yang              mengambil suatu nilai yang “aman” untuk
   http://www.kernel.org/pub/linux/kernel/        akan mencoba mengambil atau melepas                  semua hardware, jadi bisa saja nilai ini terlalu
   people/rml/preempt-kernel/v2.4/                lock. Bayangkan seperti ini. Ada dua orang A         rendah untuk PC Anda. Patch variable HZ
   preempt-kernel-rml-2.4.22-1.patch              dan B. Mereka akan mengambil sebuah                  mengijinkan Anda mengubah nilai ini saat
   http://www.kernel.org/pub/linux/kernel/        gembok (lock). Pada saat tangan A terjulur           konfigurasi kernel ke sembarang nilai.
   people/rml/variable-HZ/v2.4/                   mengambil gembok, tiba tiba ada keajaiban                OK, sudah mulai penasaran? Segera
                                                  alam dan waktu untuk A berhenti (sudah               download kernel plus patch dan ikuti
    Sebenarnya bagaimana cara kerja tiga          nonton Matrix kan? Bayangkan saja seperti            langkah-langkah berikut:
patch tadi? Berikut ringkasannya:                 Bullet Time, beres). Si B dibangunkan dan            1. ”Su” menjadi root
    Low latency patch memodifikasi kode           juga bergerak mengambil gembok. Sampai               2. Unpack source kernel yang baru, misal
kode kernel yang memakan waktu lama               dengan B sukses memegang gembok, si A                    di /usr/src
agar dalam bagian tersebut kernel OS              masih “mati suri”, lalu giliran si B di-”stop”. Si        # cp linux-2.4.22.tar.bz2 /usr/src/
selama beberapa kali membreak task dan            A dibangunkan dan melanjutkan “gerakan”                   # cd /usr/src
memanggil scheduler sehingga kernel               mengambil gembok. Tapi apa daya, gembok                   # bunzip2 linux-2.4.22.tar.bz2 && tar
mempunyai waktu menjalankan tugas yang            sudah di tangan B. Dalam kamus komputer,                  xvf linux-2.4.22.tar
lain. Untuk ini, Andrew Morton (dan Ingo          keadaan seperti ini dinamakan race condition
Molnar, maintainer sebelumnya) melengkapi         alias berebut. Mengambil dan melepas lock               Akan tercipta direktori linux-2.4.22 di
diri dengan sistem pelacak untuk mengukur         adalah mekanisme atomic (artinya tidak                  bawah /usr/src
waktu di mana saja tepatnya kernel paling         boleh dihentikan oleh proses lain).                  3. Kumpulkan patch di /usr/src/
sibuk. Lalu secara bertahap ditambahkan               Jadi disimpulkan oleh Robert Love,                   # cp 2.4.22-low-latency.patch.gz /
kode-kode untuk rescheduling sambil tetap         setelah kembali dari interrupt handler atau              usr/src
mempertahankan konsistensi task.                  lock dalam keadaan bebas, re-scheduling                  # cp vhz-j64-2.4.22.patch /usr/src
    Preemption patch melakukan modifikasi         dijadwalkan kembali. Dengan demikian                     # cd /usr/src && gunzip 2.4.22-low-
pada kernel sehinga scheduler bekerja secara      diharapkan respons sistem lebih tinggi.                  latency.patch.gz
lebih “rajin dan efisien”. Ini dilakukan dengan       Variable HZ adalah patch untuk
cara menambah kesempatan melakukan                memodifikasi frekuensi dari timer pada               4. Apply patch ke kernel
rescheduling jika task yang sekarang              kernel. Gambarannya begini, scheduler                   # cd /usr/src/linux-2.4.22
dikerjakan kernel bukan merupakan interupt        sistem melakukan proses preemption                      # patch -p1 < ../preempt-kernel-rml-
handler dan tidak task tidak memegang spin        (perpindahan satu task ke task lain) saat ada           2.4.22-1.patch
lock (suatu jenis variabel sistem untuk           interrupt trap dari timer hardware (ya,                 # patch -p1 < ../2.4.22-low-
mengamankan akses ke suatu area memory            motherboard Anda mempunyai timer). Pada                 latency.patch
terhadap kemungkinan korupsi data).               saat inisialiasi kernel, “ditanam” suatu                # patch -p1 < ../vhz-j64-2.4.22.patch


                                                          www.infolinux.web.id                                            INFOLINUX MEI 2004        77
TUTORIAL                                         Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Tuning Kernel




     Gambar 3. Processor type - Preemptible Kernel.                               Gambar 4. General setup - Timer frequency.


   Pastikan tidak ada kata-kata rejected                  Anda hanya memiliki satu processor,                 -c —exclude build ./2.4.18-3/ &&
   saat patching. Jika ada, ada kemung-                   maka kernel akan tidak efektif karena               gzip ./2.4.18-backup.tar
   kinan source kernel atau patch yang                    pada sistem SMP ada tambahan
   anda download tidak sesuai. Cek ulang                  mekanisme locking untuk mencegah                    (Ganti argument pada opsi -f dengan
   versi patch dan kernel yang sesuai.                    race condition antar-processor dalam                sembarang nama file yang diingin-
5. Mulai persiapan kompilasi kernel                       mengakses suatu resource (misal                     kan. Argumen terakhir pada tar
    # make mrproper                                       memory) maupun sinkronisasi lock.                   adalah direktori yang akan di-back-
    # make menuconfig                                                                                         up, jadi arahkan ke direktori <versi-
                                                          Opsi-opsi lain bisa Anda sesuaikan sendiri          kernel-anda>. Opsi —exclude untuk
    (Penulis biasa memakai menu curses)               misal untuk dukungan APM. Penulis sendiri               mengabaikan direktori build karena ini
    atau “make config” (text based) atau              memilih mengaktifkan opsi “Magic SysRq                  adalah symbolic link).
    make xconfig (X based).                           key” pada bagian “Kernel Hacking” (gambar
6. Pada bagian “code maturity level                   7). Dengan opsi ini, akan di-enable suatu            cd /usr/src/linux-2.4.22 && make
    options” aktifkan “Prompt for develop-            “tombol backdoor” yang memungkinkan kita             modules_install
    ment and/or incomplete code/drivers”              melakukan aksi tertentu pada OS. Ini sangat          cp arch/i386/boot/bzImage /boot/linux-
    (lihat Gambar-1).                                 berguna dalam keadaan darurat. Sebagai               2.4.22-varhz
7. Pada bagian “processor type and                    contoh untuk mendump isi register lakukan            cp System.map /boot/System.map-
    features” aktifkan “Low Latency                   sebagai berikut (setelah kernel baru Anda            2.4.22-varhz
    scheduling”, “Control low latency with            build).
    sysctl”, “Preemptible kernel”. Sesuaikan           # echo “1” > /proc/sys/kernel/sysrq                 Edit loader Anda, di sini dicontohkan
    juga entry “Processor family” dengan                                                               untuk LILO tambahkan entry sebagai berikut:
    jenis CPU Anda. (Gambar 2 dan 3).                     Tekan Alt-Print Screen-P (huruf P) (note:     image=/boot/linux-2.4.22-varhz
8. Pada bagian “general setup”, isikan                coba “O” untuk shutdown).                           label=linux-varhz
    angka 500 pada “Timer frequncy”.                      Setelah selesai pilih “Exit”. Pada              read-only
    Cukup sorot bagian “Timer Frequency”,             pertanyaan “Do you wish to save your new            root=/dev/hda2
    tekan Enter, ketik angka yang Anda                kernel configuration” jawab “Yes”. Pada
    inginkan, lalu tekan Enter lagi. Bisa juga        direktori kernel source Anda dibuat file             (Ganti /dev/hda2 dengan partisi tempat
    dicoba nilai 1000 (Gambar 4).                     .config, simpan baik-baik file ini. Sekarang     root file system Anda).
9. Pada bagian “Character Devices”                    saatnya kompilasi kernel.                            Ketikkan “lilo” untuk me-load entry baru.
    aktifkan pilihan ‘Enhanced Real Time                   cd /usr/src/linux-2.4.22                    Sampai disini kompilasi sudah sukses. Tapi
    Clock Support”. Anda bisa pilih sebagai                make dep && make bzImage                    tunggu, sebelum kompilasi ada baiknya
    internal kernel <*> atau module                        make modules                                anda lakukan benchmark sehingga Anda
    <M>. Saya sarankan sebagai internal                   Sebelum Anda menginstal module, ada          yakin ada peningkatan perfomance system.
    kernel. (Gambar 5).                                   baiknya Anda back-up dulu modul-             Perlu diingat, Anda akan mengukur sesuatu
10. Pada bagian “Processor type and                       modul kernel Anda sekarang, apalagi jika     yang satuannya menggunakan milisecond
    features”, non aktifkan pilihan “Symmet-              versi kernel yang digunakan sama-sama        bahkan microsecond, jadi sangat sulit
    ric Multi processing support”. (Gambar                2.4.22, caranya:                             diukur secara kasat mata.
    6) Untuk diketahui, jika Anda aktifkan                1. Pindah ke direktori /lib/modules/             Tambahkan juga baris-baris berikut di
    dukungan SMP pada kernel namun                        2. tar -f ./2.4.18-backup.tar —preserve      file /etc/rc.d/rc.local.


78      INFOLINUX MEI 2004                                   www.infolinux.web.id
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial                                            TUTORIAL
                                                                                                                              Tuning Kernel




   Gambar 5. Character devices.                                           Gambar 6. Processor type - Unsynced TSC.


[[Listing 1]]                                  di atas bisa saja tidak cocok untuk harddisk    biasanya pada kategori “devel” semisal
 # ——begin——-                                  Anda, jadi Anda harus rajin berekperimen.       binutils, glibc, kernel-source, kernel-headers,
 # untuk secara otomatis mendeteksi patch      Oh ya... jalankan dulu perintah ‘hdparm’ di     gcc, g++. Jadi jika Anda menemui pesan
 low latency dan mengaktifkan fungsi low       atas untuk segera mengoptimasikan               error tidak ditemukannya suatu file saat
 latency                                       harddisk Anda karena setelah ini Anda akan      kompilasi Cerberus Suite, Anda perlu
 [ -x /proc/sys/kernel/lowlatency ] && echo    memasuki tahap benchmark. Tambahan              menginstal paket-paket devel terlebih
 1 > /proc/sys/kernel/lowlatency               tip: gunakan hdparm -t -T untuk benchmark       dahulu. Gunakan command berikut untuk
                                               I/O hard disk anda. Cek selalu nilai-nilai      membantu Anda mencari paket yang sesuai.
/sbin/hdparm -W0 -m8 -d1 -u1 -c1 -X66 /        yang didapat dan ambil parameter yang            # rpm —filesbypkg —qlp /path/ke/
dev/hda                                        memberikan nilai paling optimal.                 direktori/RPM_Anda | grep –I
#gunakan hdparm -t -T untuk benchmark I/           Untungnya untuk benchmark ini sudah          nama_file_yang _diperlukan
O hard disk                                    ada paket open source yang berguna dan
# ——end——-                                     siap pakai. Salah satunya adalah Cerberus           Nah, sebelum anda boot kernel baru,
                                               Suite (http://people.redhat.com/bbrock/         kita benchmark dulu sistem Anda yang
    Mungkin anda penasaran, “Buat apa          stress-kernel/stress-kernel-1.2.15-             lama. Caranya mudah, ikuti langkah berikut
pake hdparm?” Singkat saja, untuk              16.3.src.rpm) untuk pembebanan sistem.          (ini sekadar ide, Anda tidak harus mengikuti
meningkatkan performance I/O harddisk.         Dan untuk pengukur latency digunakan            alur ini).
Sebagai catatan, kernel Linux bisa saja        Amlat (http://www.zip.com.au/~akpm/             1. Jalankan X Window (bisa KDE, Gnome
tidak optimal dalam menggunakan harddisk       linux/amlat.tar.gz). Download kedua                 atau yang lain). Matikan service-service
Anda dan ini akan berakibat tidak efektifnya   package ini dan kompilasi dengan cara               yang tidak dibutuhkan semisal Apache,
harddisk bekerja. Perintah hdparm di atas      sebagai berikut:                                    MySQL, dan seterusnya.
mengerjakan sebagai berikut:                   1. Untuk Cerberus suite, langsung lakukan       2. Jalankan XMMS (atau media player lain
    W0—untuk menon aktifkan write                  rebuild untuk membuat paket rpm-nya:            yang bisa play file mp3). Lalu putar
    caching. Ini akan mempercepat proses               rpm —rebuild ./stress-kernel-1.2.15-        beberapa lagu secara looping. Jalankan
    penulisan sekaligus mencegah data                  16.3.src.rpm                                juga visual plug-in semisal openGL
    korup.                                             rpm —Uvh ./stress-kernel-1.2.15-            visualization untuk menambah beban
    m8—untuk mengeset sector count                     16.3.i386.rpm                               CPU.
    menjadi 8 sector.                                                                          3. Jalankan Cerberus Suite, caranya pindah
    d1—untuk mengaktifkan penggunaan           2. Untuk Amlat lakukan ekstrak dan                  ke direktori /usr/bin/ctcs, lalu jalankan
    DMA.                                          kompilasi sebagai berikut:                       skrip hell-hound.sh. Untuk pertanyaan
    u1—untuk mengaktifkan penggunaan                 cp ./amlat.tar.gz /usr/src/                   “How much extra memory (in MB)
    interrupt mask.                                  cd /usr/src && tar —xvzf ./                   beyond the defaults do you want to
    c1—untuk mengaktifkan penggunaan                 amlat.tar.gz                                  reserve? “ jawab dengan ‘0’. Pilih “yes”
    EIDE 32 bit I/O.                                 cd amlat && make                              cukup di bagian “Crash me Test”dan
    X66—untuk mengaktfkan mode Ultra                                                               jawab “No” di bagian lain. Jawab
    DMA 2 pada harddisk.                          Cerberus Suite tersedia juga dalam versi         pertanyaan “Proceed?” dengan “yes”
                                               package binary jika Anda ingin langsung             (Gambar 8).
   Ketik ‘man hdparm’ untuk mempelajari        mencoba. Catatan lainnya, Cerberus Suite        4. Sambil Cerberus Suite berjalan, buka
penggunaan hdparm lebih lanjut. Parameter      membutuhkan beberapa paket RPM yang                 console lain dan jalankan realfeel2.


                                                      www.infolinux.web.id                                       INFOLINUX MEI 2004       79
TUTORIAL                                         Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial
Tuning Kernel




     Gambar 7. Kernel hacking.                                                Gambar 8. Cerberus suite.


         cd /usr/src/amlat && ./realfeel2 —        $n=0;                                             $mean_sub_val * $freq[$i];
         samples 1000000 ./normal.hist             $temp = 0;
        Tunggu sampai selesai seluruh              $average= 0;                                     }
        iterasi, lalu pindah ke console berisi     while (<STDIN>)                                  $stddev_all=sqrt($stddev_node/
        task Cerberus dan tekan “Ctrl-C”           {                                                $sum_of_freq);
                                                      #print $_;
    Untuk sementara simpan dahulu file ini            $max = 0;                                     print “max value is      : $maxn”;
dan reboot ulang Linux anda dan pilih                 $freq_mul_val = 0;                            print “total sample is : $sum_of_freqn”;
kernel yang baru Anda buat. Jangan lupa                @this_array=split(/s+/,$_, 2);              print “average is       : $averagen”;
sertakan driver-driver suara untuk nantinya           #print “detik : $this_array[0] frekuensi      print “standart deviation : $stddev_alln”;
persiapan memutar MP3 (jika Anda akan                 : $this_array[1] n”;                         find_percent(0.1);
benchmark lagi menggunakan XMMS).                     $sum_of_freq += $this_array[1];               find_percent(0.2);
    Ok, sudah boot kernel baru? Sekarang              #cari nilai maximal                           find_percent(0.5);
jalankan langkah 1 - 4 seperti di atas, tapi          if ($max<$this_array[0])                      find_percent(0.7);
kali ini simpan file hasil benchmark realfeel2        {                                             find_percent(1);
dengan nama lain, misal namakan                         $max=$this_array[0];                        find_percent(5);
“lowlat.hist”. Sekarang saatnya membuat               }                                             find_percent(10);
report dari kedua file ini sekaligus mengecek         #hitung frequency * nilai                     #—————end———————
peningkatan perfoma Anda bisa gunakan                 $freq_mul_val[$n]= $this_array[0] *
script Perl berikut untuk membuat report.             $this_array[1];                                  Gunakan editor teks semisal vi atau
                                                      $val[$n] =$this_array[0];                    Kwrite untuk menyalin script di atas dan
[[Listing 2. Script pengolah hasil realfeel]]          $freq[$n]=$this_array[1];                   simpan ini misal dengan nama “hitung.pl”.
 #————————begin—————————                                                                           Lalu jalankan masing-masing dengan input
 #!/usr/bin/perl                                       $n++;                                       file hasil output realfeel2:
 sub find_percent                                  }                                                # chmod a+x ./hitung.pl
 {                                                                                                  # ./hitung.pl < ./normal.hist > ./report-
   my $limit = shift(@_);                          #jumlahkan untuk mencari rata-rata               normal.txt
   my $result = 0;                                 for ($i=0;$i<$n;$i++)                            # ./hitung.pl < ./lowlat.hist > ./report-
   for ($i=0;($i<$n) &&                            {                                                lowlat.txt
    ($val[$i]<=$limit);$i++)                         $temp += $freq_mul_val[$i]
   {                                               }                                                  Sebagai contoh, pada komputer penulis
      $result += $freq[$i];                        $average = $temp / $sum_of_freq;                (AMD Athlon XP 1800+, 256 MB RAM),
   }                                               #mencari nilai standar deviasi                  hasil parsing script di atas sebagai berikut:
   $result = $result/$sum_of_freq;                 $temp=0;
   print “Percentage below and equal to            $stddev_node=0;                                 (Untuk file normal hist)
   $limit milisecond is = $resultn”;              for ($i=0;$i<$n;$i++)                            max value is       : 946.5
 }                                                 {                                                total sample is    : 999997
                                                     $mean_sub_val=$average-$val[$i];               average is         : 0.192800978402935
$sum_of_freq=0;                                      $stddev_node += $mean_sub_val *                standart deviation : 4.20864151148962


80      INFOLINUX MEI 2004                                www.infolinux.web.id
Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial                                        TUTORIAL
                                                                                                                          Tuning Kernel



Percentage below and equal to 0.1        milisecond is = 0.985009                          baik kedua nilai ini. Sistem bisa dikatakan
milisecond is = 0.900977702933109        Percentage below and equal to 0.7                 semakin membaik jika nilai rata-rata latency
Percentage below and equal to 0.2        milisecond is = 0.989392                          mengecil, juga nilai standart deviation.
milisecond is = 0.921836765510297        Percentage below and equal to 1                   Kenapa begitu? Katakan saja nilai rata-rata
Percentage below and equal to 0.5        milisecond is = 0.995667                          mengecil sampai 50%, tapi standart
milisecond is = 0.948988846966541        Percentage below and equal to 5                   deviation malah membesar 40%. Ini artinya
Percentage below and equal to 0.7        milisecond is = 0.999869                          dalam saat saat tertentu, nilai latency anda
milisecond is = 0.962427887283662        Percentage below and equal to 10                  sangat berbeda jauh ketimbang nilai rata-
Percentage below and equal to 1          milisecond is = 0.999983                          rata. Jadi yang ideal, jika didapat penurunan
milisecond is = 0.974251922755768                                                          nilai rata-rata latency dan standart deviation.
Percentage below and equal to 5              Bagaimana kita membaca report ini?                Sistem Anda membaik? Syukurlah kalau
milisecond is = 0.996058988176964        Pertama, kita lihat nilai “max value”. Terlihat   begitu, berarti tidak sia-sia anda mengikuti
Percentage below and equal to 10         pada kernel normal, latency maksimal adalah       artikel ini. Atau sistem Anda malah mem-
milisecond is = 0.998402995208986        946,5 ms (milisecond). Pada kernel +              buruk? Jangan keburu kecewa atau malah
                                         patch, turun menjadi 16,4 ms. Lumayan             memboikot artikel saya. Cobalah berekspe-
(Untuk file lowlat.hist)                 kan? Indikator sebenarnya terlihat pada           rimen lagi, misal dengan nilai timer HZ yang
 max value is        : 16.4              average (rata-rata) dan standart deviation        lebih kecil atau lebih besar. Sebenarnya
 total sample is     : 1000000           (nilai yang menyatakan besarnya perbedaan         masih banyak teknik penurunan latency, dan
 average is          : 0.0343402         nilai-nilai sampel terhadap nilai rata-rata).     karena ini ada kaitannya dengan optimasi
 standart deviation : 0.18507212287095   Pada kernel normal, rata-rata latency             sistem operasi maka banyak hal yang perlu
 Percentage below and equal to 0.1       0.192800978402935 ms dengan standart              dilakukan. Semoga ulasan pada artikel ini
 milisecond is = 0.940067                deviation 4.20864151148962 ms. Pada               bisa membantu Anda men-tuning system
 Percentage below and equal to 0.2       kernel + patch menjadi rata-rata                  sekaligus menambah pengetahuan akan
 milisecond is = 0.954387                0.0343402 ms dengan standart deviation            mekanisme kernel Linux.
 Percentage below and equal to 0.5       0.18507212287095 ms. Perhatikan baik-             Mulyadi Santosa (a_mulyadi@softhome.net)




                                                  IKLAN



                                                 www.infolinux.web.id                                        INFOLINUX MEI 2004        81

More Related Content

What's hot

What's hot (9)

Perkembangan ROM
Perkembangan ROMPerkembangan ROM
Perkembangan ROM
 
Tutorial lvm
Tutorial lvmTutorial lvm
Tutorial lvm
 
Jamaludin - Proses pada Sistem Operasi
Jamaludin - Proses pada Sistem OperasiJamaludin - Proses pada Sistem Operasi
Jamaludin - Proses pada Sistem Operasi
 
Dedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem OperasiDedi Purwanto - Proses - proses Sistem Operasi
Dedi Purwanto - Proses - proses Sistem Operasi
 
Bab 4 memory internal
Bab 4 memory internalBab 4 memory internal
Bab 4 memory internal
 
Perkembangan RAM
Perkembangan RAMPerkembangan RAM
Perkembangan RAM
 
Zulyanti Megasari - Manajemen Memory
Zulyanti Megasari -  Manajemen MemoryZulyanti Megasari -  Manajemen Memory
Zulyanti Megasari - Manajemen Memory
 
Pengenalan hardware
Pengenalan hardwarePengenalan hardware
Pengenalan hardware
 
Pengenalan hardware
Pengenalan hardwarePengenalan hardware
Pengenalan hardware
 

Similar to Mulyadi tuningkarnel

Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...Sutni_Wulan_Sari_Puasa
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputeraulia sriwahyuni
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputerzulin zul
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputeraulia sriwahyuni
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputeraulia sriwahyuni
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputerYudhistiraYudhi1
 
Mengcompiledan menginstalkernellinux
Mengcompiledan menginstalkernellinuxMengcompiledan menginstalkernellinux
Mengcompiledan menginstalkernellinuxvanheatsink
 
Pertemuan 12 & 13 input output
Pertemuan 12 & 13 input outputPertemuan 12 & 13 input output
Pertemuan 12 & 13 input outputBuhori Muslim
 
Modul 2 Piranti Keras Integrasi Teknologi Perancangan dan Manufaktur .pdf
Modul 2 Piranti Keras  Integrasi Teknologi Perancangan dan Manufaktur .pdfModul 2 Piranti Keras  Integrasi Teknologi Perancangan dan Manufaktur .pdf
Modul 2 Piranti Keras Integrasi Teknologi Perancangan dan Manufaktur .pdfsallycahyati1
 
File system di linux
File system di linuxFile system di linux
File system di linuxDhea Dhea
 
File system di linux
File system di linuxFile system di linux
File system di linuxDhea Dhea
 

Similar to Mulyadi tuningkarnel (20)

Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
Tugas II SO II hybrid raid 1 (mirror) ram drive & sata hdd menggunakan lvm de...
 
Jenis computer
Jenis computerJenis computer
Jenis computer
 
Slide 2-sistem-komputer
Slide 2-sistem-komputerSlide 2-sistem-komputer
Slide 2-sistem-komputer
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputer
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputer
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputer
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputer
 
Bab 2 bagian dalam komputer
Bab 2 bagian dalam komputerBab 2 bagian dalam komputer
Bab 2 bagian dalam komputer
 
Merakit Komputer
Merakit KomputerMerakit Komputer
Merakit Komputer
 
1.pengenalan sistem operasi
1.pengenalan sistem operasi1.pengenalan sistem operasi
1.pengenalan sistem operasi
 
Cara Mahir Merakit Komputer
Cara Mahir Merakit KomputerCara Mahir Merakit Komputer
Cara Mahir Merakit Komputer
 
Bab5 -manajemen_io
Bab5  -manajemen_ioBab5  -manajemen_io
Bab5 -manajemen_io
 
Mengcompiledan menginstalkernellinux
Mengcompiledan menginstalkernellinuxMengcompiledan menginstalkernellinux
Mengcompiledan menginstalkernellinux
 
Pertemuan 12 & 13 input output
Pertemuan 12 & 13 input outputPertemuan 12 & 13 input output
Pertemuan 12 & 13 input output
 
Modul 2 Piranti Keras Integrasi Teknologi Perancangan dan Manufaktur .pdf
Modul 2 Piranti Keras  Integrasi Teknologi Perancangan dan Manufaktur .pdfModul 2 Piranti Keras  Integrasi Teknologi Perancangan dan Manufaktur .pdf
Modul 2 Piranti Keras Integrasi Teknologi Perancangan dan Manufaktur .pdf
 
File system di linux
File system di linuxFile system di linux
File system di linux
 
File system di linux
File system di linuxFile system di linux
File system di linux
 
Sistem operasi6
Sistem operasi6Sistem operasi6
Sistem operasi6
 
Arifirwansyah merakit
Arifirwansyah merakitArifirwansyah merakit
Arifirwansyah merakit
 
mridwan merakit
mridwan merakitmridwan merakit
mridwan merakit
 

More from Mas Suwondo

Pengenalan gimp 2
Pengenalan  gimp 2Pengenalan  gimp 2
Pengenalan gimp 2Mas Suwondo
 
Adri multimedia-pengajaran
Adri multimedia-pengajaranAdri multimedia-pengajaran
Adri multimedia-pengajaranMas Suwondo
 
Romi mandrakedesktop
Romi mandrakedesktopRomi mandrakedesktop
Romi mandrakedesktopMas Suwondo
 
Noprianto studio
Noprianto studioNoprianto studio
Noprianto studioMas Suwondo
 
Noprianto garlic
Noprianto garlicNoprianto garlic
Noprianto garlicMas Suwondo
 
Noprianto desktopgnome
Noprianto desktopgnomeNoprianto desktopgnome
Noprianto desktopgnomeMas Suwondo
 
Noprianto bongkar
Noprianto bongkarNoprianto bongkar
Noprianto bongkarMas Suwondo
 
Adam opensource4all
Adam opensource4allAdam opensource4all
Adam opensource4allMas Suwondo
 
Michael opensource
Michael opensourceMichael opensource
Michael opensourceMas Suwondo
 
Choirul winpcbutut
Choirul winpcbututChoirul winpcbutut
Choirul winpcbututMas Suwondo
 
Choirul windarilinux
Choirul windarilinuxChoirul windarilinux
Choirul windarilinuxMas Suwondo
 
Choirul integrasilinuxwin
Choirul integrasilinuxwinChoirul integrasilinuxwin
Choirul integrasilinuxwinMas Suwondo
 
Petunjuk Penggunaan Linux Blankon
Petunjuk Penggunaan Linux BlankonPetunjuk Penggunaan Linux Blankon
Petunjuk Penggunaan Linux BlankonMas Suwondo
 
Membuat Kalender Dengan OO Draw
Membuat Kalender Dengan OO DrawMembuat Kalender Dengan OO Draw
Membuat Kalender Dengan OO DrawMas Suwondo
 

More from Mas Suwondo (19)

Pengenalan gimp 2
Pengenalan  gimp 2Pengenalan  gimp 2
Pengenalan gimp 2
 
Adri multimedia-pengajaran
Adri multimedia-pengajaranAdri multimedia-pengajaran
Adri multimedia-pengajaran
 
Romi mandrakedesktop
Romi mandrakedesktopRomi mandrakedesktop
Romi mandrakedesktop
 
Reza ssh
Reza sshReza ssh
Reza ssh
 
Noprianto vnc
Noprianto vncNoprianto vnc
Noprianto vnc
 
Noprianto studio
Noprianto studioNoprianto studio
Noprianto studio
 
Noprianto gnome
Noprianto gnomeNoprianto gnome
Noprianto gnome
 
Noprianto garlic
Noprianto garlicNoprianto garlic
Noprianto garlic
 
Noprianto desktopgnome
Noprianto desktopgnomeNoprianto desktopgnome
Noprianto desktopgnome
 
Noprianto bongkar
Noprianto bongkarNoprianto bongkar
Noprianto bongkar
 
Adam opensource4all
Adam opensource4allAdam opensource4all
Adam opensource4all
 
Michael opensource
Michael opensourceMichael opensource
Michael opensource
 
Choirul winpcbutut
Choirul winpcbututChoirul winpcbutut
Choirul winpcbutut
 
Choirul windarilinux
Choirul windarilinuxChoirul windarilinux
Choirul windarilinux
 
Choirul integrasilinuxwin
Choirul integrasilinuxwinChoirul integrasilinuxwin
Choirul integrasilinuxwin
 
Berfikir lokal
Berfikir lokalBerfikir lokal
Berfikir lokal
 
Guidance redhat
Guidance redhatGuidance redhat
Guidance redhat
 
Petunjuk Penggunaan Linux Blankon
Petunjuk Penggunaan Linux BlankonPetunjuk Penggunaan Linux Blankon
Petunjuk Penggunaan Linux Blankon
 
Membuat Kalender Dengan OO Draw
Membuat Kalender Dengan OO DrawMembuat Kalender Dengan OO Draw
Membuat Kalender Dengan OO Draw
 

Mulyadi tuningkarnel

  • 1. TUTORIAL Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Tuning Kernel Meningkatkan Kinerja Multimedia dengan Tuning Kernel Sering pada kombinasi multitasking tertentu, kernel Linux seperti “kedodoran” padahal dari spesifikasi hardware masih mencukupi. Hal ini terutama terjadi pada pengguna rumahan yang mania multimedia. Lalu, bagaimana cara tuning-nya? A nda punya komputer bagus, yang pernah sedikit belajar assembly, Anda CPU akan melewati “bus” (bukan bus yang Athlon 3 GHz, memori 512 MB, akan tahu bahwa interrupt ini ada banyak mampir di halte) dengan kecepatan tertentu video card GeForceFX 5900, jumlahnya. Salah satunya, interupt 10h menuju harddisk melewati controller EIDE harddisk SCSI. Welah-welah, mestinya Anda (hexa) berkaitan dengan manipulasi display (jika harddisk Anda IDE). Tapi jangan lupa, bisa jadi lupa waktu (asal jangan lupa ke monitor. Pada sistem operasi perintah akses I/O ini (lagi-lagi) melewati kerja...hehehe. “Bejibun” game, “selong- multitasking seperti Linux, pengiriman lapisan sistem operasi. Jadi selain kecepatan song” MP3, VCD Matrix Reloaded, coba- interrupt akan masuk ke dalam antrian bus, seberapa cepat sistem operasi coba konversi MP3 ke OGG, render gambar, (queue). Ini disebabkan mungkin saja dalam melayani akses I/O ini juga sangat dan seabrek rencana lain udah membayang. waktu yang sama, ada permintaan interrupt berpengaruh pada kecepatan akses. Lalu ada boot Linux Anda di komputer baru. lain (misal event keyboard pada interrupt Terlihat dari penjelasan singkat di atas, Tapi setelah beberapa job tadi dijalankan 16h). Antrian interrupt ini akan dikerjakan keterlambatan (delay atau latency) adalah (mungkin lebih tepat disebut “bom nuklir”) satu per satu berdasar urutan masuk (First sesuatu yang tidak terelakkan. Benar, sekali anda berpikir “baru 5 task multimedia, kok In First Out) kecuali pada program real time. lagi, tidak terelakkan. Bahkan pada sistem udah keok, gimana nih? Saya kan maunya Jika program yang meminta akses interrupt yang mengklaim dirinya real time sekalipun. sambil render gambar, dengar MP3, plus tidak segera dilayani, maka program Yang bisa kita lakukan adalah mereduksi compile program”. Tipe orang begini (dan tersebut akan dihentikan sementara (sleep) latency ini di bawah suatu batasan saya juga) mungkin tipe benchmarker sejati. dan dibangunkan lagi (wake up) jika sehingga kita mengganggap sistem sudah Inginnya benchmark dan benchmark dan interrupt telah dilayani. responsif. Soal kata “responsif” ini, sangat tidak pernah puas dengan tweaking. Dari paragraf di atas, terlihat ada kaitan relatif. Sebuah server dengan CPU 200 Kira-kira dengan asal usul yang sama antara waktu pelayanan interrupt dengan MHz mungkin cukup untuk mail server plus karena sedang mulai coba-coba mekanisme scheduler. Secara umum, dengan 100 account, tapi tidak cukup memprogram di kernel, saya mulai scheduler bisa dianalogikan seperti polisi lalu untuk mengolah video sekaligus streaming eksplorasi mengenai cara meningkatkan lintas yang bertugas pada perempatan jalan. ke Internet. Jadi tergantung kita sendiri, kinerja kernel. Dasar pemikirannya begini. Polisi (scheduler) akan menyetop mobil dari bagaimana yang kita anggap cukup. Kernel adalah jantung dari sistem operasi. 3 ruas (ruas A,B,C) dan memperbolehkan Sekarang pertanyaannya, “OK, sekarang Bisa juga dikatakan sebagai pengatur utama mobil-mobil dari 1 ruas sisa (ruas D) berjalan. saya mulai paham letak keterlambatan OS interaksi pengguna dan hardware Setelah (anggap saja) 1 menit, giliran ruas A saya, lalu bagaimana cara tuning-nya?” komputer. Kernel yang diprogram secara diperbolehkan berjalan, dan ruas B C D Karena konteks pembicaraan kita pada OS, baik akan menghasilkan kinerja sistem yang berhenti. Demikian seterusnya. Kecerdikan maka ada beberapa patch yang bisa baik pula. Jadi biarpun hardware bagusnya dan kecekatan polisi (scheduler) akan membantu yaitu: selangit, kalau kernelnya sedang-sedang, menentukan apakah antrian mobil bisa 1. Low latency patch buatan Andrew sistem tidak akan bekerja optimal. segera dikosongkan dengan segera sambil Morton. Berbicara mengenai optimasi sistem, melihat antrian baru dari segala ruas. Bisa 2. Preemptible kernel patch buatan Robert sebenarnya banyak aspek yang terlibat. saja ruas C terus menerus mendapat antrian, M Love. Kalau kita persempit pada aspek multime- tapi ruas A B dan D cukup sepi. 3. Variable HZ patch buatan Robert M Love. dia, saya simpulkan faktor-faktor yang Faktor lain yang bermain adalah terlibat adalah waktu respons interupt, kecepatan akses I/O. I/O disini bisa Untuk tiga patch di atas, Anda mem- kecepatan kerja scheduler, dan kecepatan bermacam-macam, bisa ke arah disk (floppy, butuhkan source kernel “vanilla”. Maksud akses I/O. Faktor-faktor ini akan dijelaskan harddisk, USB storage, CD-ROM drive, dan “vanilla” di sini bukan seperti rasa es krim, satu per satu. sebagainya), video card, memory, bahkan tapi istilah untuk menyatakan source yang Hardware komputer bekerja dengan cara network card. Pada saat CPU meminta asli belum ditambah patch apapun. Penulis menerima instruksi berupa interrupt. Bagi akses ke (misalkan) harddisk, maka perintah sarankan Anda memakai kernel 2.4.22 dari 76 INFOLINUX MEI 2004 www.infolinux.web.id
  • 2. Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial TUTORIAL Tuning Kernel Gambar 1. Code maturity level options. Gambar 2. Processor type - Low latency. www.kernel.org. Patch nomor satu bisa Logikanya, saat kernel mengerjakan handler untuk timer yang dipanggil pada anda ambil dari http://www.zip.com.au/ interrupt, tidak boleh terjadi perpindahan ke interval tertentu. Misalkan timer diset tiap ~akpm/linux/schedlat.html. Patch nomor task lain. Kalau ini terjadi, sistem akan 0.01 mikro second, makan tiap 0.01 mikro dua dan tiga bisa Anda download dari http:// bingung karena di satu sisi interrupt sedang second scheduler akan berpindah ke task www.tech9.net/rml/linux/. Untuk kernel dikerjakan, tapi karena tidak sampai selesai, lain (kecuali ada keadaan seperti nomer 2). 2.4.22 ambil patch sebagai berikut: bisa jadi ada akses ke interrupt yang sama Mulai paham idenya? Jadi akalnya, kita http://www.zip.com.au/~akpm/linux/ sehingga saling menumpuk. perkecil interval ini. Kernel Linux biasanya 2.4.22-low-latency.patch.gz Demikian juga saat ada program yang mengambil suatu nilai yang “aman” untuk http://www.kernel.org/pub/linux/kernel/ akan mencoba mengambil atau melepas semua hardware, jadi bisa saja nilai ini terlalu people/rml/preempt-kernel/v2.4/ lock. Bayangkan seperti ini. Ada dua orang A rendah untuk PC Anda. Patch variable HZ preempt-kernel-rml-2.4.22-1.patch dan B. Mereka akan mengambil sebuah mengijinkan Anda mengubah nilai ini saat http://www.kernel.org/pub/linux/kernel/ gembok (lock). Pada saat tangan A terjulur konfigurasi kernel ke sembarang nilai. people/rml/variable-HZ/v2.4/ mengambil gembok, tiba tiba ada keajaiban OK, sudah mulai penasaran? Segera alam dan waktu untuk A berhenti (sudah download kernel plus patch dan ikuti Sebenarnya bagaimana cara kerja tiga nonton Matrix kan? Bayangkan saja seperti langkah-langkah berikut: patch tadi? Berikut ringkasannya: Bullet Time, beres). Si B dibangunkan dan 1. ”Su” menjadi root Low latency patch memodifikasi kode juga bergerak mengambil gembok. Sampai 2. Unpack source kernel yang baru, misal kode kernel yang memakan waktu lama dengan B sukses memegang gembok, si A di /usr/src agar dalam bagian tersebut kernel OS masih “mati suri”, lalu giliran si B di-”stop”. Si # cp linux-2.4.22.tar.bz2 /usr/src/ selama beberapa kali membreak task dan A dibangunkan dan melanjutkan “gerakan” # cd /usr/src memanggil scheduler sehingga kernel mengambil gembok. Tapi apa daya, gembok # bunzip2 linux-2.4.22.tar.bz2 && tar mempunyai waktu menjalankan tugas yang sudah di tangan B. Dalam kamus komputer, xvf linux-2.4.22.tar lain. Untuk ini, Andrew Morton (dan Ingo keadaan seperti ini dinamakan race condition Molnar, maintainer sebelumnya) melengkapi alias berebut. Mengambil dan melepas lock Akan tercipta direktori linux-2.4.22 di diri dengan sistem pelacak untuk mengukur adalah mekanisme atomic (artinya tidak bawah /usr/src waktu di mana saja tepatnya kernel paling boleh dihentikan oleh proses lain). 3. Kumpulkan patch di /usr/src/ sibuk. Lalu secara bertahap ditambahkan Jadi disimpulkan oleh Robert Love, # cp 2.4.22-low-latency.patch.gz / kode-kode untuk rescheduling sambil tetap setelah kembali dari interrupt handler atau usr/src mempertahankan konsistensi task. lock dalam keadaan bebas, re-scheduling # cp vhz-j64-2.4.22.patch /usr/src Preemption patch melakukan modifikasi dijadwalkan kembali. Dengan demikian # cd /usr/src && gunzip 2.4.22-low- pada kernel sehinga scheduler bekerja secara diharapkan respons sistem lebih tinggi. latency.patch.gz lebih “rajin dan efisien”. Ini dilakukan dengan Variable HZ adalah patch untuk cara menambah kesempatan melakukan memodifikasi frekuensi dari timer pada 4. Apply patch ke kernel rescheduling jika task yang sekarang kernel. Gambarannya begini, scheduler # cd /usr/src/linux-2.4.22 dikerjakan kernel bukan merupakan interupt sistem melakukan proses preemption # patch -p1 < ../preempt-kernel-rml- handler dan tidak task tidak memegang spin (perpindahan satu task ke task lain) saat ada 2.4.22-1.patch lock (suatu jenis variabel sistem untuk interrupt trap dari timer hardware (ya, # patch -p1 < ../2.4.22-low- mengamankan akses ke suatu area memory motherboard Anda mempunyai timer). Pada latency.patch terhadap kemungkinan korupsi data). saat inisialiasi kernel, “ditanam” suatu # patch -p1 < ../vhz-j64-2.4.22.patch www.infolinux.web.id INFOLINUX MEI 2004 77
  • 3. TUTORIAL Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Tuning Kernel Gambar 3. Processor type - Preemptible Kernel. Gambar 4. General setup - Timer frequency. Pastikan tidak ada kata-kata rejected Anda hanya memiliki satu processor, -c —exclude build ./2.4.18-3/ && saat patching. Jika ada, ada kemung- maka kernel akan tidak efektif karena gzip ./2.4.18-backup.tar kinan source kernel atau patch yang pada sistem SMP ada tambahan anda download tidak sesuai. Cek ulang mekanisme locking untuk mencegah (Ganti argument pada opsi -f dengan versi patch dan kernel yang sesuai. race condition antar-processor dalam sembarang nama file yang diingin- 5. Mulai persiapan kompilasi kernel mengakses suatu resource (misal kan. Argumen terakhir pada tar # make mrproper memory) maupun sinkronisasi lock. adalah direktori yang akan di-back- # make menuconfig up, jadi arahkan ke direktori <versi- Opsi-opsi lain bisa Anda sesuaikan sendiri kernel-anda>. Opsi —exclude untuk (Penulis biasa memakai menu curses) misal untuk dukungan APM. Penulis sendiri mengabaikan direktori build karena ini atau “make config” (text based) atau memilih mengaktifkan opsi “Magic SysRq adalah symbolic link). make xconfig (X based). key” pada bagian “Kernel Hacking” (gambar 6. Pada bagian “code maturity level 7). Dengan opsi ini, akan di-enable suatu cd /usr/src/linux-2.4.22 && make options” aktifkan “Prompt for develop- “tombol backdoor” yang memungkinkan kita modules_install ment and/or incomplete code/drivers” melakukan aksi tertentu pada OS. Ini sangat cp arch/i386/boot/bzImage /boot/linux- (lihat Gambar-1). berguna dalam keadaan darurat. Sebagai 2.4.22-varhz 7. Pada bagian “processor type and contoh untuk mendump isi register lakukan cp System.map /boot/System.map- features” aktifkan “Low Latency sebagai berikut (setelah kernel baru Anda 2.4.22-varhz scheduling”, “Control low latency with build). sysctl”, “Preemptible kernel”. Sesuaikan # echo “1” > /proc/sys/kernel/sysrq Edit loader Anda, di sini dicontohkan juga entry “Processor family” dengan untuk LILO tambahkan entry sebagai berikut: jenis CPU Anda. (Gambar 2 dan 3). Tekan Alt-Print Screen-P (huruf P) (note: image=/boot/linux-2.4.22-varhz 8. Pada bagian “general setup”, isikan coba “O” untuk shutdown). label=linux-varhz angka 500 pada “Timer frequncy”. Setelah selesai pilih “Exit”. Pada read-only Cukup sorot bagian “Timer Frequency”, pertanyaan “Do you wish to save your new root=/dev/hda2 tekan Enter, ketik angka yang Anda kernel configuration” jawab “Yes”. Pada inginkan, lalu tekan Enter lagi. Bisa juga direktori kernel source Anda dibuat file (Ganti /dev/hda2 dengan partisi tempat dicoba nilai 1000 (Gambar 4). .config, simpan baik-baik file ini. Sekarang root file system Anda). 9. Pada bagian “Character Devices” saatnya kompilasi kernel. Ketikkan “lilo” untuk me-load entry baru. aktifkan pilihan ‘Enhanced Real Time cd /usr/src/linux-2.4.22 Sampai disini kompilasi sudah sukses. Tapi Clock Support”. Anda bisa pilih sebagai make dep && make bzImage tunggu, sebelum kompilasi ada baiknya internal kernel <*> atau module make modules anda lakukan benchmark sehingga Anda <M>. Saya sarankan sebagai internal Sebelum Anda menginstal module, ada yakin ada peningkatan perfomance system. kernel. (Gambar 5). baiknya Anda back-up dulu modul- Perlu diingat, Anda akan mengukur sesuatu 10. Pada bagian “Processor type and modul kernel Anda sekarang, apalagi jika yang satuannya menggunakan milisecond features”, non aktifkan pilihan “Symmet- versi kernel yang digunakan sama-sama bahkan microsecond, jadi sangat sulit ric Multi processing support”. (Gambar 2.4.22, caranya: diukur secara kasat mata. 6) Untuk diketahui, jika Anda aktifkan 1. Pindah ke direktori /lib/modules/ Tambahkan juga baris-baris berikut di dukungan SMP pada kernel namun 2. tar -f ./2.4.18-backup.tar —preserve file /etc/rc.d/rc.local. 78 INFOLINUX MEI 2004 www.infolinux.web.id
  • 4. Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial TUTORIAL Tuning Kernel Gambar 5. Character devices. Gambar 6. Processor type - Unsynced TSC. [[Listing 1]] di atas bisa saja tidak cocok untuk harddisk biasanya pada kategori “devel” semisal # ——begin——- Anda, jadi Anda harus rajin berekperimen. binutils, glibc, kernel-source, kernel-headers, # untuk secara otomatis mendeteksi patch Oh ya... jalankan dulu perintah ‘hdparm’ di gcc, g++. Jadi jika Anda menemui pesan low latency dan mengaktifkan fungsi low atas untuk segera mengoptimasikan error tidak ditemukannya suatu file saat latency harddisk Anda karena setelah ini Anda akan kompilasi Cerberus Suite, Anda perlu [ -x /proc/sys/kernel/lowlatency ] && echo memasuki tahap benchmark. Tambahan menginstal paket-paket devel terlebih 1 > /proc/sys/kernel/lowlatency tip: gunakan hdparm -t -T untuk benchmark dahulu. Gunakan command berikut untuk I/O hard disk anda. Cek selalu nilai-nilai membantu Anda mencari paket yang sesuai. /sbin/hdparm -W0 -m8 -d1 -u1 -c1 -X66 / yang didapat dan ambil parameter yang # rpm —filesbypkg —qlp /path/ke/ dev/hda memberikan nilai paling optimal. direktori/RPM_Anda | grep –I #gunakan hdparm -t -T untuk benchmark I/ Untungnya untuk benchmark ini sudah nama_file_yang _diperlukan O hard disk ada paket open source yang berguna dan # ——end——- siap pakai. Salah satunya adalah Cerberus Nah, sebelum anda boot kernel baru, Suite (http://people.redhat.com/bbrock/ kita benchmark dulu sistem Anda yang Mungkin anda penasaran, “Buat apa stress-kernel/stress-kernel-1.2.15- lama. Caranya mudah, ikuti langkah berikut pake hdparm?” Singkat saja, untuk 16.3.src.rpm) untuk pembebanan sistem. (ini sekadar ide, Anda tidak harus mengikuti meningkatkan performance I/O harddisk. Dan untuk pengukur latency digunakan alur ini). Sebagai catatan, kernel Linux bisa saja Amlat (http://www.zip.com.au/~akpm/ 1. Jalankan X Window (bisa KDE, Gnome tidak optimal dalam menggunakan harddisk linux/amlat.tar.gz). Download kedua atau yang lain). Matikan service-service Anda dan ini akan berakibat tidak efektifnya package ini dan kompilasi dengan cara yang tidak dibutuhkan semisal Apache, harddisk bekerja. Perintah hdparm di atas sebagai berikut: MySQL, dan seterusnya. mengerjakan sebagai berikut: 1. Untuk Cerberus suite, langsung lakukan 2. Jalankan XMMS (atau media player lain W0—untuk menon aktifkan write rebuild untuk membuat paket rpm-nya: yang bisa play file mp3). Lalu putar caching. Ini akan mempercepat proses rpm —rebuild ./stress-kernel-1.2.15- beberapa lagu secara looping. Jalankan penulisan sekaligus mencegah data 16.3.src.rpm juga visual plug-in semisal openGL korup. rpm —Uvh ./stress-kernel-1.2.15- visualization untuk menambah beban m8—untuk mengeset sector count 16.3.i386.rpm CPU. menjadi 8 sector. 3. Jalankan Cerberus Suite, caranya pindah d1—untuk mengaktifkan penggunaan 2. Untuk Amlat lakukan ekstrak dan ke direktori /usr/bin/ctcs, lalu jalankan DMA. kompilasi sebagai berikut: skrip hell-hound.sh. Untuk pertanyaan u1—untuk mengaktifkan penggunaan cp ./amlat.tar.gz /usr/src/ “How much extra memory (in MB) interrupt mask. cd /usr/src && tar —xvzf ./ beyond the defaults do you want to c1—untuk mengaktifkan penggunaan amlat.tar.gz reserve? “ jawab dengan ‘0’. Pilih “yes” EIDE 32 bit I/O. cd amlat && make cukup di bagian “Crash me Test”dan X66—untuk mengaktfkan mode Ultra jawab “No” di bagian lain. Jawab DMA 2 pada harddisk. Cerberus Suite tersedia juga dalam versi pertanyaan “Proceed?” dengan “yes” package binary jika Anda ingin langsung (Gambar 8). Ketik ‘man hdparm’ untuk mempelajari mencoba. Catatan lainnya, Cerberus Suite 4. Sambil Cerberus Suite berjalan, buka penggunaan hdparm lebih lanjut. Parameter membutuhkan beberapa paket RPM yang console lain dan jalankan realfeel2. www.infolinux.web.id INFOLINUX MEI 2004 79
  • 5. TUTORIAL Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Tuning Kernel Gambar 7. Kernel hacking. Gambar 8. Cerberus suite. cd /usr/src/amlat && ./realfeel2 — $n=0; $mean_sub_val * $freq[$i]; samples 1000000 ./normal.hist $temp = 0; Tunggu sampai selesai seluruh $average= 0; } iterasi, lalu pindah ke console berisi while (<STDIN>) $stddev_all=sqrt($stddev_node/ task Cerberus dan tekan “Ctrl-C” { $sum_of_freq); #print $_; Untuk sementara simpan dahulu file ini $max = 0; print “max value is : $maxn”; dan reboot ulang Linux anda dan pilih $freq_mul_val = 0; print “total sample is : $sum_of_freqn”; kernel yang baru Anda buat. Jangan lupa @this_array=split(/s+/,$_, 2); print “average is : $averagen”; sertakan driver-driver suara untuk nantinya #print “detik : $this_array[0] frekuensi print “standart deviation : $stddev_alln”; persiapan memutar MP3 (jika Anda akan : $this_array[1] n”; find_percent(0.1); benchmark lagi menggunakan XMMS). $sum_of_freq += $this_array[1]; find_percent(0.2); Ok, sudah boot kernel baru? Sekarang #cari nilai maximal find_percent(0.5); jalankan langkah 1 - 4 seperti di atas, tapi if ($max<$this_array[0]) find_percent(0.7); kali ini simpan file hasil benchmark realfeel2 { find_percent(1); dengan nama lain, misal namakan $max=$this_array[0]; find_percent(5); “lowlat.hist”. Sekarang saatnya membuat } find_percent(10); report dari kedua file ini sekaligus mengecek #hitung frequency * nilai #—————end——————— peningkatan perfoma Anda bisa gunakan $freq_mul_val[$n]= $this_array[0] * script Perl berikut untuk membuat report. $this_array[1]; Gunakan editor teks semisal vi atau $val[$n] =$this_array[0]; Kwrite untuk menyalin script di atas dan [[Listing 2. Script pengolah hasil realfeel]] $freq[$n]=$this_array[1]; simpan ini misal dengan nama “hitung.pl”. #————————begin————————— Lalu jalankan masing-masing dengan input #!/usr/bin/perl $n++; file hasil output realfeel2: sub find_percent } # chmod a+x ./hitung.pl { # ./hitung.pl < ./normal.hist > ./report- my $limit = shift(@_); #jumlahkan untuk mencari rata-rata normal.txt my $result = 0; for ($i=0;$i<$n;$i++) # ./hitung.pl < ./lowlat.hist > ./report- for ($i=0;($i<$n) && { lowlat.txt ($val[$i]<=$limit);$i++) $temp += $freq_mul_val[$i] { } Sebagai contoh, pada komputer penulis $result += $freq[$i]; $average = $temp / $sum_of_freq; (AMD Athlon XP 1800+, 256 MB RAM), } #mencari nilai standar deviasi hasil parsing script di atas sebagai berikut: $result = $result/$sum_of_freq; $temp=0; print “Percentage below and equal to $stddev_node=0; (Untuk file normal hist) $limit milisecond is = $resultn”; for ($i=0;$i<$n;$i++) max value is : 946.5 } { total sample is : 999997 $mean_sub_val=$average-$val[$i]; average is : 0.192800978402935 $sum_of_freq=0; $stddev_node += $mean_sub_val * standart deviation : 4.20864151148962 80 INFOLINUX MEI 2004 www.infolinux.web.id
  • 6. Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial TUTORIAL Tuning Kernel Percentage below and equal to 0.1 milisecond is = 0.985009 baik kedua nilai ini. Sistem bisa dikatakan milisecond is = 0.900977702933109 Percentage below and equal to 0.7 semakin membaik jika nilai rata-rata latency Percentage below and equal to 0.2 milisecond is = 0.989392 mengecil, juga nilai standart deviation. milisecond is = 0.921836765510297 Percentage below and equal to 1 Kenapa begitu? Katakan saja nilai rata-rata Percentage below and equal to 0.5 milisecond is = 0.995667 mengecil sampai 50%, tapi standart milisecond is = 0.948988846966541 Percentage below and equal to 5 deviation malah membesar 40%. Ini artinya Percentage below and equal to 0.7 milisecond is = 0.999869 dalam saat saat tertentu, nilai latency anda milisecond is = 0.962427887283662 Percentage below and equal to 10 sangat berbeda jauh ketimbang nilai rata- Percentage below and equal to 1 milisecond is = 0.999983 rata. Jadi yang ideal, jika didapat penurunan milisecond is = 0.974251922755768 nilai rata-rata latency dan standart deviation. Percentage below and equal to 5 Bagaimana kita membaca report ini? Sistem Anda membaik? Syukurlah kalau milisecond is = 0.996058988176964 Pertama, kita lihat nilai “max value”. Terlihat begitu, berarti tidak sia-sia anda mengikuti Percentage below and equal to 10 pada kernel normal, latency maksimal adalah artikel ini. Atau sistem Anda malah mem- milisecond is = 0.998402995208986 946,5 ms (milisecond). Pada kernel + buruk? Jangan keburu kecewa atau malah patch, turun menjadi 16,4 ms. Lumayan memboikot artikel saya. Cobalah berekspe- (Untuk file lowlat.hist) kan? Indikator sebenarnya terlihat pada rimen lagi, misal dengan nilai timer HZ yang max value is : 16.4 average (rata-rata) dan standart deviation lebih kecil atau lebih besar. Sebenarnya total sample is : 1000000 (nilai yang menyatakan besarnya perbedaan masih banyak teknik penurunan latency, dan average is : 0.0343402 nilai-nilai sampel terhadap nilai rata-rata). karena ini ada kaitannya dengan optimasi standart deviation : 0.18507212287095 Pada kernel normal, rata-rata latency sistem operasi maka banyak hal yang perlu Percentage below and equal to 0.1 0.192800978402935 ms dengan standart dilakukan. Semoga ulasan pada artikel ini milisecond is = 0.940067 deviation 4.20864151148962 ms. Pada bisa membantu Anda men-tuning system Percentage below and equal to 0.2 kernel + patch menjadi rata-rata sekaligus menambah pengetahuan akan milisecond is = 0.954387 0.0343402 ms dengan standart deviation mekanisme kernel Linux. Percentage below and equal to 0.5 0.18507212287095 ms. Perhatikan baik- Mulyadi Santosa (a_mulyadi@softhome.net) IKLAN www.infolinux.web.id INFOLINUX MEI 2004 81