我在 Google App Engine 上為我的網站應用(靜態托管在其他地方)運行了一個 nodejs 后端。我的 QPS 非常低:

然而,我的實體數量經常超過 1、2,有時甚至高達 3 或 4。這超出了免費配額,我開始不得不付費。

我的費用每月低于 0.1 美元,但現在經常高于 8 美元,這是一個令人擔憂的趨勢。我的用戶群或他們的模式并沒有真正改變來解釋這一點(并且如上所述 QPS 很低,恕我直言)。
我注意到記憶體使用量相對較高,我想知道是否應該調查我的應用程式中潛在的記憶體泄漏。
該應用程式的更多背景資訊:它主要處理身份驗證并將資料提取并存盤到 MongoDB Atlas 中。
uj5u.com熱心網友回復:
我會采用兩步流程
- 首先“臨時”
maximum_instances在您的app.yaml檔案中將您設定為 1 。這意味著您的服務器只會啟動 1 個實體。這帶來了一個風險,即如果您的流量激增,對于某些人來說可能會很慢。
應用程式.yaml
automatic_scaling:
max_instances: 1
- 然后調查您的代碼中是否存在記憶體泄漏并查看如何優化您的代碼。如果您發現問題并修復它,您可以洗掉 max_instance 或提高值。
uj5u.com熱心網友回復:
從您分享的螢屏截圖中,我可以看到您的實體數量隨著記憶體使用量的增加而增加,并以同樣的方式減少。因此,我建議增加分配給每個實體的記憶體量,以使用更少的實體來為您的應用程式提供服務。正如本指南建議開始測驗您的應用程式:
從較低的機器(1 個核心 CPU 和 1 GB RAM)開始,并增加 App Engine 應生成的最小實體數
此外,指南說:
由于 App Engine 根據每小時使用的內核數和 RAM 數向您收費,因此通過在較低的機器上使用前一種設定,您最多可以節省 40% 的成本
因此,最好為實體分配更多記憶體以避免成本過高。
在App Engine 定價頁面中,它說:
記憶體資源的計費包括您的應用程式使用的記憶體加上運行時本身運行您的應用程式所需的記憶體。這意味著您的記憶體使用和成本可能高于您為應用請求的最大記憶體。
在您的app.yaml組態檔中,您可以設定memory_gb默認設定為 0.6 GB 的引數。
應用程式請求的記憶體,不包括某些行程開銷所需的 ~0.4 GB 記憶體。每個 CPU 內核需要 0.9 到 6.5 GB 的總記憶體。計算請求的記憶體:'memory_gb = cpu * [0.9 - 6.5] - 0.4'
此外,您應該檢查您的代碼是否存在記憶體泄漏,以避免您的應用程式消耗比預期更多的記憶體。
最后,您可以使用定價計算器根據您對應用程式所做的調整來估算應用程式的成本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/349391.html
標籤:谷歌应用引擎
上一篇:如何編輯串列中的字串/網址?
下一篇:谷歌云檔案系統是短暫的嗎?
