Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在短时间内将大量文件上载到GCP bucket时出现瓶颈_Java_Google Cloud Platform_File Upload_Google Cloud Storage - Fatal编程技术网

Java 在短时间内将大量文件上载到GCP bucket时出现瓶颈

Java 在短时间内将大量文件上载到GCP bucket时出现瓶颈,java,google-cloud-platform,file-upload,google-cloud-storage,Java,Google Cloud Platform,File Upload,Google Cloud Storage,所以我有一个GCP桶,我必须上传文件到它。问题是我有1000万个文件要上传到bucket中(每个文件大小为50kb),并且我有8小时或更少的时间限制。目前,我正在使用一个Java程序()并在1000个图像上测试它,它在大约300毫秒内上传每个文件,但如果我使用多线程;我已经能够将平均时间减少到40毫秒(使用20个线程)。我最多可以执行60个线程,并将时间进一步减少到15-20毫秒,但我还面临3个问题: 每个文件20毫秒不够快。我需要它至少是3毫秒或更少 当我超过25个线程时,它抛出“com.g

所以我有一个GCP桶,我必须上传文件到它。问题是我有1000万个文件要上传到bucket中(每个文件大小为50kb),并且我有8小时或更少的时间限制。目前,我正在使用一个Java程序()并在1000个图像上测试它,它在大约300毫秒内上传每个文件,但如果我使用多线程;我已经能够将平均时间减少到40毫秒(使用20个线程)。我最多可以执行60个线程,并将时间进一步减少到15-20毫秒,但我还面临3个问题:

  • 每个文件20毫秒不够快。我需要它至少是3毫秒或更少

  • 当我超过25个线程时,它抛出“com.google.cloud.storage.StorageException:Connect timed out”异常

  • 超过60个线程后,程序似乎没有更快(我猜是硬件限制)

  • 其他信息:

    我的网速是700Mbps到1.3 Gbps。我曾考虑过压缩和上传,但我们在这方面也有一些限制,所以不能使用这种方法


    提前感谢。

    您可能在云存储上有一个热点。您无法查看解释问题原因和解决方法的文件,即在顺序之前在文件名中添加哈希。

    您可以共享文件的完整路径名模式吗?在我的本地设备上:在GCP bucket:bucketname\foldername\filename上:driveletter\foldername\filename(例如:i:\test\G00000B5\U 1608532119152.png)(例如:bucket_1\barcode11\g0000b5.png)好的,你有每个文件的增量吗?类似于
    bucket\u 1\barcode11\g0000b6.png
    是的,我有…所有上传的文件都是串行的,但没有必要以这种方式上传。这是有意义的,我尝试过这样做,但我仍然面临“java.net.SocketTimeo”导致的“com.google.cloud.storage.StorageException:Connect timeout”utException:Connect timed out.”我当前的文件名前面有一个文件名的SHA散列(例如:04671296ce3ad5c092796ba39ea6d62c38f423f4_G00000aG.png)–一旦完成,上传每个与以前相同的文件大约需要40毫秒(在20个线程上)还有,我忘了提到我在1000张图片上进行的这些基准测试,你认为数据集越大,平均值会越高吗?