今天的 App Engine 部署异常缓慢?
Appengine deployments are extraodinarily slow today?
我们有一个小的 java 项目需要部署
它包括 9000 多个文件
命令:mvn gcloud:deploy
但我得到了日志:
...
[INFO] INFO: Uploading [/home/steven/work/idigisign/target/appengine-staging/__static__/node_modules/rx/src/core/linq/observable/when.js] to [7dfb30ad32893c5042dba03601f006a40419fab0]
[INFO] DEBUG: Uploading [/home/steven/work/idigisign/target/appengine-staging/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js] to [7e0725897d7b99c3c33b56915d202e2dde552ea9]
[INFO] INFO: Uploading [/home/steven/work/idigisign/target/appengine-staging/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js] to [7e0725897d7b99c3c33b56915d202e2dde552ea9]
[INFO] DEBUG: Uploading [/home/steven/work/idigisign/target/appengine-staging/node_modules/is-redirect/index.js] to [7e0afe4775bf7f8558665760171c01948c22f771]
[INFO] INFO: Uploading [/home/steven/work/idigisign/target/appengine-staging/node_modules/is-redirect/index.js] to [7e0afe4775bf7f8558665760171c01948c22f771]
[INFO] DEBUG: Uploading [/home/steven/work/idigisign/target/appengine-staging/node_modules/rxjs/src/util/Map.ts] to [7e11722f4cd9ce91ec99b97710fbc4e7f40be09d]
...
每分钟约50个
所以它会花费180分钟...
速度特别慢
有人可以帮助我吗?
设置环境变量CLOUDSDK_APP_USE_GSUTIL=1
再试;这使用不太可靠但速度更快的文件上传代码路径(有计划加快默认代码路径)。
我们有同样的问题,速度很慢。
猜猜我们已经解决了。
首先,我们跟踪了gcloud的日志,发现很多文件都被重新上传了,这些文件都没有被修改过。所以我们尝试跟踪gcloud的源代码,我们发现问题是由"Google Cloud Storage JSON API".
引起的
当它查询存储桶列表时,它返回了 1000 个项目,但我们有 1325 个项目,所以我想我们找到了问题。
然后,我们查找api引用,找到一个参数-maxResults,于是尝试修改源码(cloud_storage.py),发现没有效果它的价值超过1000.
最后,我们找到另一个参数——nextPageToken,我们查询列表直到 "nextPageToken" 是 None,现在它得到了 "Google Cloud Storage" 中的所有项目并且不上传存在的文件再次.
def ListBucket(bucket_ref, client):
request = STORAGE_MESSAGES.StorageObjectsListRequest(bucket=bucket_ref.bucket)
items = set()
try:
response = client.objects.List(request)
for item in response.items:
items.add(item.name)
while response.nextPageToken:
request = STORAGE_MESSAGES.StorageObjectsListRequest(bucket=bucket_ref.bucket,pageToken=response.nextPageToken)
response = client.objects.List(request)
for item in response.items:
items.add(item.name)
except api_exceptions.HttpError as e:
raise UploadError('Error uploading files: {e}'.format(e=e))
return items
我们有一个小的 java 项目需要部署 它包括 9000 多个文件
命令:mvn gcloud:deploy
但我得到了日志:
...
[INFO] INFO: Uploading [/home/steven/work/idigisign/target/appengine-staging/__static__/node_modules/rx/src/core/linq/observable/when.js] to [7dfb30ad32893c5042dba03601f006a40419fab0]
[INFO] DEBUG: Uploading [/home/steven/work/idigisign/target/appengine-staging/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js] to [7e0725897d7b99c3c33b56915d202e2dde552ea9]
[INFO] INFO: Uploading [/home/steven/work/idigisign/target/appengine-staging/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js] to [7e0725897d7b99c3c33b56915d202e2dde552ea9]
[INFO] DEBUG: Uploading [/home/steven/work/idigisign/target/appengine-staging/node_modules/is-redirect/index.js] to [7e0afe4775bf7f8558665760171c01948c22f771]
[INFO] INFO: Uploading [/home/steven/work/idigisign/target/appengine-staging/node_modules/is-redirect/index.js] to [7e0afe4775bf7f8558665760171c01948c22f771]
[INFO] DEBUG: Uploading [/home/steven/work/idigisign/target/appengine-staging/node_modules/rxjs/src/util/Map.ts] to [7e11722f4cd9ce91ec99b97710fbc4e7f40be09d]
...
每分钟约50个 所以它会花费180分钟...
速度特别慢
有人可以帮助我吗?
设置环境变量CLOUDSDK_APP_USE_GSUTIL=1
再试;这使用不太可靠但速度更快的文件上传代码路径(有计划加快默认代码路径)。
我们有同样的问题,速度很慢。 猜猜我们已经解决了。
首先,我们跟踪了gcloud的日志,发现很多文件都被重新上传了,这些文件都没有被修改过。所以我们尝试跟踪gcloud的源代码,我们发现问题是由"Google Cloud Storage JSON API".
引起的当它查询存储桶列表时,它返回了 1000 个项目,但我们有 1325 个项目,所以我想我们找到了问题。
然后,我们查找api引用,找到一个参数-maxResults,于是尝试修改源码(cloud_storage.py),发现没有效果它的价值超过1000.
最后,我们找到另一个参数——nextPageToken,我们查询列表直到 "nextPageToken" 是 None,现在它得到了 "Google Cloud Storage" 中的所有项目并且不上传存在的文件再次.
def ListBucket(bucket_ref, client):
request = STORAGE_MESSAGES.StorageObjectsListRequest(bucket=bucket_ref.bucket)
items = set()
try:
response = client.objects.List(request)
for item in response.items:
items.add(item.name)
while response.nextPageToken:
request = STORAGE_MESSAGES.StorageObjectsListRequest(bucket=bucket_ref.bucket,pageToken=response.nextPageToken)
response = client.objects.List(request)
for item in response.items:
items.add(item.name)
except api_exceptions.HttpError as e:
raise UploadError('Error uploading files: {e}'.format(e=e))
return items