Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How are frontend instance hours calculated on app engine?

I have a simple online ordering application I have built. It probably handles 25 hours a week, most of those on Mondays and Tuesday.

Looking at the dashboard I see:

Billing Status: Free - Settings Quotas reset every 24 hours. Next reset: 7 hrs  Resource             Usage   Frontend Instance Hours      16%     4.53 of 28.00 Instance Hours 

4.53 hours seems insanely high for the number of users I have.

Some of my pages make calls to a filemaker database stored on another service and have latencies like:

URI         Reqs        MCycles     Latencies           /profile    50          74          1241 ms /order      49          130         3157 ms 

my authentication pages also have high latencies as they call out to third parties:

/auth/google/callback 9  51  2399 ms 

I still don't see how they could add up to 4.53 hours though?

Can anyone explain?

like image 246
deltanine Avatar asked May 28 '13 00:05

deltanine


People also ask

How long is the instance startup time for service instances running in the App Engine standard environment?

24 hours for HTTP requests and task queue tasks.

How does App Engine scale?

By default, your app uses automatic scaling, which means App Engine will manage the number of idle instances. Automatic scaling creates instances based on request rate, response latencies, and other application metrics.

What are the three modes of scaling in App Engine?

There are actually three types of scaling in App Engine: Automatic, Basic, and Manual.

What is GCP instance class?

The instance class determines the amount of memory and CPU available to each instance, the amount of free quota, and the cost per hour after your app exceeds the free quota. The memory limits vary by runtime generation.


2 Answers

In addition to the previous answer, I thought to add a bit more about your billing which might have you confused. Google gives you 28 hours of free instance time for each 24 hour billing period.

Ideally you always have one instance running so that calls to your app never have to wait for an instance to spin up. One instance can handle a pretty decent volume of calls each minute, so a lot can be accomplished with those free 28 hours.

You have a lot of zero instance time (consumed less than 5 instance hours in seventeen hours of potential billing.) You need to worry more about getting this higher not lower because undoubtedly most of the calls to your app currently are waiting for both spin-up latency plus actual execution latency. If you are running a Go app, spin-up is likely not an issue. Python, likely a small-to-moderate issue, Java...

So think instead about keeping your instance alive, and consume 100% of your free instance quota. Alternatively, be sure to use Go, or Python (with good design). Do not use Java.

like image 188
stevep Avatar answered Sep 28 '22 06:09

stevep


You're charged 15 minutes every time an instance is spins up.

If you have few requests, but they are spaced out, your instance would shut down, and you'll incur the 15 minute charge the next time the instance spins up.

You could easily rack up 4.5 instance hours with 18 HTTP requests.

like image 30
dragonx Avatar answered Sep 28 '22 05:09

dragonx