Skip to content

Tests_Stress

fonlow edited this page Aug 20, 2016 · 5 revisions

Stress Tests

The tests are carried out through running TestHubTraceListener.exe in the same computer with Trace Hub.

Stress Tests: all in a local dev computer

System Config

  • Intel Core i7 Q720 @1.60 GHz
  • Memory 8GB
  • SSD
  • Windows 7 64-bit Professional
  • IIS 7.5

WebSockets is unavailable, but long pooling between server and clients.

Tests

Run 5000 traces with ColoredConsoleTraceListener on,

  • 3.2 seconds for sequential traces into the queue buffer
  • 2.7 - 2.9 seconds for concurrent traces.

Run 5000 traces with ColoredConsoleTraceListener off,

  • 0.07 second for sequential traces, in comparison, Serilog+seq takes 0.53-0.73 second.
  • 0.18 second for concurrent traces

Run 5000 traces with ColoredConsoleTraceListener off, and TraceHub off, so all traces are buffered without sending out

  • 0.08 second for sequential traces,
  • 0.22 second for concurrent traces

And it takes 1.5 seconds to send 5000 messages in the queue to Hub hosted in IIS Express. And it takes 1.5 seconds to Hub hosted in local IIS 7.5.

When flooding with 1000,000 trace messages in 20 threads, the trace listener takes around 50 seconds to send, so this is 20,000 message per second.

Stress Tests: TraceHub and TraceListener in US East Coast, while Console / browser in a home PC in Brisbane

System config of AWS VM:

  • Intel Xeon E5-2670 2.5GB single core
  • Memory 1 GB
  • SSD
  • Windows Server 2012 R2 64-bit
  • IIS 8.5
  • Running a few ASP.NET Websites, Redmine, Git Web, MariaDB, FileZilla Server, hMailServer and Funambol Server etc.

So WebSockets is available.

0.014 second for traces into the queue buffer, 0.0158 - 0.023 second for concurrent traces; it takes 407 milliseconds to upload sequential trace messages, to TraceHub, and 360 milliseconds to upload concurrent trace messages.

Remarks: Technically, it is possible to support WebSockets in Windows platforms lower than Win8, through http://websocket4net.codeplex.com/ and SuperWebSocket. However, this is out of the current scope of TraceHub, since TraceHub is designed for Web applications and services which should be better hosted in Windows 2012 or above.

Conclusion

During the flood of 5000 trace message sequential or concurrent, Trace Hub, HubTraceListener and browsers consume very little amount of computer resources, according to the Performance Graph of Process Explorer.

Having multiple instances of TraceHub Console and Web Browser listening to Trace Hub does not significantly impact on the performance of Trace Hub, even though Internet Explorer might cause Trace Hub to take longer time to push.