Get the latest tech news

Napkin-math: Techniques for estimating system performance from first-principles


Techniques and numbers for estimating system's performance from first-principles - sirupsen/napkin-math

The goal of this project is to collect software, numbers, and techniques to quickly estimate the expected performance of systems from first-principles. By composing these resources you should be able to answer interesting questions like: how much storage cost should you expect to pay for logging for an application with 100,000 RPS? OperationLatencyThroughput1 MiB1 GiBSequential Memory R/W (64 bytes)0.5 ns├ Single Thread, No SIMD10 GiB/s100 μs100 ms├ Single Thread, SIMD20 GiB/s50 μs50 ms├ Threaded, No SIMD30 GiB/s35 μs35 ms├ Threaded, SIMD35 GiB/s30 μs30 msNetwork Same-Zone10 GiB/s100 μs100 ms├ Inside VPC10 GiB/s100 μs100 ms├ Outside VPC3 GiB/s300 μs300 msHashing, not crypto-safe (64 bytes)25 ns2 GiB/s500 μs500 msRandom Memory R/W (64 bytes)50 ns1 GiB/s1 ms1sFast Serialization[8][9] †N/A1 GiB/s1 ms1sFast Deserialization[8][9] †N/A1 GiB/s1 ms1sSystem Call500 nsN/AN/AN/AHashing, crypto-safe (64 bytes)100 ns1 GiB/s1 ms1sSequential SSD read (8 KiB)1 μs4 GiB/s200 μs200 msContext Switch[1] [2] 10 μsN/AN/AN/ASequential SSD write, -fsync (8KiB)10 μs1 GiB/s1 ms1sTCP Echo Server (32 KiB)10 μs4 GiB/s200 μs200 msDecompression[11] N/A1 GiB/s1 ms1sCompression[11] N/A500 MiB/s2 ms2sSequential SSD write, +fsync (8KiB)1 ms10 MiB/s100 ms2 minSorting (64-bit integers)N/A200 MiB/s5 ms5sSequential HDD Read (8 KiB)10 ms250 MiB/s2 ms2sBlob Storage GET, 1 conn50 ms500 MiB/s2 ms2sBlob Storage GET, n conn (offsets)50 msNW limitBlob Storage PUT, 1 conn50 ms100 MiB/s10 ms10sBlob Storage PUT, n conn (multipart)150 msNW limitRandom SSD Read (8 KiB)100 μs70 MiB/s15 ms15sSerialization[8][9] †N/A100 MiB/s10 ms10sDeserialization[8][9] †N/A100 MiB/s10 ms10sProxy: Envoy/ProxySQL/Nginx/HAProxy50 μs??

Get the Android app

Or read this on Hacker News

Read more on:

Photo of math

math

Photo of principles

principles

Photo of techniques

techniques

Related news:

News photo

Protocol Buffer Design: Principles and Practices for Collaborative Development

News photo

Techniques I use to create a great user experience for shell scripts

News photo

OpenAI Unveils o1 ChatGPT Model That Can Reason Through Math and Science