Snapshot restore is very slow to get started

the threads don't seem to being pushed at all:

{elasticsearch-master-0.elasticsearch-master-headless.elasticsearch.svc.cluster.local}{10.32.67.3:9300}{ml.machine_memory=54874828800, xpack.installed=true, ml.max_open_jobs=20, ml.enabled=true, nodepool_id=diuvjg-elastic-local-storage}
   Hot threads at 2020-03-31T12:57:45.200Z, interval=500ms, busiestThreads=99999, ignoreIdleThreads=true:

 7.5% (37.3ms out of 500ms) cpu usage by thread 'elasticsearch[W7LJGMn][generic][T#18]'
     2/10 snapshots sharing following 31 elements
       java.base@11.0.6/sun.nio.ch.FileDispatcherImpl.write0(Native Method)
       java.base@11.0.6/sun.nio.ch.FileDispatcherImpl.write(FileDispatcherImpl.java:62)
       java.base@11.0.6/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113)
       java.base@11.0.6/sun.nio.ch.IOUtil.write(IOUtil.java:79)
       java.base@11.0.6/sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:280)
       java.base@11.0.6/java.nio.channels.Channels.writeFullyImpl(Channels.java:74)
       java.base@11.0.6/java.nio.channels.Channels.writeFully(Channels.java:97)
       java.base@11.0.6/java.nio.channels.Channels$1.write(Channels.java:172)
       app//org.apache.lucene.store.FSDirectory$FSIndexOutput$1.write(FSDirectory.java:417)
       java.base@11.0.6/java.util.zip.CheckedOutputStream.write(CheckedOutputStream.java:74)
       java.base@11.0.6/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
       java.base@11.0.6/java.io.BufferedOutputStream.write(BufferedOutputStream.java:127)
       app//org.apache.lucene.store.OutputStreamIndexOutput.writeBytes(OutputStreamIndexOutput.java:53)
       app//org.elasticsearch.common.lucene.store.FilterIndexOutput.writeBytes(FilterIndexOutput.java:59)
       app//org.elasticsearch.index.store.Store$LuceneVerifyingIndexOutput.writeBytes(Store.java:1223)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFile(FileRestoreContext.java:262)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFiles(FileRestoreContext.java:238)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restore(FileRestoreContext.java:199)
       app//org.elasticsearch.repositories.blobstore.BlobStoreRepository.restoreShard(BlobStoreRepository.java:863)
       app//org.elasticsearch.index.shard.StoreRecovery.restore(StoreRecovery.java:486)
       app//org.elasticsearch.index.shard.StoreRecovery.lambda$recoverFromRepository$5(StoreRecovery.java:287)
       app//org.elasticsearch.index.shard.StoreRecovery$$Lambda$4390/0x0000000840e41c40.run(Unknown Source)
       app//org.elasticsearch.index.shard.StoreRecovery.executeRecovery(StoreRecovery.java:310)
       app//org.elasticsearch.index.shard.StoreRecovery.recoverFromRepository(StoreRecovery.java:285)
       app//org.elasticsearch.index.shard.IndexShard.restoreFromRepository(IndexShard.java:1747)
       app//org.elasticsearch.index.shard.IndexShard.lambda$startRecovery$10(IndexShard.java:2417)
       app//org.elasticsearch.index.shard.IndexShard$$Lambda$4389/0x0000000840e41840.run(Unknown Source)
       app//org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       java.base@11.0.6/java.lang.Thread.run(Thread.java:834)
     8/10 snapshots sharing following 22 elements
       java.base@11.0.6/java.lang.Thread.sleep(Native Method)
       java.base@11.0.6/java.lang.Thread.sleep(Thread.java:339)
       app//org.apache.lucene.store.RateLimiter$SimpleRateLimiter.pause(RateLimiter.java:153)
       app//org.elasticsearch.index.snapshots.blobstore.RateLimitingInputStream.maybePause(RateLimitingInputStream.java:52)
       app//org.elasticsearch.index.snapshots.blobstore.RateLimitingInputStream.read(RateLimitingInputStream.java:71)
       java.base@11.0.6/java.io.FilterInputStream.read(FilterInputStream.java:107)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFile(FileRestoreContext.java:261)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFiles(FileRestoreContext.java:238)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restore(FileRestoreContext.java:199)
       app//org.elasticsearch.repositories.blobstore.BlobStoreRepository.restoreShard(BlobStoreRepository.java:863)
       app//org.elasticsearch.index.shard.StoreRecovery.restore(StoreRecovery.java:486)
       app//org.elasticsearch.index.shard.StoreRecovery.lambda$recoverFromRepository$5(StoreRecovery.java:287)
       app//org.elasticsearch.index.shard.StoreRecovery$$Lambda$4390/0x0000000840e41c40.run(Unknown Source)
       app//org.elasticsearch.index.shard.StoreRecovery.executeRecovery(StoreRecovery.java:310)
       app//org.elasticsearch.index.shard.StoreRecovery.recoverFromRepository(StoreRecovery.java:285)
       app//org.elasticsearch.index.shard.IndexShard.restoreFromRepository(IndexShard.java:1747)
       app//org.elasticsearch.index.shard.IndexShard.lambda$startRecovery$10(IndexShard.java:2417)
       app//org.elasticsearch.index.shard.IndexShard$$Lambda$4389/0x0000000840e41840.run(Unknown Source)
       app//org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       java.base@11.0.6/java.lang.Thread.run(Thread.java:834)
   
    6.1% (30.3ms out of 500ms) cpu usage by thread 'elasticsearch[W7LJGMn][generic][T#8]'
     10/10 snapshots sharing following 22 elements
       java.base@11.0.6/java.lang.Thread.sleep(Native Method)
       java.base@11.0.6/java.lang.Thread.sleep(Thread.java:339)
       app//org.apache.lucene.store.RateLimiter$SimpleRateLimiter.pause(RateLimiter.java:153)
       app//org.elasticsearch.index.snapshots.blobstore.RateLimitingInputStream.maybePause(RateLimitingInputStream.java:52)
       app//org.elasticsearch.index.snapshots.blobstore.RateLimitingInputStream.read(RateLimitingInputStream.java:71)
       java.base@11.0.6/java.io.FilterInputStream.read(FilterInputStream.java:107)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFile(FileRestoreContext.java:261)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFiles(FileRestoreContext.java:238)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restore(FileRestoreContext.java:199)
       app//org.elasticsearch.repositories.blobstore.BlobStoreRepository.restoreShard(BlobStoreRepository.java:863)
       app//org.elasticsearch.index.shard.StoreRecovery.restore(StoreRecovery.java:486)
       app//org.elasticsearch.index.shard.StoreRecovery.lambda$recoverFromRepository$5(StoreRecovery.java:287)
       app//org.elasticsearch.index.shard.StoreRecovery$$Lambda$4390/0x0000000840e41c40.run(Unknown Source)
       app//org.elasticsearch.index.shard.StoreRecovery.executeRecovery(StoreRecovery.java:310)
       app//org.elasticsearch.index.shard.StoreRecovery.recoverFromRepository(StoreRecovery.java:285)
       app//org.elasticsearch.index.shard.IndexShard.restoreFromRepository(IndexShard.java:1747)
       app//org.elasticsearch.index.shard.IndexShard.lambda$startRecovery$10(IndexShard.java:2417)
       app//org.elasticsearch.index.shard.IndexShard$$Lambda$4389/0x0000000840e41840.run(Unknown Source)
       app//org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       java.base@11.0.6/java.lang.Thread.run(Thread.java:834)
   
    5.0% (24.9ms out of 500ms) cpu usage by thread 'elasticsearch[W7LJGMn][generic][T#19]'
     10/10 snapshots sharing following 22 elements
       java.base@11.0.6/java.lang.Thread.sleep(Native Method)
       java.base@11.0.6/java.lang.Thread.sleep(Thread.java:339)
       app//org.apache.lucene.store.RateLimiter$SimpleRateLimiter.pause(RateLimiter.java:153)
       app//org.elasticsearch.index.snapshots.blobstore.RateLimitingInputStream.maybePause(RateLimitingInputStream.java:52)
       app//org.elasticsearch.index.snapshots.blobstore.RateLimitingInputStream.read(RateLimitingInputStream.java:71)
       java.base@11.0.6/java.io.FilterInputStream.read(FilterInputStream.java:107)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFile(FileRestoreContext.java:261)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restoreFiles(FileRestoreContext.java:238)
       app//org.elasticsearch.repositories.blobstore.FileRestoreContext.restore(FileRestoreContext.java:199)
       app//org.elasticsearch.repositories.blobstore.BlobStoreRepository.restoreShard(BlobStoreRepository.java:863)
       app//org.elasticsearch.index.shard.StoreRecovery.restore(StoreRecovery.java:486)
       app//org.elasticsearch.index.shard.StoreRecovery.lambda$recoverFromRepository$5(StoreRecovery.java:287)
       app//org.elasticsearch.index.shard.StoreRecovery$$Lambda$4390/0x0000000840e41c40.run(Unknown Source)
       app//org.elasticsearch.index.shard.StoreRecovery.executeRecovery(StoreRecovery.java:310)
       app//org.elasticsearch.index.shard.StoreRecovery.recoverFromRepository(StoreRecovery.java:285)
       app//org.elasticsearch.index.shard.IndexShard.restoreFromRepository(IndexShard.java:1747)
       app//org.elasticsearch.index.shard.IndexShard.lambda$startRecovery$10(IndexShard.java:2417)
       app//org.elasticsearch.index.shard.IndexShard$$Lambda$4389/0x0000000840e41840.run(Unknown Source)
       app//org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
       java.base@11.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
       java.base@11.0.6/java.lang.Thread.run(Thread.java:834)

couldn't post everything here, so I edited the question with more information.