audit sistem informasi

Alkisah di suatu organisasi terdapatlah suatu sistem informasi keuangan yang berbasis windows dengan spesifikasi sebagai berikut :

1. Bahasa pemrograman yang digunakan untuk membangun aplikasi tersebut adalah asp.net dan database menggunakan microsoft sql server.

2. Server aplikasi menggunakan OS windows web server 2008 R2 64 bit hardware IBM 3650 M3 dengan  memory 16 GB

3. Server database menggunakan OS windows server 2008 R2 64 bit hardware IBM 3650 M3 dengan  memory 16 GB

Sistem informasi ini hanya diakses dari intranet, namun terasa sangat lambat. Banyak pengguna yang mengeluh dan merasa menggunakan aplikasi ini menyita waktu.

Untuk mencari akar permasalahan dari skenario diatas dapat dilakukan investigasi terhadap tiga komponen utama dari sistem tersebut yaitu jaringan, server dan aplikasi.

1. Jaringan

Untuk memastikan bahwa bandwidth dari pengguna ke server mencukupi, pada server aplikasi dapat dipasang aplikasi speedtest mini yang dapat didownload dari website speedtest. Ukurannya memang cukup besar, sekitar 100MB. Keunggulannya adalah dapat diletakkan di beragam web server karena mendukung PHP, ASP, ASP.NET juga JSP. Aplikasi ini dapat membantu untuk melihat kualitas bandwidth dari client ke server. Jika hasil yang ditunjukkan oleh speedtest kurang baik, bisa jadi ada masalah di jaringan. Jadi perlu dilakukan pembenahan jaringan. Berikut ini adalah contoh hasil speednet mini di intranet :

contoh hasil test bandwidth dengan speedtest

2. Server

Sistem operasi windows server memiliki aplikasi Performance Monitor yang dapat membantu melakukan monitoring terhadap sumberdaya server secara real time. Untuk skenario diatas, pada server aplikasi yang dimonitor adalah pemakaian prosesor, ketersediaan memori dan jumlah koneksi dari client. Pada server database yang dimonitor antara lain pemakaian prosesor, ketersediaan memori dan aktivitas baca tulis hardisk.

Cara menggunakan Performance Monitor klik Start-> Administrative Tools-> Performance Monitor. Setelah aplikasi terbuka, klik Performance Monitor maka akan terlihat grafik informasi penggunaan prosesor yang merupakan default obyek yang dipantau. Mode grafik dapat diubah ke mode angka dengan klik pada icon graph type dan pilih Report.

performance monitor graph typeSelanjutnya perlu ditambahkan obyek yang hendak dipantau yaitu memori dan koneksi dari client. Di area window sebelah kanan klik kanan lalu pilih add counters sehingga muncul jendela baru. Pada tab available counters cari Memory lalu klik pada tanda plus dan klik Available MBytes lalu klik Add.

performance monitor add countersKemudian untuk jumlah koneksi client, cari web services lalu klik tanda plus lalu klik Current Connections, lalu pada tab Instances of selected object klik nama website lalu klik add lalu klik OK.

Dari informasi yang ditampilkan dapat diketahui bagaimana penggunaan memori dan prosesor pada saat diakses oleh sejumlah client.

Lakukan hal yang sama pada server database dengan obyek/counter yang dimonitor adalah Memory (Available MBytes), PhysicalDisk (Avg.Disk Queue Length), Processor Information (Processor Time)

Jika sisa memori hanya sedikit dan prosentase penggunaan prosesor tinggi ketika diakses oleh banyak client maka dengan skenario diatas dapat disimpulkan bahwa masalah ada di server yang memerlukan tambahan memori dan kemampuan prosesor yang lebih tinggi.

Jika pada server database Avg.Disk Queue Length tinggi berarti ada bottleneck di hardisk.

3. Aplikasi

Setiap kali client mengakses server aplikasi, Microsoft IIS akan mencatatnya di log file yang biasanya disimpan di c:inetpublogsLogFilesW3SVC1. Catatan tersebut berisi data antara lain tanggal dan jam akses (time), alamat ip pengakses (c-ip),  halaman yang diakses ( cs-uri-stem), query (cs-uri-query), lamanya waktu akses (time-taken). Data time-taken di log IIS dalam satuan milidetik (milisecond).

Tool yang dapat digunakan untuk mengolah log Microsoft IIS menjadi informasi yang berguna adalah Microsoft Log Parser. Tool ini digunakan dengan mengetikkan baris-baris perintah pada command prompt. Contoh penggunaannya antara lain sebagai berikut :

a. LogParser.exe -i:w3c -o:w3c “select time,c-ip,cs-uri-stem,cs-uri-query,time-taken into 5dtklebih-orderby-ip.txt from u_ex130114.log where time-taken > 5000 order by c-ip asc”

perintah tersebut akan mengolah log dalam file u_ex130114.log dan menyimpan hasilnya di file 5dtklebih-orderby-ip.txt yang berisi waktu akses, ip client, halaman yang diakses, query dan time-taken yang waktu penyelesaiannya lebih dari 5 detik yang diurutkan berdasarkan ip secara ascending.

b. LogParser.exe -i:w3c -o:w3c “select time,c-ip,cs-uri-stem,cs-uri-query,time-taken into waktu-tertentu.txt from u_ex130128.log where to_time(time) between timestamp(’08:00:00′,’hh:mm:ss’) and timestamp(’23:00:00′,’hh:mm:ss’) and time-taken > 5000”

perintah tersebut akan mengolah log dalam file u_ex130128.log dan menyimpan hasilnya di file waktu-tertentu.txt yang berisi waktu akses, ip client, halaman yang diakses, query dan time-taken yang waktu aksesnya antara jam 8 hingga jam 23 dan waktu penyelesaiannya lebih dari 5 detik

Dari data-data tersebut dapat diperoleh informasi seberapa cepat aplikasi dapat menyelesaikan permintaan dari client. Semakin besar angka time-taken berarti semakin lambat respon aplikasi dalam memenuhi permintaan client. Mengacu pada skenario diatas, ada kemungkinan teknik pemrograman pada aplikasi perlu disempurnakan. Tool yang dapat digunakan lebih lanjut untuk mendeteksi permasalahan pada aplikasi ASP.NET yang lambat antara lain dotTrace dari jetbrains.