Details

    • Type: Other
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.4.0
    • Fix Version/s: None
    • Component/s: Engine
    • Labels:
      None
    • Environment:
      Windows XP 32 bit, Java 6.

      Description

      I wrote a FIX server that streams market data to FIX subscribers. The market data volume may be heavy, so I need to find out performance benchmarks for QuickFixJ API.
      I have a test set up where Server is running on 4 core XP machine streaming FIX market data messages to a subscriber running on another machine. I do not use any file IO because I do not use FileStoreFactory/FileLogFactory - so no files are created in my logs directory for both server and subscriber.
      The server just sends market data messages in infinite loop without any delays. The message is MarketDataIncrementalRefresh with Bid and Offer groups containing Bid, Ask, BidSize, and AskSize - 4 fields.

      Now the problem is that I cannot receive over 12,000 messages per second. My CPU is not maxed out on client or server. It is interesting that if I add another thread on the server also sending the same messages in a loop, the number of processed messages does not increase.

      My question is: is it possible to process over 12,000 in configuration described above or this number "is about correct". Is there way to improve it somehow (I already eliminated file IO)? My guess there is some thread contention going on in the QuickFixJ API that prevents achieving good throughput.
      Thanks

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              igoberman Ilya Goberman
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: