bitcoind sync is utilising very little CPU and bandwidth and is very slow Is there a way to increase the sync speed. It's running in single thread on raspberrypi connected with USB HDD.

top

top - 13:58:12 up 32 min,  2 users,  load average: 2.64, 1.74, 0.80
Tasks: 138 total,   1 running, 137 sleeping,   0 stopped,   0 zombie
%Cpu(s): 10.1 us,  2.6 sy,  0.0 ni, 56.3 id, 30.9 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :   947732 total,   101584 free,   239716 used,   606432 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   623092 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
 1594 necktwi   20   0  345160 198200   7864 S  50.8 20.9   1:33.10 bitcoind 


nethogs

NetHogs version 0.8.1

    PID USER     PROGRAM                    DEV        SENT      RECEIVED       
   1594 necktwi  bitcoind                   enxb82     0.234       1.388 KB/sec


actually, I have a bandwidth of 6MBps.
Make sure you are connected to enough peers (maybe >4)
Make sure you use either the default -par config value or you set it according to your available CPU cores (usually num of cores +1)
Make sure, you have fast disk access (ideally SSD). If disk access is slow (don't use NFS, NAS, etc.), it could tear down the verification process (leaving your CPU partially unused)
Try to change the default database cache size. A -dbcache of 4GB can really significant speedup the sync, though don't over-allocate if your system has not plenty of RAM to waste.