This page records a passive runtime benchmark captured during a live TG505 net on the VKDMR IPSC3 server. The purpose was to observe fanout behaviour, UDP/kernel pressure, MySQL write pressure, and daemon resource use during a sustained high-fanout call-channel workload.
2026-07-07 19:42:38 to 20:13:05 AEST.1817 seconds.180, every 10 seconds./tmp/ipsc3-net-benchmark-20260707-194238.tsv.The live voice and packet path handled the net without observable UDP loss or CPU pressure. The major measurable pressure point was MySQL runtime/dashboard state projection, not direct voice-path disk I/O.
| Metric | Observed Value |
|---|---|
ipsc-server CPU | Average 10.91%, maximum 11.00%. |
ipsc-server RSS | Approximately 112 MB. |
| 1-minute load average | Average 2.61, maximum 3.94 on an 8-core host. |
| MySQL threads running | Average 3.27, maximum 7. |
Direct ipsc-server disk writes | 0.21 MB over the sample. |
| Metric | Observed Value |
|---|---|
| Active call rows | Average 55.2, maximum 156. |
| Peer RX packet delta | 52,939 packets, about 29.1/s. |
| Peer TX packet delta | 829,437 packets, about 456.5/s. |
| Kernel UDP inbound delta | 74,115 datagrams, about 40.8/s. |
| Kernel UDP outbound delta | 2,160,149 datagrams, about 1188.9/s. |
| Network RX | 777.92 MB. |
| Network TX | 1168.88 MB. |
| Metric | Observed Value |
|---|---|
| UDP input errors during sample | 0. |
| UDP receive-buffer errors during sample | 0. |
| UDP send-buffer errors during sample | 0. |
| IPSC3 UDP socket queues when checked | Empty receive/send queues. |
This indicates the Linux UDP receive path was not dropping packets during the sampled TG505 workload. Any future audio quality issue during a similar workload should first be correlated with dashboard/runtime database pressure, upstream trunk quality, or endpoint-specific behaviour before assuming kernel UDP loss.
| Metric | Observed Value |
|---|---|
| MySQL questions during sample | 1,445,538, about 795.6 qps. |
| Call events in last-minute windows | Average 6.1. |
| APRS capture rows in last-minute windows | Average 0.0 during this net sample. |
A 60-second MySQL performance-schema table I/O delta during the net showed the current write hot spots:
| Table | Writes/s | Notes |
|---|---|---|
active_talkgroups | About 144/s | Live talkgroup/dashboard state. |
peer_runtime_state | About 95-101/s | Peer runtime status and counters. |
dashboard_slot_activity | About 69/s | Per-slot dashboard RX/TX display state. |
active_calls | About 47/s | Current active stream projection. |
bmaster_published_peers | About 14-15/s | bMaster+ peer publication background updates. |
call_events | About 0.1/s | Historical call records were not the pressure point. |
A small number of runtime DB writer foreign-key warnings occurred during the measurement window, for example:
runtime DB writer failed upsert_peer_runtime_state peer_id=6404:
Cannot add or update a child row: a foreign key constraint fails
Similar warnings appeared for peer IDs 6415, 6088,
and 6410. These look like stale runtime/dashboard state updates
racing peer cleanup rather than voice-path packet loss. They should be
treated as a runtime projection cleanup issue.
active_talkgroups, dashboard_slot_activity, and peer_runtime_state writes to a fixed cadence.call_events writes as-is; they were low volume in this benchmark.