2016-06-06 14 views
2

Wir haben ein kleines Java-Projekt bereitstellen müssen es 9000+ DateienAppengine-Installationen sind heute außergewöhnlich langsam?

Befehl umfassen: mvn gcloud:

bereitstellen aber ich habe das Log:

... 
[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] 
... 

Etwa 50 pro Minute So es dauert 180 Minuten ...

Es ist außergewöhnlich langsam

kann mir jemand helfen?

+0

Helfen Sie ... beschleunigen Appengine? Ich bezweifle es, ehrlich gesagt. – jonrsharpe

+0

Ich weiß nicht, warum die Bereitstellung langsam ist, war es früher. Vielleicht gibt es Fehler Config in meinem Projekt? –

+2

Nun vielleicht, aber * wer könnte von dir schreiben? * – jonrsharpe

Antwort

4

Legen Sie die Umgebungsvariable CLOUDSDK_APP_USE_GSUTIL=1 fest und versuchen Sie es erneut. Dies verwendet einen weniger zuverlässigen, aber schnelleren Codepath für das Hochladen von Dateien (es gibt Pläne, den Standard-Codepath zu beschleunigen).

+0

Danke, es funktioniert gut. –

3

Wir haben das gleiche Problem, es ist sehr langsam. Raten wir haben es gelöst.

Zuerst verfolgten wir die gcloud-Logs und wir fanden viele Dateien wurden erneut hochgeladen, diese Dateien sind alle nicht modifiziert. Daher versuchen wir, den Quellcode von gcloud zurückzuverfolgen, und wir haben festgestellt, dass das Problem durch die "Google Cloud Storage JSON API" verursacht wird.

Als es die Liste der Eimer fragte, gab es 1000 Artikel zurück, aber wir haben 1325 Artikel, also denke ich finden wir das Problem.

Dann suchen wir nach der api-Referenz, und wir finden einen Parameter - maxResults, also versuchen wir, den Quellcode zu ändern (cloud_storage.py), und wir finden, es hat keine Wirkung, wenn sein Wert über 1000 ist.

Schließlich finden wir einen anderen Parameter - nextPageToken, und wir abfragen Liste, bis der "nextPageToken" ist keiner, jetzt hat es alle Elemente von "Google Cloud Storage" und die vorhandenen Dateien nicht erneut hochgeladen.

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 
+1

Dieses Problem wurde im (noch zu veröffentlichenden) Cloud SDK 115.0.0 behoben. –