加载测试TCP端口

时间:2014-10-13 12:01:57

标签: netty load-testing

我想加载测试我的Netty(TCP端口5000),Kafka,Storm项目。有人可以指出一个产生负载的好工具。我看过Jmeter TCP采样器,但据我所知,它需要很多EC2实例来模拟200k并发用户?

My Netty Server正在接受Port 5000 Not http。

上的短传入TCP请求

提前致谢

2 个答案:

答案 0 :(得分:1)

您可以使用wrk基准测试工具。您没有提供项目的任何细节,但有类似的内容:

wrk -H 'Host: localhost' \ 
    -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' \ 
    -H 'Connection: keep-alive' \ 
    -d 120 -c 256 -t 16 --pipeline 256  YOUR_TESTING_URL

可能适用于您的情况。

答案 1 :(得分:0)

您可以使用Jmeter测试Tcp。或者你可以创建一个自定义类来生成netty客户端。

客户端方法

  @Override
    public void run()  {

        // Configure the client.
        EventLoopGroup group = new NioEventLoopGroup();
        try {


            Bootstrap b = new Bootstrap();
            b.group(group)
                    .channel(NioSocketChannel.class)
                    .option(ChannelOption.TCP_NODELAY, true)
                    .handler(new ChannelInitializer<SocketChannel>() {
                        @Override
                        public void initChannel(SocketChannel ch) throws Exception {
                            ChannelPipeline p = ch.pipeline();
                            // p.addLast(new LoggingHandler(LogLevel.DEBUG));
                            p.addLast(new ClientsHandler2());
                        }
                    });
                // Start the client.
                ChannelFuture f = b.connect(HOST, PORT).sync();
                // Wait until the connection is closed.
                f.channel().closeFuture().sync();



        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            // Shut down the event loop to terminate all threads.
            group.shutdownGracefully();
        }
    }