Knowledge base

PMTA knowledge base›Block <signals>›Directive§ 11.1.6.2.15

min-free-space

<signals>

The free space threshold below which export data is deleted
in the configuration this is a linemin-free-spaceinside the block <signals>
The same name 1:<signals><spool>— some of them are other settings, some are the same one
What happens if the service goes silent for a long time

Data for export accumulates as files in a separate directory — /var/lib/pmta/sparkpost on Unix — and is deleted after a successful upload. The line sets the free space threshold below which the node starts deleting them without sending. The default is 20M.

🔴 What is deleted is lost forever, and the service’s reports are left with gaps. The vendor says so directly.

In normal operation the threshold does not fire: files are sent and deleted on their own. They start to accumulate only when the service is unavailable, overloaded or misconfigured.

So this is not a setting but a safety fuse. It decides what to sacrifice during a prolonged outage: disk space or analytics data.

The main trap is leaving the default on a node with a shared partition. Twenty megabytes is very little. If the export directory is on the same partition as the spool and accounting, the threshold will fire later than they run out of space — that is, the fuse will protect the wrong thing.
What the Hub does. It does not write it: we do not use export to external analytics. The fleet’s events reach us directly, through the accounting webhook, and there is no reason to hand them outside.
Recommended values

The choice here is short:

Value When
20M (default) a separate partition for export
1G and more a partition shared with the spool and accounting
0 never: the disk will run out completely
The 20M default, the storage directory, deletion after a successful upload and the irreversibility of deletion come from the manual (§ 11.1.6.2.15). The remark about a shared partition is ours.
Example configuration
# the export directory is on a shared partition — raise the threshold
<signals>
    api-key 0123456789abcdef012345678901234567890123
    min-free-space 1G</signals>
The threshold decides what to sacrifice when the service fails: space or data.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
▲

Common mistakes and problems

what people get wrong and how it ends1 mistake▶

Leaving the default on a partition shared with the spool

our experience

What it costsTwenty megabytes is less than the spool and accounting need. The threshold will fire after they have run out of space.
How to spot itWhen the service failed, mail acceptance stopped first, not the export.
How to do it rightRaise the threshold to a size proportionate to the partition, or move the directory to a separate one.
Compatibility
PowerMTA 6.0
described in the manual of this version · platform: any
The vendor does not state the first version for every directive — there is no note here. The name also appears in the 5.0 edition of the manual.
Reference data
Syntax
min-free-space <size>
Values
N with a multiplier b, k, m, g or t; 0 disables it
Applying
reload, no restart needed
Queue
will not touch what is already queued
Where to write it
<signals>
How many times
once in the block
Everything here comes from the manual, with the section.
Inheritance
There is no inheritance: the line lives inside <signals>, and there is only one such block on a node. The export coverage by stream is set not here but with the enable-signals line, which has three levels.
How to check on the node
Accumulation is visible from the export directory:
du -sh /var/lib/pmta/sparkpost 2>/dev/null; df -h /var/lib/pmta
A growing directory means the service is not accepting data. Deal with the service, not with the threshold.
In the Hub
Cost of a mistake
safe: a wrong value breaks nothing
Scenarios
Collect telemetry