Beberapa waktu lalu barangkali sempet kedenger dikit ribut-ribut soal doneeh.com, yang barangkali ulasan tentang itu bisa dibuka di sini:
http://www.pembunuhbayaran.com/archives/000002.html
Saya sih bukannya mau ikut-ikutan atau gimana, cuman ya... sekedar pengen bantu ngasih saran kalau diterima sih... :), mengupas tentang sisi optimasi-nya infrastruktur yang udah ada aja terlebih dulu, karena barangkali keinginan doneeh.com untuk mendapatkan infrastruktur baru itu barangkali akan butuh waktu, ya baik dari waktu untuk mengumpulkan dana sampe semua perangkat yang dibutuhkan itu bisa dipenuhi. sebelum ke arah sana sih barangkali ada beberap point yang bisa dilakukan sembari menunggu sampe keberadaan infrastruktur baru itu bisa terealisir (mudah-mudahan sih secepatnya) mungkin ini yang paling mudah dilakukan. Ada beberapa point sih:
1. Struktur tabel
>
> Perhitungan space yang akan dimakan oleh database MySQL
> Dibuat table dengan lima field sebagai berikut.
>
> id int(11)
> nama varchar(255)
> url varchar(255)
> email varchar(255)
> komen varchar(255)
> replykomen varchar(255)
> ipaddress char(15)
> tanggal datetime
>
Saya yakin sih implementasinya pasti ndak sesimpel struktur tabel yang dicontohkan itu tapi barangkali ini bisa diambil sebagai acuan, barangkali field nama, email, ataupun url kalau dilihat sih terlalu panjang dan mubazir, dan biasanya karena alasan pengen database yang paling cepet maka umumnya untuk kebutuhan web yang dipilih biasanya MyISAM, pada sebuah sistem flat-file-table-based database, VARCHAR itu ndak berfungsi sebagaimana layaknya sebuah varchar seperti pada oracle, sqlserver, ataupun firebird, tapi lebih dianggap sebagai CHAR biasa, type VARCHAR sejauh yang saya tau hanya digunakan supaya conform SQL'92. barangkali akan lebih baik kalau ukurannya diminimalisir secukupnya aja, toh biasanya orang lebih senang pake pake nickname yang mudah diinget dan jarang ada user yang make nick
*saya_suka_pake_nick_name_panjang_panjang_kalau_perlu_nyantumin_nama_orang_sekampung*.
di satu sisi semakin kecil jumlah byte yang terdapat dalam masing-masing recordnya, semakin mumpuni kecepatan querying dan transfer dari mysql sendiri.
2. sistem operasi
>
> Sekarang dengan melihat Sistem Operasi yang digunakan : RedHat Linux 9.0
or FreeBSD 4.9
>
kalau memang benar donneh menggunakan linux, mungkin untuk sementara coba tuning lagi sistem operasinya, bongkar deh kernel-nya, ganti FS-nya dengan yang lebih baik seperti xfs kalau banyak menggunakan InnoDB atau reiserFS kalau banyak menggunakan flat-file-table-based seperi MyISAM. tune share memory lewat SHMPARAM yang default semua kernel cuman diset 32MB, kalau banyak make MyISAM, coba tune juga cache buffer untuk file I/O operationnya. network packet... dan ah... buka deh deh artikel tuning OS pasti banyak yang masih bisa dilakukan koq untuk mengoptimasikan perangkat yang sudah ada.
>
> - RAM cukup 512 MB saja.
>
Ini mungkin barangkali koreksi, eksekusi script adalah proses yang butuh resource jauh lebih banyak daripada native code, kalau anda coba liat referensi tentang metode interpretatif barangkali akan jadi lebih jelas. dan kalau melihat dari jumlah user yang ada dan traffic yang ada saat ini, kebayang sebenarnya seberapa banyak proses yang dilakukan thread apache untuk memproses request tersebut.
3. HTML
iseng-iseng saya coba buka isi perut html-nya, barangkali akan lebih baik jika isi dari shoutbox itu dioptimasikan lagi, buang space yang ndak dibutuhkan dengan codesweeper. toh doneeh.com ndak perlu menampilkan source code yang cantik, yang penting isinya, hasilnya sih lumayan dari 46 kilo tinggal jadi 32 kilo, dari sini kebayangkan, kalau misalnya per-kunjungan rata-rata itu shoutbox di-refresh sekitar 3 atau 4 kali untuk 6000 orang itu berapa banyak bandwidth yang bisa dihemat.
1 byte = 8 bit.
1 KB = 1024 byte
--------------------
46-32 = 14 * 8 = 112kbit
112 * 4 * (6000 orang) = 2688000kbit
barangkali ndak sebesar asumsi 6000 orang itu, tapi kira-kira kalau 80 persennya aja dari nilai itu bisa didapat per-kunjungannya, berapa penghematan yang bisa dilakukan dalam sebulan?
yah... kira-kira mungkin begitu deh, sekali lagi ini bukan mau ikut-ikutan atau gimana, ini sekedar saran sambil menunggu hardware yang baru terealisir... mudah-mudahan bisa terealisir dalam waktu cepat... :-)
Listed below are links to weblogs that reference this entry. Were you wish to trackback this entry, just copy and paste the URL below to your blog posting.
Otherwise, if you wish to add a comment to this entry, please click new comment.
Listed below are comments from my friends regarding to this entry. If you wish, you may also add a comment by clicking new comment.
Post a comment


Wah terima kasih atas tambahan analisanya. Keren deh awh. Met kenal dengan team pembunuhbayaran.
» Posted by: shebang at April 20, 2004 08:53 PM
Mengenai RAM besarnya bisa dikecilin soalnya menurut kami bisa dilakukan tuning pada apache, mysql dan script2 PHP sehingga gak memakan resource banyak. :)
» Posted by: shebang at April 20, 2004 08:56 PM
Mmmm.. untuk Apache.. nambahin aja. Kayaknya perlu diset MaxSpareServers dan MinSpare-nya juga. Soalnya setahu saya gara2 koneksi client yang buruk, menyebabkan proses yang jalan di server juga semakin lama. Kalau client belum selesai download, kan prosesnya masih hidup. Ya kan?
» Posted by: sridewa at April 20, 2004 09:07 PMJadi butuh proses yang lebih banyak, tambahin kek gitu.. tapi perlu dicoba. Dalam praktek (saya sering praktek) ... tidak bisa dihitung secara matematis, harus dicoba.
heheheh itu Table Design darimana yaa.? hueheuheuheh.. itu khan hanya reka-reka orang yang tidak mengetahui sama sekali seperti gimana Table Design miliknya doneeh.com :)
» Posted by: udhien at April 21, 2004 08:56 AMYa.... kan dah dibilangin implementasinya pasti ndak sesederhana itu, itu cuman sampling doang koq, nyantai aja deh.... :-)
» Posted by: jaimy at April 21, 2004 09:55 AM
Sebentar lagi, untuk HTML Tag, jelas akan di kecilan. In progress ini...
» Posted by: Thomas at April 24, 2004 09:40 PM