問題タブ [gae-quotas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Google App Engine で Requests と Secure Requests のクォータが増加したのはなぜですか?
リクエスト URL をhttp://myapp.appspot.com
クォータとして使用すると、 だけ使用量が増加しQuota Details --> Requests
ます。
しかし、リクエスト URL を使用すると、https://myapp.appspot.com
クォータの使用量が と の両方Quota Details --> Requests
で増加しQuota Details --> Secure Requests
ます。
リクエスト URL を使用すると、クォータ使用量とhttps
両方が増加するのはなぜですか。Requests
Secure Requests
その理由と解決方法があれば教えてください。
ありがとう。
google-app-engine - AppEngineバックエンドクォータは変更されていません
フロントエンドアプリコード内から呼び出される動的なバックエンドプロセスがあります。これを行うには、app.yamlを介して表示する必要があります。しかし、バックエンドがこのように実行されると、管理パネルにバックエンドクォータに変更がないことがわかり、フロントエンドクォータで実行されていると思います。
taskqueue.add(url='/path/to/backend')
バックエンドは、フロントエンド側からを介して呼び出されます。
これにより、バックエンドインスタンスが最低15分間呼び出されないため、そのクォータを使用する必要がありますか?
google-app-engine - __BlobFileIndex__ がデータストア クォータを満たす
私は自分のアプリでオブジェクトを blobstore にシリアライズし、オブジェクトが変更されるたびにそれらを削除して再作成します。これが最善の方法ではないことはわかっていますが、ラピッド プロトタイピングには良い方法であることがわかりました。
現在、データストアを使用する段階ですが、問題があります。データストアのクォータがいっぱいです! :)私は問題をたくさん検索しましたが、ここにいます。
見かけ上、すべてのブロブについて、__ BlobInfo __および__ BlobFileIndex __の種類がブロブに関する情報を保持します。私の問題は、ブロブを削除すると、__ BlobInfo __ の情報は削除されますが、__ BlobFileIndex __の情報は削除されません。
私は必死に appcfg vacum_indexes を試しましたが、期待したほどには役に立ちませんでした。
ちなみに私はJavaプラットフォームを使用しています。
ここに私の質問があります
- 未使用の__ BlobFileIndex __エントリをクリアするにはどうすればよいですか?
- この状況を二度と起こさないための適切な対処法は何ですか?
ありがとうございました。
編集:ウーフー!これらの不要なインデックスを削除できないことがわかりました a) データストア管理者はそれらをリストしません b) 手動削除コードは Exception(java.lang.IllegalArgumentException: illegal key.path.element.type: BlobFileIndex ) をスローします 二重アンダースコアで始まるエンティティはapp エンジンで予約されたエンティティ、それを削除することはできません。グーグルの皆さん、私はここで立ち往生しています:)
google-app-engine - Appengine の割り当て超過
私はすでに長い間 appengine を使用していますが、今日、私のアプリケーションは既に割り当てを 3 時間超えています (> 私の毎日のコスト)。ただし、ダッシュボードにはリソースがほとんど使用されていないことが示されているため、この 1 日の制限にはほど遠いはずです。
また奇妙なことに、ダッシュボードには 1 日の上限に達したと表示されているにもかかわらず、取得に問題がないことに気付きました。データストアへの書き込みのみが割り当て超過の例外を発生させます (com.google.apphosting.api.ApiProxy$OverQuotaException: API 呼び出し datastore_v3.Put() は、利用可能なよりも多くの割り当てが必要です)。ただし、以下の統計は、書き込みがあまりない場所を示しています。クォータの詳細を見ると、すべての指標が OK です。
google-app-engine - チャネル API レート制限に対処するには?
私のウェブサイトにstackoverflow(誰かが質問に回答/コメントを追加したとき)のようなリアルタイム通知システムを実装する必要があります。それを appengine に実装する最も簡単な方法はチャネル API であることがわかりました。しかし、チャネル API のクォータ制限に取り戻されました。課金を有効にすると、作成できるトークンは 1 分あたり 60 トークンのみです。
- トラフィックの急増 (1000 新規ユーザー/秒) がある場合、このチャネル レート制限にどのように対処しますか?
- 5000 人のユーザーを (いつでも) 管理するには?
また、 token の最大有効期限は?
*すべてのユーザーにトークンを発行する必要があると仮定します。
google-app-engine - データストアの読み取り操作の割り当てに達したのはなぜですか?
私は3週間インターネットにアクセスできない場所にいましたが、1月18日以降のアプリの1つが約18時間後に割り当て制限(データストア読み取り操作)に達し始めたことを知りました。ユーザーまたはクローラーからのトラフィックの増加は見られません。これはログのエラーです:「API呼び出しdatastore_v3.RunQuery()は、使用可能なよりも多くのクォータを必要としました。」
このアプリケーションは数年間実行されており、ほとんどのデータストアリクエストをmemcachingしているので、非常に奇妙に思えます。
助けてください-これは私の収益に影響を与えています!ありがとう。
google-app-engine - appengine のおもちゃのプログラムが読み取りと書き込みのクォータ制限に達しています
50,000 語の辞書と、同様のサイズの他の 10 言語の同等の辞書を格納する appengine アプリケーションを作成したいとします。
これを開発サーバーでローカルに機能させましたが、最初の辞書を実際のアプリサーバーにロードしようとすると、すぐに 1 日あたりの書き込みクォータを超えてしまいました。データストアに登録された辞書エントリの数はわかりませんでした。24 時間後、私は辞書を一括ダウンロードして、実際に何件のエントリがあるかを確認しようとしましたが、1 日あたりの読み取りクォータに達し、何も返されませんでした。1 日の上限を $1.00 に設定して課金を有効にしようとしましたが、バルクローダーでそのクォータに達しましたが、問題や $1.00 のデータを取得できませんでした。
とにかく、データストア ビューアを調べたところ、辞書の単語ごとにデータストアへの書き込みが 8 回必要であることがわかりました。
では、この種のアプリケーションは appengine には適していないということですか? そこに辞書を保存しようとしてはいけませんか?これを行うよりスマートな方法はありますか?たとえば、何らかの方法で辞書をファイル形式でブロブ ストアに保存し、そこからプログラムで処理することはできますか?
ご提案ありがとうございます
google-app-engine - 発信帯域幅は合計応答の 2 倍
ブロブストアに保存されている 1.8Kb ~ 3.6Kb の gzip ファイルを提供する非常に単純なアプリ エンジン アプリケーションがあります。数値ファイル ID から blobkey へのマップがデータストアに保存され、memcache にキャッシュされます。サーブレットの実装は簡単です。数値のファイル ID がリクエストで受信されます。blobkey が memcache/datastore から取得され、標準BlobstoreService.serve(blobKey, resp)
が呼び出されて応答が提供されます。予想どおり、アプリのログには、応答のサイズが提供されたブロブストア ファイルのサイズと常に一致することが示されています。
私はいくつかの集中的なボリューム テストを行ってきましたが、これにより、送信帯域幅クォータの使用率が、受信した要求に対して予想されるものの約 2 倍であることが一貫して報告されていることが明らかになりました。クライアントで受信したバイト数を合計して、一度に 10 万件のリクエストを実行してきました。これをアプリ ログと比較し、発信帯域幅クォータの使用率を除いてすべてのバランスをとっています。
上記で説明した単純なアプリケーションで、送信帯域幅クォータの使用率がどのように決定されるかを理解するのに役立ちますか? 私が見逃している、または説明していないものは何ですか? アプリのログに表示される応答サイズの合計と集計されないのはなぜですか?
[2013.03.04 更新: ブロブストアの使用を中止し、ブロブをデータストアに直接保存する方法に戻しました。送信帯域幅の使用率は、予想どおりになりました。2 倍の乗数は、blobstore の使用に何らかの形で関連しているように見えます (しかし、それは説明できません)。blobstore サービスを使用する際に、他にもいくつかの問題に遭遇しました。最も問題だったのは、追加のデータストアの読み取りと書き込み (データストアで管理されている blobinfo および blobindex メタ データに関連するもので、データをブロブストアに移行することで最初に削減しようとしていたもの) でした。私にとって特に深刻な問題はこれでした: https://code.google.com/p/googleappengine/issues/detail?id=6849. これはブロブストア サービスのメモリ リークだと思います。BLOB を作成すると、データストア内の BLOB メタ データを削除することはできません。私は愚かにも 24 時間のボリュームとパフォーマンスのテストを実行し、テスト中に使用されたストレージを解放できなくなったため、この料金を永久に支払うことになります。ブロブストアは現在、非常に特定のシナリオ (つまり、永続的に静的なデータ) での使用にのみ適しているようです。頻繁に更新または変更される大量のチャーンまたはデータを含むオブジェクトは、ブロブストアに保存しないでください。]
python - クォータが補充されるまでmemcache値を保存するにはどうすればよいですか?
1日に100を超えない電子メールメッセージを送信するために、アプリケーションで次のロジックを作成します。
- 送信されるすべての電子メールメッセージはデータストアに保存されます。
- 15分ごとに実行されるcronジョブがあります。
- この仕事は、キューから電子メールメッセージを送信することです。
- データストアキューからメッセージを読み取る前に、ジョブはmemcache(
is_todays_quota_exceeded
)から値を読み取ります。 - そうでない場合は、メッセージを送信してみてください。成功した場合は、このメッセージのキューステータスを更新します。で失敗した場合は、等しい値を
apiproxy_errors.OverQuotaError
書き込みます。is_todays_quota_exceeded
1
私が抱えている問題は、GAE日の終わりまで(つまり、クォータが補充されるまで)memcache値を保存する必要があることです。どうすればそれを秒単位で計算できますか?
1日の割り当ては、太平洋時間の深夜に毎日補充されます。
Upd。私は次のことを試しました:
しかし、それは最後の行で失敗します- 'datetime.timedelta' object has no attribute 'total_seconds'
。私はPython2.5を使用していますが、total_seconds
後で実装されたようです。
Upd2。以下は、今日の終わりまでの秒数を計算するのに役立ちます。