TinyFrame性能测试

压力测试。用TinyFrame编写Web服务器,Apache Bench(AB)程序作为客户端。客户端发出请求,服务器响应字符串“test”,以此来测量服务器并发量。

测试环境:
  1. 服务器配置:Pentium(R) Dual-Core CPU E6700 @ 3.2GHz 3.2GHz,2G RAM,Ubuntu系统。
  2. 客户端配置:Intel(R) Core2 Duo CPU T6670 @ 2.2GHz 2.2GHz,2G RAM,虚拟机Ubuntu系统。
  3. 两台机器处于同一快速以太网(100Mbps)中。
服务端测试代码:
#include <stdio.h>

#include "servermanager.h"
#include "server.h"

void request_handler(connection *conn)
{
	static char buf[] = "HTTP/1.1 200 0K\r\nConnection:keep-alive\r\nContent-length:4\r\n\r\n"
						"test";

	/* 发送HTTP响应 */
	connection_send(conn, buf, sizeof(buf) - 1);

	/* 清空输入缓冲区 */
	array_clear(conn->input_buffer);
}

int main()
{
	server_manager *manager = server_manager_create();

	/* 监听2016端口 */
	inet_address addr = addr_create("any", 2016);

	/* socket可读时调用request_handler函数 */
	server *server = server_create(manager, addr, request_handler, NULL);

	/* 开始监听 */
	server_manager_run(manager);

	return 0;
}


总请求数为100000,并发连接数从1到1000逐渐递增,测试结果如下:
Concurrency Level    Requests per second
           1                               1667.90
         10                               4592.89
         50                              7230.34
       100                              6617.45
       200                              6440.19
       400                              5002.37
       600                               4572.24
       800                               4195.10
     1000                               5540.50

TinyFrame性能测试_第1张图片


你可能感兴趣的:(TinyFrame性能测试)