Java 第一次网络连接到s3非常耗时

Java 第一次网络连接到s3非常耗时,java,performance,networking,amazon-s3,Java,Performance,Networking,Amazon S3,我有一个用例,需要用Java从AmazonS3下载多个文件。第一次单独使用需要更多的时间~800毫秒。以下15个请求所需的时间实际上少于100毫秒。我正在寻找以下答案 为什么第一次要花很长时间。建立任何耗时的网络连接 是否可以对网络连接建立进行预热 我使用的是org apache文件Utils org.apache.commons.io.FileUtils.copyURLToFile(url, new File(filename)); 我认为这与S3无关 首先,从验证DNS解析程序是否正常工作

我有一个用例,需要用Java从AmazonS3下载多个文件。第一次单独使用需要更多的时间~800毫秒。以下15个请求所需的时间实际上少于100毫秒。我正在寻找以下答案

  • 为什么第一次要花很长时间。建立任何耗时的网络连接
  • 是否可以对网络连接建立进行预热
  • 我使用的是org apache文件Utils

    org.apache.commons.io.FileUtils.copyURLToFile(url, new File(filename));
    

    我认为这与S3无关

    首先,从验证DNS解析程序是否正常工作开始。尝试
    nslookup
    dig
    相应的主机。FQDN的解析速度有多快

    其次,您确定需要预热连接,而不是JVM吗?JVM在某些代码路径的第一次执行时可能会比较慢。试着预热JVM。这里有一些提示: