aboutsummaryrefslogtreecommitdiffstats
path: root/research/experiments/019-idle-links/2026-09-28-links-linux-aarch64.jsonl
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 19:41:08 +0100
committereunhhu <[email protected]>2026-09-28 19:41:08 +0100
commit63cc9554f2cd93e46d0413a21cbce05014e2f2b3 (patch)
tree1479bb368b8fa4d2dcac3c43d73c9b34ffca41dc /research/experiments/019-idle-links/2026-09-28-links-linux-aarch64.jsonl
parenta83d663404e030a8734fddc8827fb4afe309a1b9 (diff)
downloadpure-63cc9554f2cd93e46d0413a21cbce05014e2f2b3.tar.gz
pure-63cc9554f2cd93e46d0413a21cbce05014e2f2b3.zip
Measure a link at rest: 132 bytes against a QUIC connection's 38,106 (094)
M1 of design 011. A Pure node allows 1,000 to 1,000,000 senders; each sends one order and, once told it is stored, rests. At rest a link costs the node 132 bytes (the sender allowed, 73; its number heard, about 60) and no transport state; with a million the node runs in 139 MB. A quinn 0.11 service holding the same exchange's clients connected at rest costs 38,106 bytes a connection: 289 times as much, past the design's 1/100. A link at rest takes its next record in 0.56 ms to stored, one X25519 on the node included; a new QUIC connection takes 1.06 ms and 2.8 times the receiver's CPU, without storing. research/experiments/019-idle-links: links.c, many senders written from serve/link.h's packet format alone (a second implementation), and the quinn service and clients (quic/, built offline); run.py makes both measurements.
Diffstat (limited to 'research/experiments/019-idle-links/2026-09-28-links-linux-aarch64.jsonl')
-rw-r--r--research/experiments/019-idle-links/2026-09-28-links-linux-aarch64.jsonl4
1 files changed, 4 insertions, 0 deletions
diff --git a/research/experiments/019-idle-links/2026-09-28-links-linux-aarch64.jsonl b/research/experiments/019-idle-links/2026-09-28-links-linux-aarch64.jsonl
new file mode 100644
index 0000000..eccdf16
--- /dev/null
+++ b/research/experiments/019-idle-links/2026-09-28-links-linux-aarch64.jsonl
@@ -0,0 +1,4 @@
+{"senders": 1000, "idle_ms": 1000, "start_empty_seconds": 0.006, "empty": {"rss_kb": 7840, "hwm_kb": 7840, "anonymous_kb": 1920}, "start_allowed_seconds": 0.005, "allowed": {"rss_kb": 7872, "hwm_kb": 7872, "anonymous_kb": 1952}, "send": {"devices": 1000, "stored": 1000, "failed": 0, "resent": 0, "seconds": 0.28, "per_second": 3567, "stored_ms_p50": 70.335, "stored_ms_p99": 73.269, "stored_ms_max": 142.015}, "node_cpu_ms_per_send": 0.27, "sent": {"rss_kb": 10576, "hwm_kb": 10576, "anonymous_kb": 4576}, "after_idle": {"rss_kb": 10576, "hwm_kb": 10576, "anonymous_kb": 4576}, "wake": {"devices": 1000, "stored": 1000, "failed": 0, "resent": 0, "seconds": 0.567, "per_second": 1763, "stored_ms_p50": 0.558, "stored_ms_p99": 0.803, "stored_ms_max": 2.22}, "node_cpu_ms_per_wake": 0.29, "listener": {"listener_packets": 4000, "listener_received": 2000, "listener_deliveries": 2000, "listener_woken": 2000, "listener_swept": 1000, "listener_active": 1000}, "store_bytes": 9249128, "allowed_bytes_per_sender": 32.8, "after_idle_bytes_per_sender": 2719.7, "active_bytes_per_sender": 0.0}
+{"senders": 10000, "idle_ms": 1000, "start_empty_seconds": 0.005, "empty": {"rss_kb": 7792, "hwm_kb": 7792, "anonymous_kb": 1872}, "start_allowed_seconds": 0.01, "allowed": {"rss_kb": 8656, "hwm_kb": 8656, "anonymous_kb": 2752}, "send": {"devices": 10000, "stored": 10000, "failed": 0, "resent": 0, "seconds": 2.706, "per_second": 3695, "stored_ms_p50": 67.724, "stored_ms_p99": 92.981, "stored_ms_max": 164.554}, "node_cpu_ms_per_send": 0.272, "sent": {"rss_kb": 20256, "hwm_kb": 20256, "anonymous_kb": 14272}, "after_idle": {"rss_kb": 20144, "hwm_kb": 20144, "anonymous_kb": 14160}, "wake": {"devices": 1000, "stored": 1000, "failed": 0, "resent": 0, "seconds": 0.548, "per_second": 1825, "stored_ms_p50": 0.558, "stored_ms_p99": 0.641, "stored_ms_max": 1.658}, "node_cpu_ms_per_wake": 0.28, "listener": {"listener_packets": 22000, "listener_received": 11000, "listener_deliveries": 11000, "listener_woken": 11000, "listener_swept": 10000, "listener_active": 1000}, "store_bytes": 9512137, "allowed_bytes_per_sender": 90.1, "after_idle_bytes_per_sender": 1258.3, "active_bytes_per_sender": 11.5}
+{"senders": 100000, "idle_ms": 1000, "start_empty_seconds": 0.005, "empty": {"rss_kb": 7808, "hwm_kb": 7808, "anonymous_kb": 1888}, "start_allowed_seconds": 0.056, "allowed": {"rss_kb": 15440, "hwm_kb": 15440, "anonymous_kb": 9520}, "send": {"devices": 100000, "stored": 100000, "failed": 0, "resent": 0, "seconds": 26.95, "per_second": 3711, "stored_ms_p50": 68.192, "stored_ms_p99": 84.642, "stored_ms_max": 156.787}, "node_cpu_ms_per_send": 0.2727, "sent": {"rss_kb": 32176, "hwm_kb": 32176, "anonymous_kb": 26160}, "after_idle": {"rss_kb": 32112, "hwm_kb": 32112, "anonymous_kb": 26096}, "wake": {"devices": 1000, "stored": 1000, "failed": 0, "resent": 0, "seconds": 0.556, "per_second": 1799, "stored_ms_p50": 0.56, "stored_ms_p99": 0.689, "stored_ms_max": 1.716}, "node_cpu_ms_per_wake": 0.28, "listener": {"listener_packets": 202000, "listener_received": 101000, "listener_deliveries": 101000, "listener_woken": 101000, "listener_swept": 100000, "listener_active": 1000}, "store_bytes": 9512137, "allowed_bytes_per_sender": 78.2, "after_idle_bytes_per_sender": 247.9, "active_bytes_per_sender": 0.7}
+{"senders": 1000000, "idle_ms": 1000, "start_empty_seconds": 0.005, "empty": {"rss_kb": 7792, "hwm_kb": 7792, "anonymous_kb": 1888}, "start_allowed_seconds": 0.674, "allowed": {"rss_kb": 79728, "hwm_kb": 79728, "anonymous_kb": 73824}, "send": {"devices": 1000000, "stored": 1000000, "failed": 0, "resent": 0, "seconds": 272.342, "per_second": 3672, "stored_ms_p50": 67.898, "stored_ms_p99": 132.387, "stored_ms_max": 403.293}, "node_cpu_ms_per_send": 0.2742, "sent": {"rss_kb": 148016, "hwm_kb": 148016, "anonymous_kb": 142016}, "after_idle": {"rss_kb": 148016, "hwm_kb": 148016, "anonymous_kb": 142016}, "wake": {"devices": 1000, "stored": 1000, "failed": 0, "resent": 0, "seconds": 0.56, "per_second": 1787, "stored_ms_p50": 0.564, "stored_ms_p99": 0.688, "stored_ms_max": 1.736}, "node_cpu_ms_per_wake": 0.28, "listener": {"listener_packets": 2002000, "listener_received": 1001000, "listener_deliveries": 1001000, "listener_woken": 1001000, "listener_swept": 1000000, "listener_active": 1000}, "store_bytes": 68232393, "allowed_bytes_per_sender": 73.7, "after_idle_bytes_per_sender": 143.5, "active_bytes_per_sender": 0.0}