The Minor alarm /var partition usage is high on a Juniper EX usually has one of four causes: a leftover install image, old packages kept after an upgrade, runaway logs, or core dumps. A typical r/Juniper post describes it well. One member of a five-unit EX3400 Virtual Chassis raises the alarm, but show system storage does not even list a /var partition. This guide shows where the space actually went and how to free it without breaking the switch.

It was written against Junos OS 23.4 on EX2300, EX3400 and EX4300. It has not been tested on every platform, so check each command on your own release before you rely on it. The newer FreeBSD-based EX2300 and EX3400 images lay out storage differently from EX4300 and older EX platforms, and we flag the differences below.

What the /var Partition Usage Is High Alarm Actually Means

chassisd watches the filesystem that holds /var. It raises a Minor alarm when usage crosses an internal threshold. The alarm is a warning, not an outage. Left alone, though, a full /var can stop logging, block commits, and make upgrades fail with errors such as "not enough space to unpack". The Juniper KB on this alarm also warns that a switch that is out of space may stop accepting logins.

user@ex> show chassis alarms
1 alarms currently active
Alarm time               Class  Description
2026-09-20 03:12:44 UTC  Minor  Host 0 /var partition usage is high

That output is a sample. The confusing part on EX2300 and EX3400 is that /var is not a separate partition there. It lives inside the /dev/gpt/junos filesystem mounted at /.mount. So when show system storage shows /.mount at 74 percent, that is your /var figure. On EX4300 and older platforms, you will usually see a separate line mounted on /var.

Why is this alarm so common on small EX switches? Total flash on EX2300 and EX3400 is small. The Juniper KB on storage during EX2300 and EX3400 upgrades explains how the disk is split between partitions. A modern install package is a large share of that space. Junos also keeps the previous package set so you can roll back. Rollback safety and free space pull against each other, and on a small switch you cannot fully have both. That is the design trade-off behind nearly every thread on this alarm.

Step-by-Step Diagnosis: Checks in Order

Work from the cheapest, safest command to the most invasive. Most cases are solved by step 4.

  1. Find which member raised the alarm with show chassis alarms. On a VC, it is often one member only.
  2. Run show system storage on that member to get the real usage figure.
  3. Run request system storage cleanup dry-run to see what Junos considers safe to remove.
  4. List /var/tmp and /var/log from the CLI and look for large files.
  5. Check for core dumps with show system core-dumps.
  6. Only then open the shell and measure directories with du.
user@ex> show chassis alarms
user@ex> request session member 1
user@ex> show system storage
user@ex> request system storage cleanup dry-run
user@ex> file list /var/tmp detail
user@ex> file list /var/log detail
user@ex> show system core-dumps

If the CLI views do not explain the usage, measure it from the shell. These commands only read and delete nothing:

user@ex> start shell
% cd /var
% du -cks * | sort -rn | head -15
% exit

Root Causes Ranked by Frequency

This ranking is based on forum threads and our experience. Your mix may differ, but check in this order.

1. Install images left in /var/tmp

This is the most common cause. Someone copied a package to upgrade and never deleted it. Or a copy failed halfway and left a partial file behind. The file copy process can also stage a file before moving it, which is why a copy can fail even when /var/tmp looks big enough. Delete old packages from the CLI after you confirm the running version with show version.

2. Old package sets and snapshots after an upgrade

On EX2300 and EX3400, a jump across major trains, for example 18.x to 20.x or later, can leave the old package set under /packages/db. Snapshots can also hold another full image. The Juniper /var partition usage KB documents snapshot deletion for these platforms. It also notes that those commands do not apply to EX4200 or EX4300. Keep one known-good recovery path before you delete, such as a USB image or out-of-band access.

3. Logs and traceoptions that grow without limit

Old traceoptions are a frequent cause. Someone enabled tracing with a large file size during an incident and never removed it. Big packet captures in a home directory are another. DHCP relay logs also appear in real du output shared on r/Juniper. Delete the files, then remove the traceoptions, or cap them with size and files.

4. Core dumps in /var/crash or /var/tmp

A crashing daemon leaves core files, and those can be large. show system core-dumps lists them. Do not just delete them and move on. A core file means something crashed, so copy it off the switch for JTAC before you remove it.

5. The wtmp login record never archived

Juniper has a KB on /var filling because the wtmp login-record file was not rotated. This is less common, but it happens on switches with heavy automated logins. request system storage cleanup rotates logs, so it usually recovers the space.

6. It comes back the next day

If cleanup clears the alarm and it returns within a day, something is writing steadily. A 2025 forum thread on an EX2300 running 23.4R1-S2 found most of the usage in /var/rundb, in files such as render.db and schema.db. Those are internal database files for the management daemon. Do not delete them on a guess. In our experience, recurring growth like this needs a reboot to recover space, an upgrade to a JTAC-recommended release, or a JTAC case.

The Fix: Free Space Safely

Start with the supported cleanup. It rotates logs and removes files Junos knows are safe to remove. Always look at the dry-run list first.

user@ex> request system storage cleanup dry-run
user@ex> request system storage cleanup

user@ex> file delete /var/tmp/junos-arm-32-OLD-RELEASE.tgz
user@ex> show system storage

The file name above is a placeholder. Use the real name from file list /var/tmp detail. On EX2300 and EX3400 in a VC, clean the snapshot and old package space per the KB above:

user@ex> request system snapshot delete * all-members
user@ex> request system snapshot delete previous all-members

Then stop logs and tracing from refilling the disk. These changes do not touch forwarding, but commit them with commit confirmed 5 anyway if the switch is remote:

set system syslog archive size 1m files 5
set system syslog file messages any notice
set system syslog file messages archive size 1m files 5
delete protocols dot1x traceoptions
commit confirmed 5

The delete ... traceoptions line is an example. Search your own config with show configuration | display set | match traceoptions and remove what is no longer needed.

What not to delete

The Juniper KB says it plainly. Unless JTAC tells you to, do not delete files outside /var/home from a root shell. The root shell lets you remove system files, and a wrong rm can leave the switch unable to boot. Some community posts delete old package directories under /packages/db by hand. That can work, but only when you are certain the directory does not belong to the running release. Prefer the supported snapshot and cleanup commands.

Quick Reference: Symptom, Cause, Fix

What you seeLikely causeFix
Large .tgz files in /var/tmpLeftover install imagefile delete after confirming the running version
Usage jumped after an 18.x to 20.x+ upgradeOld package set or snapshot keptSnapshot delete commands on EX2300/EX3400, or JTAC
Large files in /var/logTraceoptions or syslog without limitsRemove traceoptions, set archive size and files
Files listed in show system core-dumpsCrashing daemonCopy off for JTAC, then delete
Alarm on one VC member onlyThat member has local filesrequest session member N, then clean up there
Alarm returns within a daySteady writes, often rundb growthReboot in a window, upgrade, or open a case

Verification: What Healthy Output Looks Like

user@ex> show system storage
fpc1:
--------------------------------------------------------------------------
Filesystem              Size       Used      Avail  Capacity   Mounted on
/dev/gpt/junos          1.3G       560M       696M       45%  /.mount
tmpfs                   707M        12K       707M        0%  /.mount/tmp
tmpfs                   324M       464K       323M        0%  /.mount/mfs

user@ex> show chassis alarms
No alarms currently active

These numbers are samples. Healthy means capacity has dropped well below where the alarm fired. The alarm does not always clear the moment space is freed. The Juniper KB reports it clearing by itself after about 20 minutes. If capacity is low and the alarm stays for an hour or more, check whether the alarm is coming from a different VC member.

If DHCP relay logs are growing on a busy access switch, first fix the relay with troubleshooting Junos DHCP relay drop counters. If you enabled flow tracing on an SRX, clean it up the way the SRX security flow traceoptions guide describes. CLI and file-management basics are in the Junos basics section, and more symptom guides are in the troubleshooting hub. The full command options are in the Juniper request system storage cleanup reference. The VC symptom in the opening paragraph comes from this r/Juniper thread.

Frequently Asked Questions

var partition usage is high, but show system storage does not show /var?

On EX2300 and EX3400, /var sits inside /dev/gpt/junos, which is mounted at /.mount. Read that line as your /var usage. Run the command on the member that raised the alarm, using request session member N.

EX storage full, and cleanup command does not help?

Cleanup only removes files Junos considers safe, such as rotated logs. It does not remove install images left in odd places or old package sets. Check file list /var/tmp detail and use the snapshot delete commands on EX2300 and EX3400.

High storage usage on /var reoccuring regularly?

Something is writing steadily. Check for active traceoptions with show configuration | display set | match traceoptions, and measure /var with du to find the growing directory. If the growth is in /var/rundb, do not delete files there. Reboot in a window, upgrade, or open a JTAC case.

Space issues on EX2300 during upgrade?

Free space before you copy the image. Run request system storage cleanup, delete old snapshots, and remove old packages from /var/tmp. Community posts also describe a workaround of staging the image in /var/tmp or /mfs. Check the Juniper EX2300 and EX3400 storage KB for the current recommendation.

Remote EX file copy no space on device?

A copy can need more room than the file size suggests, because the file is staged before it reaches its destination. Clean up first, then retry the copy to /var/tmp. Confirm free space with show system storage before you retry.

Scripting request system storage cleanup: how do I pass yes?

Use request system storage cleanup no-confirm. The option was added in Junos OS 17.3R1. Run the dry-run version in the script first and log what it will remove.

Juniper, Junos, MX, SRX, EX and QFX are trademarks of Juniper Networks, Inc., now part of HPE. juniperclient.com is independent and unaffiliated.