Hi,
I am experiencing slow transfer speeds over SMB when handling small files, so I began troubleshooting.
I excluded SMB, and started benchmarking locally on the server.
For this test, I am transferring a folder of 2.2GB, containing 148 files, photos and videos from my smartphone. These are not "so small" files, but vary from 2MB (photos) to 100MB (videos).
I used rsync to show the current and total progress.
I am using a NVMe drive to rule out any HDD weirdness and get the best scenario.
Take a look at these runs. All the same, just deleted the copied folder and run them again.

Only the 4° run took 2 seconds at the expected speed.
During the slow copies, the speed would slow down after about 30%, and iowait skyrocket to 95% (measured via glances) with no load on the server.
Taken during the second copy

The same behaviour can be replicated on HDDs with MergerFS.
As you can see by top, there's no load on the server.
Looks like that writing is the only issue. If I copy the folder from the server to my client using SMB, I top up gigabit speed.
The hardware specs are in my signature below.
What should I do?