我正在使用應用程式引擎來提供一堆 sklearn 模型。這些模型的大小約為 100 mb,其中大約有 25 個。
下載它們有時可能需要長達 15 秒的時間,盡管它們位于指定的應用程式引擎存盤區中,并且通常占據請求時間。
我目前使用環繞 GCS 存盤客戶端的 FIFO 快取層,但快取命中率并不高,因為不同模型的使用非常分散,并且應用程式引擎記憶體有限。
Memcache 似乎太小了,/tmp 也存盤在 RAM 中。
是否有更好的解決方案來快取此類檔案?
uj5u.com熱心網友回復:
您可以想象不同的解決方案來解決您的問題。
- 您可以在部署中嵌入模型。像那樣,模型已經與服務一起出現了。發布新模型版本時,您部署了新的應用引擎服務修訂版
- 先例解決方案的問題是部署頻率:當其中一個模型更新時,您需要重新打包并重新部署您的 App Engine 服務。解決方案是微服務。每個 App Engine 服務可以有 1 個模型,因此只能部署已更新的模型。如果您只需要入口點,您可以使用第 26 個應用引擎服務作為您的入口點,并將請求路由到正確的模型服務。
- 您還可以使用 Cloud Run 執行相同的操作,如果您需要特殊的東西,您可以在其中管理容器包裝和細節。您還可以更靈活地選擇 CPU 數量和記憶體大小。
最后一點,在解決下載問題部分后,您可能會遇到冷啟動問題:服務器啟動并將模型加載到記憶體中的時間(在第一次請求時,實體啟動時)。Cloud Run 提出了一個 min-instance 功能來為一定數量的實體保溫,從而消除冷啟動問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/318943.html
上一篇:洗掉圖例中不在資料中的顏色
下一篇:AppEngine默認IAM
