我有一個Python App Engine應用程序,它每天提供約3M的請求。我正試圖優化應用程序以節省我可笑的氣球託管賬單。Python App Engine webapp2路由速度慢
November, App Engine Frontend Instances: 12924.391 Hours, $604.22
我的請求處理到一些memcached的電話,但現在我已經注意到,它通常需要大約20毫秒,只要有時166毫秒webapp2的前甚至將請求傳遞給我。
在下面的圖片中,您可以看到顯示「後」在166ms發生的跟蹤。
下面是這個服務的代碼。
import logging
logging.info("main.py logging imported")
from imports import *
from handlers import *
logging.info("completed importing others")
class Main(webapp.RequestHandler):
def post(self):
logging.info("Post")
self.get()
...
app = webapp.WSGIApplication(
[
('/.*', Main)
],
debug=False
)
我試過了什麼?
我有線程安全啓用,所以任何進口不應該發生在請求服務之前。可以肯定的是,我還添加了日誌記錄以查看導入的時間,以及您可以看到他們沒有完成每個請求。
更多信息
這不是重要的是,延遲低,除了節省託管費用。即使使用1分鐘響應時間(請求是API webhook),我也可以,只要它不計入前端實例時間即可!
如果它是相關的,這是我的app.yaml的開始。
application: coolestsports-hrd
version: 1
runtime: python27
threadsafe: yes
api_version: 1
automatic_scaling:
min_idle_instances: 1
min_pending_latency: 1000ms
我不確定你的網址方案是什麼樣子,但如果可能的話,它可能有助於從匹配的網址中刪除通配符字符 –
@BRadC我爲app.yaml頂部的url添加了直接路由,在通配符之前的WSGIApplication中也是如此,但看起來並不一樣(每個請求仍然需要20+毫秒)。 – Bemmu
我不知道「前端實例」時間是否包含TCP套接字建立成本(包括往返)?這可能可以解釋這 – Bemmu