Berita Menarik

Bagaimana menguji Performan web server dengan alat apache

Pembaca : 13
0 0

Load_TestingMenentukan penanda aras bagi pelayan web bukan lah perkara yang mudah , kelajuan capaian tidak cukup menentukan pelayan web anda sudah bersedia malah apa yang lebih penting adalah bagaimana ia boleh bertahan dalam capaian yang banyak dalam sesuatu masa. Lebih ramai pengguna memasuki sistem atau laman web anda lebih tinggi masa yang akan di ambil untuk memuat naik dan memproses kandungan pelayan anda . Capaian hanya satu pengguna atau 10 pengguna sahaja tidak mencukupi . Sebagai contoh jika pengguna anda 1 juta pengguna , mampukah sistem dan pelayan anda mampu bertahan dengan setuasi itu ? Sistem akan menjadi lebih pelahan setiap gandaan penguna .

Di sini lah perlunya perlaksanaan “pengujian tekanan” perlu di jalankan , proses ujian semulasi web dan sistem anda untuk bertahan di tahap paling maksimum iaitu maksimum pegguna anda , dan maksimum kapasiti sistem dan pelayan menerima capaian . Sebagai contoh jika pengguna sistem anda 10 ribu makan  ujian pertama anda perlu menguji pelayan anda menerima 10 ribu capaian pada satu masa. Jika sistem berjaya maka ujian seterusnya had keupayaan pelayan anda paling tinggi mampu di tampung , ini bagi melihat keupayaan sistem anda dan bagi menampung keperluan masa depan . untuk ujian had mampu sistem , ujian ini perlu di buat secara betul kerana ia mampu menyebabkan sistem anda lumpuh dan mungkin akan rosak .

Banyak aplikasi ujian yang terdapat di pasaran , yang techsemut ingin  kongsikan di sini adalah perisian sumber terbuka yang boleh di dapati secara percuma untuk tujuan pengujian pelayan web anda.

Berikut adalah beberapa tips dan contoh :

Dengan mengunakan Perisan Apache Benchmark Prosidor

  • Anda perlu mengunakan perkakasan dan sistem pengoperasian yang sama termasuk veris kernal dan sebagainya . Jika anda penguna Windos pastikan versi dan patch yang sama.
  • Gunakan konfigurasi rangkaian yang sama , Contoh ujian pada rangkaian 100 Mbps  sama dengan server 100Mbps pada server ujian dan server sebenar
  • Ujian pertama rekodkan load pelayan dan kenaikan waktu (uptime) degan command top dan uptime untuk server linux anda , dan windows dengan task manager
  • Buat 3 hingga 5 kali ujian dan gunakan hasil terbaik
  • Selepas ujian , mulakan semula (restart ) semula pelayan anda bagi membuat ujian dengan konfigurasi pelayan web yang berlainan pula .
  • Sekali lagi , lihat keputusan pada load server anda dengan mengunakan command top dan uptime .
  • Teruskan dengan ujian fail html biasa dan dynamik php (atau bahasa anda)
  • Adalah penting menguji dengan ujian  “Non-KeepAlive” dan “KeepAlive” (dengan extension  Keep-Alive extension ia akan memberi keputusan session yang panjang untuk http bersama nilai capaian yang banyak dengan capaian rangkaian tcp

Dengan mengunakan desktop linux/bsd gunakan command di bawah :

$ ab -n 1000 -c 5 http://202.54.200.1/test.html
Dengan maksud,

  • -n 1000: ab akan menghantar  1000 pemintaan pada server 202.54.200.1
  • -c 5 : 5  C bermaksud nombor  “concurrency” contoh ini membawa maksud. ab akan menghantar 5 pemintaan dalam satu masa kepada pelayan 202.54.200.1.

Sebagai contoh lain , di bawah ini ab akan menghantar 10 pemintaan .
$ ab -n 10 -c 2 http://www.somewhere.com/

Keputusan akan dikeluarkan seperti di bawah:

This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.cyberciti.biz (be patient).....done
Server Software:
Server Hostname:        www.somewhere.com
Server Port:            80
Document Path:          /
Document Length:        16289 bytes
Concurrency Level:      1
Time taken for tests:   16.885975 seconds
Complete requests:      10
Failed requests:        0
Write errors:           0
Total transferred:      166570 bytes
HTML transferred:       162890 bytes
Requests per second:    0.59 [#/sec] (mean)
Time per request:       1688.597 [ms] (mean)
Time per request:       1688.597 [ms] (mean, across all concurrent requests)
Transfer rate:          9.59 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      353  375  16.1    386     391
Processing:  1240 1312  52.1   1339    1369
Waiting:      449  472  16.2    476     499
Total:       1593 1687  67.7   1730    1756
Percentage of the requests served within a certain time (ms)
  50%   1730
  66%   1733
  75%   1741
  80%   1753
  90%   1756
  95%   1756
  98%   1756
  99%   1756
 100%   1756 (longest request)

Uji semula 3-5 kali dan daptkan keputusan yang terbaik.

Mulakan semula pelayan anda untuk ujian seterusnya.

Bagaimana menmbuat pengujian KeepAlive ?

Gunakan pilihan -k bersama aplikasi pengujian ab  sebagai contoh :
$ ab -k -n 1000 -c 5 http://202.54.200.1/test.html

Gunakan kaedah yang sama bagi laman dan sistem php,fast-cgi dan lain-lain dynamik web anda.

Perlu di ingat , 1000 adalah permintaan yang terlalu kecil  anda harus mencuba permintaan yang lebih besar , sebagai contoh 50000 pemintaan seperti di bawah :
$ ab -k -n 50000 -c 2 http://202.54.200.1/test.html

Simpan hasil ujian anda dalam format (CVS)

gunakan pilihan -e untuk menjana laporan dalam format .cvs:
$ ab -k -n 50000 -c 2 -e apache2r1.cvs http://202.54.200.1/test.html

Bagi menjana laporan yang boleh digunakan perisian ecel atau gnuplot  mencipta graf contoh seperti di bawah

Gunakan pilihan -g contoh  seperti di bawah :
$ ab -k -n 50000 -c 2 -g apache2r3.txt http://202.54.200.1/snkpage.html

contoh fail psql.php (php+mysql)

<html>
<head><title>Php+MySQL</title></head>
<body>
<?php
   $link = mysql_connect("localhost", "USERNAME", "PASSWORD");
   mysql_select_db("DATABASE");
 
   $query = "SELECT * FROM TABLENAME";
   $result = mysql_query($query);
 
   while ($line = mysql_fetch_array($result))
   {
      foreach ($line as $value)
       {
         print "$value\n";
      }
   }
 
    mysql_close($link);
?>
</body>
</html>

Larikan ujian anda seperti di bawah :
$ ab -n 1000 -c 5 http://202.54.200.1/psql.php

 

Sumber :-

http://www.cyberciti.biz/tips/howto-performance-benchmarks-a-web-server.html

About Post Author

hasnan

Diploma dalam Sains Komputer (IT) dari UTM Ijazah Sarjana Muda Sains Komputer (IT) dari UKM
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %