Community Solution

ZimaOS searchd at 100% CPU After a Large File Transfer: The 1.3.2 Fix and How Current Search Schedules Indexing

A January-February 2025 ZimaOS thread where searchd stayed at 100% CPU for hours or days after a large file transfer. IceWhale first explained that Files search required indexing, then identified an occasional pagination-logic corner case, fixed it in 1.3.2-beta2, added idle service folding, moved content indexing to midnight at low resource use, and documented how to disable search.

The original high-CPU behavior was not simply “normal indexing can run forever.” After a large transfer, searchd stayed at 100% CPU for hours—and some users reported multiple days—raising system temperature and forcing them to choose between stopping search or leaving the CPU busy.

IceWhale later gave a precise explanation: an occasional pagination-logic corner case could cause the long-running CPU problem. It was fixed/optimized in ZimaOS 1.3.2-beta2. The same update added search-engine folding after idle time, kept filename indexing accurate/real-time, and moved file-content indexing to midnight with lower resource usage. Current ZimaOS Search documentation has evolved further, with explicit throttling and much lower idle memory/service counts.

ZimaOS system monitor showing searchd consuming 100 percent CPU after a large file transfer
The source monitor shows searchd dominating CPU after the transfer had already completed.

Search Requires an Index

Zima-Giorgio initially explained that the Files search function needs to index files. That part was correct, but it did not explain why CPU stayed pegged for unusually long periods.

IceWhale Later Identified a Pagination-Logic Corner Case

On February 11, 2025, orca-zhang said the long CPU problem could occasionally be caused by a pagination-logic error and that the issue had been fixed and optimized in 1.3.2-beta2.

This is the strongest source conclusion and should replace the earlier vague “it is indexing” explanation.

1.3.2 Added Idle Search-Service Folding

IceWhale said that when search was not needed, searchd would be released after roughly three minutes of idle time, leaving only the lightweight zimaos-search service below 100 MB memory and around 0–1% CPU.

Content Indexing Was Moved to Midnight

The same reply separated two jobs:

  • filename index — kept as accurate and real-time as possible;
  • file-content index — delayed until midnight and run at low resource usage.

That distinction still exists in the current search architecture.

Current IceWhale documentation describes:

  • real-time file-change monitoring and filename indexing;
  • content indexing at midnight;
  • maximum 100,000 documents per processing type/session;
  • maximum five minutes processing time per type;
  • write-barrier protection against CPU spikes;
  • service/memory folding after inactivity.

Use the current ZimaOS Search architecture.

Search Could Be Disabled from ZimaOS 1.3.2

orca-zhang said the persistence added to /etc in 1.3.2 allowed users who did not need search to run:

systemctl disable zimaos-search

Stopping/disabling search means Files search will report that the service is unavailable. Current users should first verify current search behavior before disabling a core service solely because of a historical bug.

The /dev/root “100% Full” Screenshot Was a Different Issue

Another participant noticed /dev/root showed 100% use and tried to enlarge it. IceWhale explained that this read-only SquashFS root representation is intentional for system integrity and should not be treated like a conventional writable root partition that needs free space.

Do not resize/delete ZimaOS system partitions because the SquashFS image reports full.

ZimaOS dashboard during the searchd high CPU period showing system CPU load storage and installed apps
The high search CPU was visible at the system level even though the underlying read-only system-root layout was behaving as designed.

If Search Uses High CPU on Current ZimaOS

  1. confirm the system is on current stable ZimaOS;
  2. check whether a large file import just occurred;
  3. allow the documented indexing window to finish;
  4. monitor whether CPU falls after the service's idle period;
  5. collect current zimaos-search logs if CPU remains high well beyond the expected window.

searchd High CPU FAQ

Was 100% CPU for multiple days considered normal?

No. IceWhale later identified a pagination-logic corner case and fixed it in 1.3.2-beta2.

When does current ZimaOS do content indexing?

Current documentation says content indexing is processed during off-peak hours at midnight, while filename changes are indexed in real time.

Does /dev/root at 100% mean the system disk is out of free space?

Not in the source case. IceWhale explained that the SquashFS system-root representation is intentionally read-only and expected to appear full.