CPU utilisation on raspberry pi

I just noticed that my seafile server spends about 50% of its CPU time on waiting for some IO. I. E. while synchronising some gigabytes of data I had a look to top in the command line and I saw that the CPUs are about 40% idle and 60% waiting.
Nevertheless I can reach upload rates of up to 8 MB/s

Well I wonder if this is normal!? Does any body else haveing the same values for the CPU utilisation?

Here is my setup:
I am running the latest version of seafile server on an Raspberry 3. The server is installed on the microSD card
The seafile-data folder is on a 2.5" HDD which is attached via USB.
My seafile server uses nginx, SQLite and https.
The Raspberry runs at normal clock speed and uses raspian lite.

what is the class of your SD card?

Make sure nothing writes to the sd, it is slow and the sd will be broken within short time.

Hello and thank you for the hints.

I was just now not able to pull out the microSD card from the rPi.

But I moved the whole installation to the external HDD.
Now the ioWait is about 20%. It varies between zero an 50%.