Hi Jeff, First, it's definitely a net win for us to spin down an application if it doesn't receive much traffic, even if the loading requests are significantly more expensive. This is one of the main reasons why we're able to offer everyone free quota on App Engine - it doesn't cost us extra money to host your app when it's not actually receiving traffic.
Second, as far as your free quota goes, it should be very difficult (impossible?) to use it up with just loading requests. The number of loading requests you get is inversely proportional to the traffic your app receives. The more CPU you chew up due to incoming traffic, the less CPU you chew up due to loading requests. Third, as Ikai says, we're continuously and aggressively working on optimizations for reducing both the latency of and the amount of CPU spent on loading requests. Keep a lookout for announcements in upcoming releases. Finally, I've filed a feature request<http://code.google.com/p/googleappengine/issues/detail?id=2456>in the issue tracker for reserving JVMs. If you'd like to be able to pay to reserve a JVM, please star the issue. Feel free to leave a comment about what you feel would be a reasonable pricing scheme. On Mon, Nov 30, 2009 at 3:50 PM, Jeffrey Goetsch <[email protected]>wrote: > The billing option sounds like a great solution allow people to keep an > instance up and running. I would pay $5 a month to keep servers up, but I > would suggest pricing the feature as a free feature if you spend $5 a month. > > As for the cron job, I was doing work every 5 minutes, but I found that was > using about 10% of my free CPU time. Once I moved the cron down to a > minute, I don't even use 0.1%. This seems like it is better performance for > your servers, but I understand needing to turn off non active sites. > > -Jeff > > On Mon, Nov 30, 2009 at 11:38 AM, Ikai L (Google) <[email protected]>wrote: > >> Yes. This is an issue we are working on. Basically, what happens is that >> instances of your application are elastic and loaded up upon demand. As your >> application grows, we will grow with you, but one of the consequences of >> this is that if your application is not receiving many requests, we may >> cycle you out to allocate more instances for an application with higher >> resource requirements. >> >> We discourage running cron jobs to reduce startup time because ultimately, >> this will result in more aggressive cycling for all of our users. We're >> looking at several techniques to speed up Java application startup time. >> It's also been suggested that we should look at a billing enabled option for >> keeping a certain number of instances warm at all times. >> >> On Sun, Nov 29, 2009 at 11:22 PM, Jeffrey Goetsch <[email protected]>wrote: >> >>> I have noticed that the first request to a server instance has really >>> high CPU usage (7000+ milliseconds). After the server is up, the same >>> request takes only 20 milliseconds. I am not using Spring or any other >>> framework. It appears that the time is used during the first execute call >>> on a Datastore query. >>> >>> Is this a normal behavior? >>> >>> I have a cron job that I was running every 2 minutes, but that alone was >>> using 15% of my free quota. I have moved the cron to every minute, and I'm >>> seeing huge improvement on performance and quota. The cron used to take >>> 7000+ ms and now I am getting 20ms. Does this mean you should make sure >>> you have at least on cron running every minute? >>> >>> Thanks, >>> Jeffrey >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Google App Engine for Java" group. >>> To post to this group, send email to >>> [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<google-appengine-java%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/google-appengine-java?hl=en. >>> >> >> >> >> -- >> Ikai Lan >> Developer Programs Engineer, Google App Engine >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine for Java" group. >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<google-appengine-java%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" 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-java?hl=en.
