Help us shape the future of Go! Take the 2026 Go Developer Survey

loadtest

package
v1.3.104-alpha1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2026 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

Package loadtest pkg/loadtest/sink.go c4-app-proxy

The bench sink: the far end of `skywire cli proxy loadtest serve`, and the same handler the in-process mux benches run against. It lives in its own package so a test can mount it on an httptest server without pulling in the CLI.

  • GET / endless chunked octet-stream at the reader's line rate
  • GET /?bytes=N N bytes of a deterministic pattern, byte ranges (206 + Content-Range) and X-Sha256 over the whole object
  • POST|PUT /upload whole-body or acked, offset-addressed chunked uploads

See the chunked-upload contract below.

Index

Constants

This section is empty.

Variables

View Source
var (
	// UploadWindow bounds the bytes ONE session may buffer: chunks held
	// ahead of the frontier plus the chunks being read. A frontier chunk is
	// always admitted (held chunks are evicted for it if need be, and re-sent by
	// the client, which got 202 and not 200 for them), so the window can never
	// deadlock a session.
	//
	// 64 MiB is headroom, not an appetite: the striped client sizes its live
	// chunk buffers as min(its own 16 MiB memory cap / 4 MiB chunk, window/chunk
	// - 2), so a 16 MiB window left it two live chunks — one per tunnel, with an
	// ack round trip between them — and cost ~20% of single-upload throughput.
	// At 64 MiB the client's memory cap (4 chunks) binds again, and inflight
	// plus held never comes near the window.
	UploadWindow int64 = 64 << 20
	// UploadSessions caps concurrent sessions, so the sink's ceiling is
	// window x sessions (256 MiB by default) on an exit that has been OOM-killed
	// for less (#4252).
	UploadSessions = 4
	// UploadIdle expires a session that stopped making progress; its
	// buffers go with it.
	UploadIdle = 2 * time.Minute
)

Functions

func Handler

func Handler() http.Handler

Handler is the sink's routes: the endless and fixed byte source on "/" and the upload sink on "/upload".

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL