【发布时间】:2011-09-08 07:17:36
【问题描述】:
我的应用目前每天使用大约 2 小时的 CPU 时间,但使用了 100 多个实例小时。这是否意味着每个实例平均只有 2% 的时间工作?
我想优化我的系统以使用尽可能少的实例时间。目标的合理使用百分比是多少?
【问题讨论】:
我的应用目前每天使用大约 2 小时的 CPU 时间,但使用了 100 多个实例小时。这是否意味着每个实例平均只有 2% 的时间工作?
我想优化我的系统以使用尽可能少的实例时间。目标的合理使用百分比是多少?
【问题讨论】:
是的,这大致是您的平均 CPU 利用率。
要减少实例时间和提高 CPU 利用率,您可以做的第一件事就是并行化您的代码,同时尽可能多地完成工作。 Asynchronous URLFetch 和 Async Datastore API 之类的工具将对此有所帮助。 NDB library 虽然仍处于试验阶段,但让编写使用 RPC 并行性的代码变得容易得多。
确定此类优化中容易实现的目标的最佳方法是在您的应用程序上运行App Stats,并检查您花费最多时间等待的 RPC,看看您是否可以在执行其他操作时做其他事情等待他们完成。
您应该期望的利用率百分比在很大程度上取决于您正在做什么。如果您主要受 CPU 限制,您可能会获得 100%,或者如果您的应用本质上是完全串行的,您可能无法提高 2%。
【讨论】: