Thanks for the input, Robert.

After more performance tuning, I've been able to eliminate the
DeadlineExceeded errors. But I still have a hard time scaling the app
since the put calls are so expensive. Over thousands of request
handler calls, I quickly eat up CPU quota (free and paid).

Going back to the original question, I'm still unsure how the quota
math is working. I'm in the process of creating an-to-end performance
model of these calls and will post the results.



On Jul 15, 4:40 pm, Robert Kluin <[email protected]> wrote:
> Greg,
>   If you are having issues with long write times, there are two common
> options you may consider: smaller batches and transactional tasks.
>
>   I have some code that does batch processing, I set it up to search
> for the maximum batch size that is currently succeeding.  Basically I
> slowly increase my batch size until I am getting deadline exceeded
> warnings then I drop back down adjust my 'growth factor' and repeat
> the processes.  This seems to keep my batches running very close to
> the upper limit without too many deadline exceeded exceptions.
>
>   The other approach I have used it to offload some of the writes to
> other background tasks.  I write a group of entities, then send
> another handler another block of entities to write.  This has been
> working well for me too.
>
> Robert
>
>
>
> On Thu, Jul 15, 2010 at 5:22 PM, Greg Tracy <[email protected]> wrote:
>
> > I just started using AppStats for the first time - very nice package!
> > However, it didn't reveal any glaring problems. But it did help
> > validate my belief that I was using the memcache effectively.
>
> > I've been using the 'quota' package to find costly operations, and I
> > did discover a bug in my measurement. I was "starting the clock" in
> > the wrong spot so I have found some new areas to optimize. Will work
> > on that now... but I'm still not confident I can compensate for the
> > long write times.
>
> > Thanks!
>
> > On Jul 14, 10:46 pm, Robert Kluin <[email protected]> wrote:
> >> If you have not already, take a look at AppStats.  Perhaps you can
> >> find a way to improve performance.  You may also want to read through
> >> some of the datastore articles in the docs to be sure you are
> >> minimizing resource usage.
>
> >> Robert
>
> >> On Wed, Jul 14, 2010 at 7:24 PM, Greg Tracy <[email protected]> wrote:
>
> >> > Not for me... I set a budget and immediately started paying.
>
> >> > Not thrilled about this and may need to start a new thread asking for
> >> > advice on datastore contention...
>
> >> > Thanks.
>
> >> > On Jul 14, 5:57 pm, Nate Bauernfeind <[email protected]>
> >> > wrote:
> >> >> I have been.
>
> >> >> On Wed, Jul 14, 2010 at 5:37 PM, Greg Tracy <[email protected]> wrote:
> >> >> > Does this imply that I can go over the CPU Time quota and not pay for
> >> >> > it?
>
> >> >> > On Jul 14, 5:26 pm, Nate Bauernfeind <[email protected]>
> >> >> > wrote:
> >> >> > > The DataStore CPU time is included in total CPU time. To take 
> >> >> > > advantage
> >> >> > of
> >> >> > > "free datastore cpu time" you need to increase your cpu-usage 
> >> >> > > quota. When
> >> >> > I
> >> >> > > loaded a bunch of initial test data into the datastore I got tons of
> >> >> > > deadline exceeded errors, though I assumed it was cause I was 
> >> >> > > trying to
> >> >> > > stuff a lot of data in there all at once.
>
> >> >> > > Nate
>
> >> >> > > On Wed, Jul 14, 2010 at 5:24 PM, Greg Tracy <[email protected]> 
> >> >> > > wrote:
>
> >> >> > > > I've been adding some new datastore-intensive features to an app 
> >> >> > > > and
> >> >> > > > am blowing through the "CPU Time" quota. While my understanding is
> >> >> > > > that the "Datastore CPU Time" quotas have been lifted while the 
> >> >> > > > App
> >> >> > > > Engine team continues to work on the performance, I can't figure 
> >> >> > > > out
> >> >> > > > why these are mutually exclusive metrics in my app.
>
> >> >> > > > When I measure the cpu cycles being consumed in the new features, 
> >> >> > > > it
> >> >> > > > is almost exclusively in the db.put() call. In fact, 50% of the 
> >> >> > > > time,
> >> >> > > > I'm getting DeadlineExceeded errors before the put call even 
> >> >> > > > returns.
>
> >> >> > > > Is the "Datastore CPU Time" also counted in the "CPU Time"? If 
> >> >> > > > so, are
> >> >> > > > there plans to extend the quota limits there as well?
>
> >> >> > > > I'm interested in finding some resources that track performance
> >> >> > > > metrics on App Engine. I don't know what to expect in terms of
> >> >> > > > performance when I store, for example, 400 entities in the data 
> >> >> > > > store.
> >> >> > > > Are there resources where folks are contributing their metrics for
> >> >> > > > others to see?
>
> >> >> > > > Thanks.
>
> >> >> > > > --
> >> >> > > > You received this message because you are subscribed to the Google
> >> >> > Groups
> >> >> > > > "Google App Engine" group.
> >> >> > > > To post to this group, send email to 
> >> >> > > > [email protected]
> >> >> > .
> >> >> > > > To unsubscribe from this group, send email to
> >> >> > > > [email protected]<google-appengine%2Bunsubscrib
> >> >> > > >  [email protected]><google-appengine%2Bunsubscrib
> >> >> > [email protected]>
> >> >> > > > .
> >> >> > > > For more options, visit this group at
> >> >> > > >http://groups.google.com/group/google-appengine?hl=en.
>
> >> >> > --
> >> >> > You received this message because you are subscribed to the Google 
> >> >> > Groups
> >> >> > "Google App Engine" group.
> >> >> > To post to this group, send email to 
> >> >> > [email protected].
> >> >> > To unsubscribe from this group, send email to
> >> >> > [email protected]<google-appengine%2Bunsubscrib
> >> >> >  [email protected]>
> >> >> > .
> >> >> > For more options, visit this group at
> >> >> >http://groups.google.com/group/google-appengine?hl=en.
>
> >> > --
> >> > You received this message because you are subscribed to the Google 
> >> > Groups "Google App Engine" group.
> >> > To post to this group, send email to [email protected].
> >> > To unsubscribe from this group, send email to 
> >> > [email protected].
> >> > For more options, visit this group 
> >> > athttp://groups.google.com/group/google-appengine?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Google App Engine" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to