多个同步tcp客户端连接,用于性能测试

时间:2010-09-03 13:23:21

标签: python network-programming parallel-processing tcpclient

我需要同时创建多个TCP连接到一些自定义TCP服务器应用程序以进行性能测试。我对Web有很多了解(例如基于curl-loaderlibcurl),但我没有找到一般的。{
客户端的场景是最简单的:创建连接,发送特殊数据,读取答案和关闭连接。每一步都有时间戳。应将所有时间戳写入文件以进行进一步计算。我需要大约10 000个这样的连接 我更喜欢一些现成的解决方案但谷歌没有找到任何解决方案,所以我准备用Python编写这个。如果是这样,你能推荐一个合适的python模块,可以产生这么多的连接吗? (多处理,扭曲......?)

2 个答案:

答案 0 :(得分:1)

我的两分钱:

  1. 转到Twisted或任何其他异步网络库。
  2. 确保您可以在客户端和on上打开足够的文件描述符 服务器。例如,在我的Linux机器上,我的文件不能超过1024 默认情况下文件描述符:

    carlos@marcelino:~$ ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    [..]
    open files                      (-n) 1024
    [..]
    
  3. 在不同的计算机上运行客户端和服务器可能会付费。

答案 1 :(得分:0)

处理10k连接是一个棘手的问题(称为C10K问题)。如果您需要实数,请坚持使用C ++(Boost / POCO库或OS本机API),或者在10个负载生成客户端之间分配客户端。

你不应该尝试使用Python(在1个CPU核心上处理10'000连接 - 不现实)。