Details

      Description

      Scenario

      • Web application outputting a sequence of items produced by a Flux<Item>, serialized as JSON
      • SSE not being used.
      • Use Apache Benchmark to perform 1000 requests

      Results

      Web app based on Jetty,Tomcat and Undertow returns result in a reasonable amount of time.
      Web app that runs using Reactor Netty or RxNetty doesn't finish. After benchmark timeouts server can't handle requests any more, even single ones from browser.
      The following test was performed from localhost as well as from another computer in the same local network. The debug console output is attached.

      >ab -n 1000 -c 100 http://localhost:8083/items/10
       
      This is ApacheBench, Version 2.3 <$Revision: 1663405 $>
      Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
      Licensed to The Apache Software Foundation, http://www.apache.org/
       
      Benchmarking localhost (be patient)
      apr_pollset_poll: The timeout specified has expired (70007)
      

      1. netty.log
        490 kB
        Yevhenii Melnyk
      2. rxjava.log
        490 kB
        Yevhenii Melnyk

        Issue Links

          Activity

          Hide
          rstoya05-aop Rossen Stoyanchev added a comment -

          hi Yevhenii Melnyk thanks for logging this. It looks like a duplicate of SPR-14943.

          Show
          rstoya05-aop Rossen Stoyanchev added a comment - hi Yevhenii Melnyk thanks for logging this. It looks like a duplicate of SPR-14943 .
          Hide
          yevhenii-melnyk Yevhenii Melnyk added a comment -

          @Rossen Stoyanchev Even after SPR-14943 is closed the issue is reproducible.
          Considering I use apacheBenchmark can be quite misleading because of timeouts of the test.
          But after the test fails the connections does not seem to be closed. The browser request that is performed during this benchmark test never ends (or it will take really long to finish request).
          It seems to me that some performance should be useful to check the ability to handle multiple requests at the same time.

          Show
          yevhenii-melnyk Yevhenii Melnyk added a comment - @Rossen Stoyanchev Even after SPR-14943 is closed the issue is reproducible. Considering I use apacheBenchmark can be quite misleading because of timeouts of the test. But after the test fails the connections does not seem to be closed. The browser request that is performed during this benchmark test never ends (or it will take really long to finish request). It seems to me that some performance should be useful to check the ability to handle multiple requests at the same time.
          Hide
          yevhenii-melnyk Yevhenii Melnyk added a comment -

          Still cannot handle handle multiple requests at the same time using Netty

          Show
          yevhenii-melnyk Yevhenii Melnyk added a comment - Still cannot handle handle multiple requests at the same time using Netty
          Hide
          rstoya05-aop Rossen Stoyanchev added a comment - - edited

          What version of Reactor Netty are you using? You have to use 0.6.0.BUILD-SNAPSHOT snapshots (to be released tomorrow) and also make sure you don't have stale snapshots in your local repository.

          Sébastien Deleuze would you mind taking a look if it is still an issue since you worked on SPR-14943?

          Show
          rstoya05-aop Rossen Stoyanchev added a comment - - edited What version of Reactor Netty are you using? You have to use 0.6.0.BUILD-SNAPSHOT snapshots (to be released tomorrow) and also make sure you don't have stale snapshots in your local repository. Sébastien Deleuze would you mind taking a look if it is still an issue since you worked on SPR-14943 ?
          Hide
          yevhenii-melnyk Yevhenii Melnyk added a comment -

          I tried to run benchmark again on totally clean Ubuntu. It doesn't end, but if I make logging level Debug, I see that all requests are successful. Maybe something's wrong with the "ab" tool.
          The only concern I have in this case is that the benchmark ends successfully when web-reactive is backed with Jetty/Tomcat/Undertow and doesn't when uses Netty.

          Show
          yevhenii-melnyk Yevhenii Melnyk added a comment - I tried to run benchmark again on totally clean Ubuntu. It doesn't end, but if I make logging level Debug, I see that all requests are successful. Maybe something's wrong with the "ab" tool. The only concern I have in this case is that the benchmark ends successfully when web-reactive is backed with Jetty/Tomcat/Undertow and doesn't when uses Netty.
          Hide
          sdeleuze Sébastien Deleuze added a comment -

          I am going to test again with latest snapshots.

          Show
          sdeleuze Sébastien Deleuze added a comment - I am going to test again with latest snapshots.
          Hide
          sdeleuze Sébastien Deleuze added a comment -

          Indeed the tests with multiple connection using ab seems to fail with Reactor Netty at least, we are going to have a look with Reactor team.

          Show
          sdeleuze Sébastien Deleuze added a comment - Indeed the tests with multiple connection using ab seems to fail with Reactor Netty at least, we are going to have a look with Reactor team.
          Hide
          sdeleuze Sébastien Deleuze added a comment - - edited

          After a lot of tests, it seems the issue observed come from the fact than ab testing tool is using HTTP 1.0 and not HTTP 1.1.

          I manage to reproduce it with a simple ab -n 1 -c 1 http://localhost:8083/items/10 command and the same kind of test performed with wrk, siege and httpie works!

          I have created issue for HTTP 1.0 support on both Reactor Netty and RxNetty bugtrackers.

          Show
          sdeleuze Sébastien Deleuze added a comment - - edited After a lot of tests, it seems the issue observed come from the fact than ab testing tool is using HTTP 1.0 and not HTTP 1.1. I manage to reproduce it with a simple ab -n 1 -c 1 http://localhost:8083/items/10 command and the same kind of test performed with wrk , siege and httpie works! I have created issue for HTTP 1.0 support on both Reactor Netty and RxNetty bugtrackers.
          Hide
          sdeleuze Sébastien Deleuze added a comment -

          I move this issue to the 5.X backlog since it has been postponed to Reactor Netty 0.8.

          Show
          sdeleuze Sébastien Deleuze added a comment - I move this issue to the 5.X backlog since it has been postponed to Reactor Netty 0.8.

            People

            • Assignee:
              sdeleuze Sébastien Deleuze
              Reporter:
              yevhenii-melnyk Yevhenii Melnyk
              Last updater:
              Sébastien Deleuze
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Days since last comment:
                35 weeks, 1 day ago