2016-08-11 8 views
1

Basic scalingは、自動スケーリングに比べて大きな利点があります。バックグラウンドタスクの実行時間が長くなります。Google Cloud Platform(App Engine)の基本スケーリングで最小インスタンスを設定する方法はありますか?

しかし、documentationからは、基本的なスケーリング設定でアイドルインスタンスの最小数を設定することができないように見えますが、これは大きな監視のようです。その結果、アプリケーションの使用率が低い場合、アプリケーションが単一のB2インスタンスになってしまい、数回のリクエストでも500回のエラーが発生するとすぐに新しいインスタンスが時間通りに起動されません。

自動スケーリング設定では、これを解決するためにアイドルインスタンスの数を増やすだけです。

私たちのセットアップは次のとおりです。もちろん

instance_class: B2 
basic_scaling: 
    max_instances: 35 
    idle_timeout: 10m 

我々はすべての回で> 1つのインスタンスを必要とする十分な頻度でインスタンスをウォームアップするcronジョブを追加することで、これをハックすることができますが、これは貧しい回避策のように思えます。

誰でもこの問題が発生していますか?これは基本的なスケーリングの現在の真の限界ですか?

答えて

1

私は今、長い間そのことについてイライラしているが、あなたは、crontabの状況を救うだろうと思ったよう基本的なスケーリング

のためのアクティブなインスタンスの最小数を持ってする方法はありませんが、私は望んでいました私はこれをきれいな方法で実装しましたので、私は使用しましたhttps://cloud.google.com/appengine/docs/standard/java/config/cron

具体的には、4分ごとに呼び出されるダミーエンドポイントを実装しました。 idle_timeoutはデフォルトで5分なので4を選択しました。

<?xml version="1.0" encoding="UTF-8"?> 
<cronentries> 
    <cron> 
    <url>/admin/keepalive</url> 
    <target>my-module</target> 
    <description>Keepalive to get an always on instance with basic scaling</description> 
    <schedule>every 4 minutes</schedule> 
    </cron> 
</cronentries> 
関連する問題