Why does Linux write to swap space even if the system has available storage while copying a big file to somewhere?

In general, that behavior is application-dependent on whether the copying application gives proper indication to the kernel as to how it will read the file that it will copy.

In your case I see your file is just slightly bigger than your overall memory, so it might be that your GUI’s file manager requests a full generic mmap on the file instead of copying it in chunks.

Try copying it with cp from a terminal window. The cp command diligently gives indications to the kernel and copies the file in whatever chunks it detects to be the most appropriate for the system. You might still see the cache filling the memory but swapping should not be triggered, if not for just a bunch of bytes due to a spike in memory pressure.

Tags:

Swap