How to test your Website to handle high traffic


Baru-baru ni ada setup satu website guna one of the CMS..So nak buat ujian sama ada website tu tahan tak dengan trafik tinggi sebab dijangka bulan ogos nanti trafik ke website tu tinggi. Server setup apps dan db dalam satu server je ter...google dan tanya member di FB (terbaek)..ramai yang respon...jadi aku guna tools ApacheBench.

Tools tu sebenarnya digunakan untuk buat benchmark jika kita nak confirmkan mana satu web server yang terbaik dan sesuai untuk website kita. Ia akan hantar request mengikut kehendak kita dan kenalpasti berdasarkan analisa bagaimana respon diberi oleh web server berkenaan.

Jadi bolehla kiranya aku guna untuk test performance website aku tu utk handle trafik tinggi (request banyak).

Tools ApacheBench ni sebenarnya once install apache ia dah ada sekali dalam tu dan begitu juga bagi pengguna windows jika guna xampp maka ia dah ada juga di folder berikut :
c:\xampp\apache\bin\ab.exe

Kaedah aku uji adalah dari sumber Streamyx untuk try hantar request ke website aku host di somewhere around the world...hehehe
Notebook aku loaded OS Ubuntu 12.04 LTS dan ada apache dalam tu..jadi aku run command berikut :

ab -kc 2-n 10 http://www.muzzo.com/index.php

Maksud command tu :
ab : panggil nama apache bench execution file
-k : Use HTTP KeepAlive feature
-c 2 : berapa banyak web server yang run serentak nak ditetapkan, kes ni dia letakkan 2  pekerja serentak untuk handle 10 request.
-n 10 http://www.muzzo.com/index.php : pernyataan berapa banyak request nak diberi ke web server website ditetapkan tu.


Gambaran -c dan -n seperti di bawah : 
sumber : http://ngenuity.ngmoco.com/2012/01/testing-with-apache-bench.html

Manakala di bawah ni adalah beberapa command lain yang mana sesuai digunakan :
(nak tengok leh taip > ab ? dalam linux.)


Result yang akan keluar gini la nanti bila run command ter : (contoh bagi 1000 concurent dan 10000 request)


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) 2006 The Apache Software Foundation, http://www.apache.org/     

Benchmarking www.muzzo.com (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests


Server Software:        Apache/2.2.9
Server Hostname:        www.muzzo.com
Server Port:            80

Document Path:          /index.php
Document Length:        207 bytes

Concurrency Level:      1000
Time taken for tests:   6.571282 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    9923
Total transferred:      5744865 bytes
HTML transferred:       2083869 bytes
Requests per second:    1521.77 [#/sec] (mean)
Time per request:       657.128 [ms] (mean)
Time per request:       0.657 [ms] (mean, across all concurrent requests)
Transfer rate:          853.71 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    3  26.1      0     225
Processing:     1   69 482.3     12    5947
Waiting:        0   68 482.3     12    5946
Total:          1   72 504.3     12    6143

Percentage of the requests served within a certain time (ms)
  50%     12
  66%     17
  75%     21
  80%     21
  90%     37
  95%     39
  98%    130
  99%   2647
 100%   6143 (longest request)


Data di bawah ni akan digunakan sebagai baseline analisa bagaimana tahap ketahanan web server kita menampan trafik tinggi.

Requests per second: 63.48 [#/sec] (mean)
Time per request: 15753.062 [ms] (mean)

Request per second bermaksud server boleh laksana proses request sebanyak 64 request setiap saat. Dan setiap 1 request memerlukan 15 saat untuk dilaksanakan.

Kalau nak test guna free tools lain untuk tengok performance website kita, rujuk sini :
http://sixrevisions.com/tools/free-website-speed-testing/

Harap membantu semua..

~ Be a Creator Not a User ~

Ulasan