Hi All I have made a tool for load testing of my company's web-server product. The tool is written using Python 3.1.
The tool basically does a HTTP or HTTPS post, gets response and parses the response, does the response validation against expected response and maintains the stats of average response time. The tool can open several such parallel connections and send different request and get different responses and validate them. This can continue till the time I specify or the number of request I specify in the tool per parallel connection. I am seeing some strange behavior with this tool. When I send request using HTTP, I am able to reach 1 transaction (request sent, response rcvd and validated.) per second from 20 parallel connections easily. Average response time shown is about 0.15 seconds. However, when I send request using HTTPS, I am seeing that the response time shown by tool goes to 1.1 seconds for same 20 parallel connection each trying 1 transaction per second. Another observation that I have made is with 10 parallel HTTPS connection each trying 1 transaction per second from 2 different machines (effectively same load on server), the response time is again reducing to .17 secs. However if I run two instances of the tool with 10 parallel HTTPS connection each trying 1 transaction per second from from same machine, the response time is again shooting up to 1.1 seconds. So I feel HTTPS is blocking my test if I want to achieve higher TPS (transactions per second.) than 10*1=10 TPS. [I can not send the next request till I get response to previous one and since response time is more than 1 second, I can never reach 1 TPS from each connection.] If I use HTTP I can easily reach 20 TPS. Also if I use multiple machines, I can reach 20 TPS on HTTPS also. So the question is does anyone here have any idea or some data about performance limitation of HTTPS implementation in Python 3.1? Regards Ashish Vyas
-- http://mail.python.org/mailman/listinfo/python-list