Skip to content

concurrent reads of the same file are slow #181

@tmhannes

Description

@tmhannes

When two processes are doing sequential reads at different positions in the same file, "mount.exfat' uses a lot of CPU time and throughput is much lower than might be expected.

On my test system with an i7 CPU and an external SSD:

  • A single process can read from a file at 500MB/s, with the "mount.exfat" process using 18% of one CPU core.

  • If a second process is reading from the same file at a position 1GB from the beginning, CPU usage goes to 80%, and read speed drops to 60MB/s for both processes.

  • If the second process is reading at 30GB from the beginning, CPU usage is 100% and read speed is only 3MB/s.

I think that this happens because every second read takes this code path in exfat_advance_cluster and then walks over all clusters from the beginning of the file.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions