At a glance
The fraction of the last 5-minute window during which the Galera cluster was throttling writes via flow control, derived from wsrep_flow_control_paused. Galera keeps every node in sync, so when one node falls behind applying the write-set queue, it sends flow-control messages that pause writes cluster-wide until it catches up. A high value means a single slow node is acting as a brake on the entire cluster: every other node, however fast, is being held back to the speed of the slowest. For a DBA this is the early-warning signal that a node is struggling before it drops out entirely.
Calculation
Galera maintainswsrep_flow_control_paused as the cumulative fraction of time replication has been paused since the value was last reset (a reset happens on FLUSH STATUS or instance restart). Because the raw variable is cumulative, the card samples it across the 5-minute window and reports the rate of pausing over that window rather than the lifetime average:
wsrep_flow_control_sent (how many flow-control pause messages this node sent) tells you which node is the brake, which is the first thing to check when this card alerts.
Worked example
A platform team runs a 3-node MariaDB Galera cluster. Two nodes sit on NVMe storage; a third, db-galera-03, was recently re-provisioned onto a slower network-attached volume to save cost. On 03 Jun 26 at 19:40 BST a nightly bulk-import job kicks off, generating a heavy write burst.
The Vortex IQ headline reads Flow Control Paused 18% with a red gauge. The DBA reads three things:
- One slow node is throttling the whole cluster. Only db-galera-03 is sending flow-control messages (412 of them). The two NVMe nodes could apply the import easily, but Galera pauses them so the slow node does not fall out of sync. The cluster is running at the speed of its weakest disk.
- The symptom is cluster-wide, the cause is local. Write latency is up on every node and the application sees slower commits everywhere, but the fix is on db-galera-03 alone: faster storage, a tuned
innodb_flush_log_at_trx_commit, or a larger apply-thread count (wsrep_slave_threads). - This is a precursor, not yet an outage. At 18% the cluster is degraded but whole. If db-galera-03 keeps slipping, it can eventually fall so far behind that it leaves the Primary Component, which would show up on Galera Cluster Size. Acting now (at the flow-control stage) avoids the harder node-loss recovery later.
Sibling cards to reference together
Reconciling against the source
Where to look in MariaDB’s own tooling:RunWhy our number may legitimately differ from a manual query:SHOW GLOBAL STATUS LIKE 'wsrep_flow_control_paused';for the cumulative paused ratio the card derives from. RunSHOW GLOBAL STATUS LIKE 'wsrep_flow_control_sent';andLIKE 'wsrep_flow_control_recv';per node to find which node is sending the pause messages. RunSHOW GLOBAL STATUS LIKE 'wsrep_local_recv_queue%';to see the apply-queue backlog on the slow node. On a managed service, the provider’s Galera metrics view exposes the same flow-control series.
Cross-source reconciliation:
Known limitations / FAQs
The card shows 0% almost all the time. Is the metric working? Yes, and 0% is the healthy reading. A balanced cluster with adequately-provisioned nodes spends virtually no time in flow control. You should only see meaningful values during write bursts, joiner SST/IST, or when a node is genuinely struggling. A flat 0% means your nodes are keeping up with each other. How do I find which node is causing the pause? Comparewsrep_flow_control_sent across all nodes. The node sending the most flow-control messages is the brake, it is the one asking the others to slow down because its apply queue is backing up. Then check that node’s disk I/O, wsrep_local_recv_queue, and wsrep_slave_threads to understand why it cannot keep pace.
Can I just turn flow control off to make the card green?
You can relax it by raising gcs.fc_limit, but turning it off effectively is dangerous. Flow control is what keeps nodes from diverging; without it a slow node falls arbitrarily far behind and either runs out of memory holding the receive queue or gets evicted from the cluster. The right fix is to make the slow node faster, not to remove the safety mechanism.
Is flow control the same as replication lag?
No, and the distinction matters. Galera is synchronous, so it does not have async-style lag; instead, when a node would lag, flow control pauses everyone so the apply queue drains. So in Galera you see flow control, not lag. Async replicas attached downstream are a different mechanism, tracked by Async Replication Lag (seconds).
A joiner node is causing 30% pause during SST. Is that an emergency?
It is expected, not an emergency, but it is worth managing. While a node performs a State Snapshot Transfer it cannot apply live write-sets, so flow control can spike. Use a non-blocking SST method (mariabackup) so the donor stays available, and schedule joins outside peak write windows. The pause should fall back to near 0% once the joiner reaches Synced.
Why a 5-minute window rather than real-time?
Flow control is bursty: a single large transaction can pause writes for a fraction of a second. A 5-minute window smooths those harmless blips while still catching a node that is sustainably slow. The 10% alert threshold is set against this window so it fires on a real, ongoing brake rather than transient noise.
Does this card exist for standalone MariaDB?
No. wsrep_flow_control_paused only exists when the Galera (wsrep) provider is loaded. On a standalone server there is no synchronous cluster to throttle, so the card is not applicable.