Senin, 21 Juli 2008

Throughput jaringan yang sebenarnya


mendapatkan speed optimum untuk networking memang tidak mudah tetapi apakah benar bottleneck terdapat pada network. Misalnya jaringan suatu kantor menggunakan jaringan tipe gigabit. artinya


GigE = 1000 Megabits/sec = 125MB/sec

bagaimana mengukur kecepatan real dari bandwidth kita ?

gunakan iperf
install sebagai server iperf -s
test sebagai client iperf -c

hasilnya kayak berikut

------------------------------------------------------------
Client connecting to 192.168.0.130, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.0.132 port 37378 connected with 192.168.0.130 port 5001
[ 3] 0.0-10.0 sec 1.02 GBytes 880 Mbits/sec

artinya kecepatan throughput adalah 880 Mb/s = 110 MB/s

kondisi diatas adalah kondisi ideal hanya simulasi melalui network.

Didalam aplikasi yang real hal ini jarang ditemui sampai mencapai nilai demikian sebab banyak hal yang mempengaruhi. antara lain

  • Speed of Hard Drive [if your hard drive can only read/write at 30MB/sec consistently, the highest theoretical network throughput would be 240Mbps [about a quarter of GigE's theoretical maximum ] 100MB+/sec Hard Drive read speeds are generally only found in server class hard drives and/or drive arrays.

  • Application Performance
    Windows File Sharing [with the exception of Windows 2008 and Windows Vista native environments] was not optimized for high bandwidth operation. Windows XP is simply not capable of performing Gigabit speed file transfers out of the box when using the SMB protocol. The next generation of the SMB protocol [SMB 2.0] which has been implemented in Windows 2008 Server and Windows Vista is capable of utilizing the potential of the bandwidth available in Gigabit networks.

    Testing for Gigabit Bottlenecks
    One of the best ways of benchmarking Gigabit network performance is to test the network while eliminating as many client based bottlenecks as possible. Using a tool that does not need to read/write from the Hard Drive is recommended. One such tool IPERF has been shown to work reliably in benchmarking performance. Many members of this forum have seen 900+ Mpbs [90% of Gigabit throughput ] between two hosts on the same network [using consumer grade Gigabit switches and laptops and or PCs with integrated [on motherboard] Gigabit adapters.

  • Bad Cable

  • PCI Bus Speed
    If your gigabit network card is on a normal 33mhz/32-bit PCI slot
taken from episteme.arstechnica.com

Cara menghitung throughput bandwidth

data sebesar 30 MB
HD sata = 1.5 Gb/s = 187.5 MB/s

baca dari hd 187.5 MB/s = 0.16 s

transfer 30 / 110 = 0.3 s

tulis e hd 187.5 MB/s = 0.16 s

waktu yang dibutuhkan memindahan data adalah 0.62 detik untuk 30 MB
kecepatan teoritical untuk transfer antar komputer dengan hd sata menggunakan gigabit ethernet adalah 48 MB/s


Senin, 07 Juli 2008

multitasking dengan multithreading


Kemarin lihat presentasinya Faran soal Thread muncul ide buat nulis soal multiproses, multitask sama multithread. begini ceritanya .......
ilustrasi diperankan oleh model. kesamaan nama dan wujud adalah tanpa disengaja.
java mendukung multithreading lho, mungkin itu yang dikenal selama ini. apa sih artinya ? trus ada juga gue bosen kerja disana karena gue disuruh multitasking (sama sekali bukan aku :)). apaan juga itu ?

gambar disamping ilustrasi multitasking. adalah metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya. dalam contoh ini kalau orang yang duduk sambil BAB sambil bekerja dengan komputer dan mengirim fax. dia menjalani beberapa proses dan terjadi pembagian sumberdaya pikiran dalam hal ini otak. Pada komputer sumberdaya ini adalah CPU dan memori.
sementara ilustrasi multithread adalah dalam satu proses terjadi eksekusi thread lebih dari satu pada waktu yang sama. contohnya dalam mengetik di komputer kedua tangan mengetik bersamaan dengan mata sambil melihat monitor.

dari http://blog.wired.com/gadgets/1090532200multitasking2.png

















from http://java.sun.com/docs/hotspot/threads/threadModel.gif

Thread ini berdasarkan terminologinya dibagi menjadi 4:

Thread pengguna: dibuat menggunakan library pada applikasi contoh thread di java.
Thread dilibrary OS : Solaris Thread.
Thread LWP: yang memungkinkan concurrent (eksekusi bersamaan) syscall dalam 1 proses.
Thread kernel: terdapat dilayer kernel.









Model-Model MultiThreading:

  1. Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.

  2. Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.

  3. Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.

referensi :

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch11s03.html
http://java.sun.com/docs/hotspot/threads/threads.html
http://opensolaris.org/os/community/edu/curriculum_development/