Disk Write Exceptions

AFAIK iOS still enforces a strict <1GB of file writes per 24 hour period. Exceeding this limit forces a watchdog crash.

1073.75 MB of file backed memory dirtied over 15762 seconds (68.12 KB per second average), exceeding limit of 12.43 KB per second over 86400 seconds

Our application exchanges extremely large files, and sync many small files, using a series of cryptography at rest and in flight, and we do not leverage core data or sqlite.

It's very common for us to need to write back more than 1GB in a 24 hour period and our users are hitting this and crashing. Is there no setting to circumvent 1GB limit?

Not quite sure how file sharing applications are currently getting around this.

Two points here:

  1. Are you sure you're app is actually being killed by they system?

The system uses the same core subsystem to both enforce specific limits (by terminating apps) and generate a much broader set of diagnostic logs, so both cases end up looking fairly similar. However, there should be an "Action Taken" field. If that field says "None", that means the system simply generated the log and did nothing else.

Note that having this as a "general" I/O limit:

"1GB in a 24 hour period"

...is completely unworkable. That would prevent apps from saving more than 1 or 2 movies files per day which, having had to scramble to get ready for a trip on more than one occasion, would be terrible.

  1. It is possible there is a more narrow limit involved.

If you want me to dig into the specifics in more detail then I'd recommend filing a DTS incident, but the terminology here:

"1073.75 MB of file backed memory dirtied"

...sounds like this is specifically referring to memory backed I/O ("mmap"), which is a narrower category than general I/O. If you're doing bulk I/O through mmap, then that could be a problem.

-Kevin Elliott
DTS Engineer, CoreOS/Hardware

Disk Write Exceptions
 
 
Q