Benchmarks/gnsd|c 测试1

先看这个:测试时间总长为八分多钟,先以每五秒增加五个用户为时间加到100个并发用户。然后持续运行五分钟,最后以每五秒减少五用户减到0为止。

每一个用户的操作行为:

    lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.2.10:7890",  LrsLastArg);
    lrs_send("socket0", "buf0", LrsLastArg);
    lrs_receive("socket0", "buf1", LrsLastArg);
    lrs_send("socket0", "buf2", LrsLastArg);
    lrs_receive("socket0", "buf3", LrsLastArg);
    lrs_send("socket0", "buf4", LrsLastArg);
    lrs_receive("socket0", "buf5", LrsLastArg);
    lrs_send("socket0", "buf6", LrsLastArg);
    lrs_disable_socket("socket0", DISABLE_SEND_RECV);
    lrs_close_socket("socket0"); 

这是具体的数据内容:

send buf0 44
        "\x00\x00\x00"
        ","
        "\x00\x00\x00\x01"
        "1234561234567890123456"
        "\x00\x00\x00\x01\x00\x00"
        "12345678"

recv buf1 16
        "\x00\x00\x00\x10\xff\x00\x00\x01\x01\x00\x00\x00\x01\x00\x00\x00"

send buf2 24
        "\x00\x00\x00\x18\x00\x00\x00\x05"
        "0"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"

recv buf3 28
        "\x00\x00\x00\x1c\xff\x00\x00\x05"
        "0"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x07\x00\x00"

send buf4 8
        "\x00\x00\x00"
        "\b"
        "\x00\x00\x00\x02"

recv buf5 8
        "\x00\x00\x00"
        "\b"
        "\xff\x00\x00\x02"

可以看到,每个客户每次是连接到gnsd,再发送connect和mail count再发terminate的报文。而且每次都要收到回来的报文后再发下一个。

也就是每个用户会不停的做这样的事:

1. 连接服务器

2. 发connect 收 resp

3. 发mail count 收 resp

4. 发terminate 收 resp

5. 断开连接

测试的内容和方式明白了罢,那么来讲讲测试完后的数据。

这是数据流量图,我使用的是100M的交换机做连接。最高时数据流量达到了43598.75,平均达到了36216.477,最低为24564.8。说明了用户增加并没有带来传输数据量的增加,同时我们也可以看到并发传输时量越大返而会减低服务器的处理能力。 第一次拐点是0:06时产生的,在1:04秒时产生了拐点 :) 但是从1:52秒时数据流量开始下降。这三个值你要记住,我们等一下是需要对比的。

最开始的拐点最重要,后面的拐点都只能做参考了,是系统的自身的反应,而不是我们需要的数据了。

这是响应时间,在这里,可以看到,有一个拐点

我们看一下刚才三个拐点时的响应时间,第1个响应最快。

先不下结论,看看每秒传输的数据,绿的是每秒接/发成功的报文数量,粉红的是每秒出现fail的数量。

最高时,每秒处理了838.438个报文,平均696.471个报文。

838.438、838.125、821.75,对应于刚才的三个拐点。

这时已经比较清楚了,但是我们回到第一个图,这三个点时,user数量是多少,也就是有多少个用户在发送请求。 :) 这三个点时,用户数量分别为30/79/100。我们再回来看看出错的三个点时的数量:0、3.625、8.688。第一次出现错误时间是00:32,出错是2.563个。

下一个要看的就是系统资源的使用了。机器配置P4 2.6C,操作系统开启了HTT支持,有两个Hyperthreading logical CPU,内存是512M。 我三个拐点的CPU利用率分别是91.255/93.359/91.91。平均负载值:0.371/0.669/0.818,最大值为0.954。

说结论罢:支持的峰值处理为每秒838个请求,而建议一台机器支持1011个客户机,每秒请求数保持在670笔,最佳的客户机数为480个.