cloudfoundry – Cloud Foundry`cf push`很慢:CPU使用率高,禁用资源匹配

对于我的
Java应用程序,cf push需要太长时间.

Uploading ${APPNAME}...
Uploading app files from: ${PATH}.jar
Uploading 19.8M, 6584 files
Done uploading

推送时,第一行显示分钟(CPU负载为100%).然后,实际上传开始(第二行)并在一秒钟内完成.

使用CF_TRACE = true,我看到资源匹配请求(https://apidocs.cloudfoundry.org/220/resource_match/list_all_matching_resources.html).对于此请求,将发送一个JSON字符串,其中包含我的JAR文件中所有文件的哈希值.收集此信息在我的情况下需要太长时间,因为JAR文件包含许多文件.

有没有办法禁用资源匹配请求?据我所知,它仅用于不上传未更改的文件(CloudFoundry实例已知).不过,上载20M的数据只需要一秒钟.

最佳答案 我在运行包含大量类文件的jar时看到了这一点. Cloud Foundry无法缓存小文件,如果您要上传数千个第三方类文件,那就太浪费了.如果你使用“阴影”罐子会发生这种情况.如果你重新打包它所以依赖关系是在jar中,而不是在平面目录结构中,它将显着提高在stager中获得缓存命中的机会.例如,Spring Boot工具(用于Maven和Gradle)为您执行此操作,并且不要求您使用Spring Boot作为应用程序代码.

点赞