Friday, November 17, 2006

ถ้าเป็น yaws หล่ะ

เห็น Guruguru เขาลอง compare Rails กับ Web.py ดู
มีผลลัพท์จากคำสั่ง
ab -n 300 -c 100
เปรียบเทียบให้ดู
ผลลัพท์ ก็ไม่เป็นที่น่าแปลกใจสำหรับผมนะ
แต่ด้วยความมันส์ในอารมณ์ อยากรู้ว่า ถ้าเป็น yaws (web server ของ erlang) หล่ะ
ค่าที่ได้จะออกมาประมาณไหน

Disclaimer
เนื่องจากเครื่องก็คนละเครื่อง นำมาเปรียบอะไรกันไม่ได้หรอกนะ

source code
<erl>
out(A) ->
{ok, Name} = queryvar(A, "name"),
{html, f("hello ~s", [Name])}.
</erl>


ผลการทดสอบ

Server Software: Yaws/1.61
Server Hostname: 127.0.0.1
Server Port: 8000

Document Path: /hello.yaws?name=world,
Document Length: 13 bytes

Concurrency Level: 100
Time taken for tests: 0.319860 seconds
Complete requests: 300
Failed requests: 4
(Connect: 4, Length: 0, Exceptions: 0)
Write errors: 0
Total transferred: 52500 bytes
HTML transferred: 3900 bytes
Requests per second: 937.91 [#/sec] (mean)
Time per request: 106.620 [ms] (mean)
Time per request: 1.066 [ms] (mean, across all concurrent requests)
Transfer rate: 159.44 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.5 0 7
Processing: 1 8 3.3 8 22
Waiting: 1 7 3.2 7 21
Total: 2 8 4.1 8 22

Percentage of the requests served within a certain time (ms)
50% 8
66% 10
75% 10
80% 10
90% 14
95% 19
98% 20
99% 21
100% 22 (longest request)


ผลที่ได้ รู้สึกจะดีเกิดคาดไปหน่อย
หวังว่าคงไม่ได้ทำอะไรผิดนะ

Note: ทำไมตัวเลข total transfered ของเรา มันมากกว่าของเขา 5 เท่าหว่า
Document Length ก็เท่ากัน

Related link from Roti

3 comments:

Orr said...
This comment has been removed by a blog administrator.
Orr said...

แสดงว่า yaws มันแปะ HTTP header มาให้มากกว่า 5 เท่าเลยครับ

PPhetra said...

หน้าตา header เป็นอย่างนี้

HTTP/1.1 200 OK
Connection: Keep-Alive
Server: Yaws/1.61 Yet Another Web Server
Date: Mon, 20 Nov 2006 02:24:43 GMT
Content-Length: 10
Content-Type: text/html

hello pok

ขนาด 170 byte
170 * 300 => 51000 ก็เริ่มเข้าเค้า
แต่ผมไม่รู้สึกนะว่า header แค่นี้ยาว
(มีชื่อ server น่ะที่ยาวหน่อย)