Skip to content

Fine tuned http/s benchmark framework with synchronization across requests and detailed trace.

License

Notifications You must be signed in to change notification settings

nropatas/httpbench

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[TOC]

Purpose

Fine tuned http/s benchmark framework with synchronization across requests and detailed trace.

Motivation

In order to reliably test invocation latency and benchmark FaaS providers, a benchmark tool with fine grained control over the request and the results. The major issue with current benchmarking tools is that they didn't allow us to synchronize between the stages of request while testing.

For example, a simple test of 3 concurrent requests with a delay of 20ms to an endpoint resulted in an unreliable invocation latency results, because it took into affect the dns resolve time, the tcp handshake and tlshandshake time, and the delay didn't have the desired effect, requests invoked the endpoint in random times.

This was due to the fact that the invocation accord AFTER the tlshandshake.

httpbench allowed us to wait for the 3 concurrent requests to finished the tls handshake, and then release each one with 20ms delay between them.

Hooks

Hooks

	GetConn
	DNSStart
	DNSDone
	ConnectStart
	ConnectDone
	TLSHandshakeStart
	TLSHandshakeDone
	GotConn
	WroteHeaders
	WroteRequest
	Got100Continue
	GotFirstResponseByte
	Wait100Continue

Presets

Over time presets where added to enable more test types:

RequestPerDuration

RequestPerDuration

ConcurrentRequestsUnsynced

ConcurrentRequestsUnsynced

ConcurrentRequestsSynced

ConcurrentRequestsSynced

ConcurrentRequestsSyncedOnce

ConcurrentRequestsSyncedOnce

RequestsForTimeGraph

RequestsForTimeGraph

ConcurrentForTimeGraph

ConcurrentForTimeGraph

Test

Should trust the included private key in order to run locally (or add your own trusted one) Integration tests cannot run parallel at the moment (TODO: add different server process for each test in order to run parallel)

About

Fine tuned http/s benchmark framework with synchronization across requests and detailed trace.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%