日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用AWS CloudWatch 调优Lambda函数 | 技术头条

發布時間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用AWS CloudWatch 调优Lambda函数 | 技术头条 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

戳藍字“CSDN云計算”關注我們哦!

技術頭條:干貨、簡潔、多維全面。更多云計算精華知識盡在眼前,get要點、solve難題,統統不在話下!

譯者:風車牛馬

整理:劉丹


Kyle Galbraith,高級軟件工程師,AWS認證專業解決方案架構師。Kyle Galbraith開門見山的提到:“對于使用Serverless和AWS Lambda的新人來說,通常我們會為他們提供需要的功能。我們編碼時會考慮服務會做什么,它會依賴什么。”

?


當涉及到提供新服務時,需要對一些性能做出預測。估計有多少內存來提供功能;大致了解了運行函數并退出所需的時間,無服務器架構允許我們快速部署。

?

如果我們預測和估計錯誤呢?內存不足或將時間限制設置的較低,就會出現大量錯誤。亞馬遜網絡服務不會出現這些問題,這是一種責任。同時AWS為我們提供了一些工具和方法,允許我們自己檢查這些問題。

?

本文我們將研究如何使用AWS CloudWatch來更好地理解Lambda函數——實際使用了多少內存和執行時間。在此基礎上,可以調整功能,以平衡成本問題,同時不降低性能。


AWS CloudWatch

?

早在去年11月,AWS就發布了CloudWatch。幾乎所有的AWS服務都會創建某種類型的日志,這些日志通常包含許多關于服務器的有價值的信息。

?

該版本發布之前,需要幾跳地址獲取這些數據并將其可視化。雖然可以對日志組執行基本查詢,但很多時候,必須將日志轉存到能夠查詢的地方。

?

CloudWatch 避免了這樣的負擔,可以直接查詢所感興趣的數據點。例如,查詢函數實際使用了多少內存,針對各種不同的AWS服務編寫自己的定制查詢。這對于生成特定服務器的報告和可視化非常有用。

?

我們下面來探索CloudWatch如何優化分配的內存,從而節省一點錢。注意,CloudWatch 中運行查詢的價格是每GB掃描數據0.005美元,所以要注意查詢的數據量。

?

舉個例子——AWS Lambda函數

?

我們首先假設一個實際應用的場景,已經過分分配了Lambda函數的內存。

?


我編寫了一個Lambda函數自動創建MailChimp活動。該函數通過查詢一個谷歌列表來獲取一周的文章,然后使用電子郵件模板創建MailChimp活動。

?

這個函數一周運行一次,所以不會耗盡資源。但我們假設這個函數每周被調用10,000次。想象一下,這樣跟得上嗎? 下面開始詳細討論。

?

首先看看為這個連續不斷的函數準備了多少內存,可以通過serverless.yml文件來看到。

?

有趣的是,我們在這個YAML文件中沒有看到任何有關內存的內容,為什么?這意味著使用了無服務器框架的默認內存值,為這個函數提供了1024 MB的內存。

?

對于讀取列表并調用MailChimp API的函數,我們真的需要這些內存嗎?也許吧,但實際上我們可以通過使用CloudWatch得到答案。

?

確定超配的內存

?

CloudWatch 附帶了許多開箱即用的示例查詢。您可以使用它們查看最近的CloudTrail事件、查詢VPC流日志、查看Route53區域正在接收多少請求等等。

?

這里感興趣的是超配給內存的查詢。我們可以通過登錄到AWS控制臺,然后進入CloudWatch來查詢結果。一旦進入CloudWatch服務,我們就可以選擇日志下面的鏈接。

進入CloudWatch 頁面后,我們可以選擇Sample Queries下拉菜單,然后打開Lambda選項。在這里,我們看到“Determine the amount of overprovisioned memory sample query” (查詢過量內存的數量),然后選擇它。如下所示:

?


查詢的結果有已分配的內存、最小使用量、平均使用量、最大使用量,并計算內存的過度分配情況。在選擇的時間段內(默認為1小時)進行計算。

?

在查詢編輯器中,我們還看到一個下拉菜單,它允許我們選擇查詢的AWS資源。

?


我們看到這個函數過去四周運行了四次。假設這個函數每周被調用10,000次,函數在過去4周內被調用了40000次??梢缘贸鲆韵陆Y果。

?


我們所分配的內存是976 MB,但是平均內存使用量只有95 MB,這意味著函數被超額分配了881 MB。只使用提供的內存的9%意味著什么呢?

?

最簡單的答案是,我們在浪費資源,因此也在浪費金錢。讓我們來看看價格細分。

?

Lambda函數提供1024 MB內存,每次調用大約需要7000毫秒執行。對于每周10,000次調用,我們的成本分解如下所示。

?


以每GB每秒0.00001667美元的速率,我們得到的總成本為:

?


在此計算中,還有幾美分需要考慮到請求的成本,但是在這個場景中,這些成本非常小。

老實說,一個月運行4萬次的函數每月5美元似乎不算太糟。實際上不太值得您花時間優化它,但是為了方便討論,假設將內存更改為128mb,這將如何影響我們的成本?

?


以每GB每秒0.00001667美元的速率,我們得到的總成本為:

?


哇,現在比1024 MB內存時便宜88%。好吧,這有什么大不了的,每個月只能省下4美元,可能不會對你的AWS賬單產生明顯的影響。

?

但是請記住,當我們使用無服務器框架來提供Lambda函數時,1024 MB是提供給它的默認內存。那么4-5名開發人員組成的團隊需要將該Lambda函數遷移到無服務器架構時,情況會怎樣? 他們是否對實際需要的內存做了足夠分析?也許會吧,也許不會。

?

進一步假設有300個Lambda函數,它們的性能和我們的例子相似。當我們的功能供大于求時,無服務器架構的成本將是每月4.66 x 300美元是1398.00美元。如果我們對內存進行調優,成本會顯著降低,每月0.58 x 300美元是174美元。對于如此小的變化,差異是巨大的。

?

其他要點

?

對于上述示例,我們將內存從1024 MB減少到128 MB,并且函數的性能沒有改變,函數仍然在7秒內完成了其功能。

?

然而情況并不總是這樣。在某些運行情況下,將所分配的內存更改88%將會更改函數執行所需的時間。如果減少內存導致增加6倍的時間來完成,那么反而影響了性能和效率。

?

另一方面,增加內存分配可以更快的調用。對于上述示例函數,我們可以將內存從1024 MB更改為2048 MB,并將執行時間從7秒降低到3.5秒。這意味著我們可以將函數的執行時間縮短一半,而不需要比1024 MB時多花一分錢。

?

要記住的是,可以根據需要對內存分配進行微調。超過900 MB的過剩內存,明顯說明您可以縮減內存。能否調整到128mb可能會根據具體情況而定。

?

結論

?

Serverless是一種非常強大的體系結構,可以帶來很多好處。節省成本,讓開發人員將精力放在業務驅動而不是服務器上。但是,如果沒有正確地配置和調優函數,成本效益就會很快消失。

?

要對分配給函數的內存進行調優,CloudWatch 是一個很好的方法。正如在示例函數中看到的,我們可以將函數調優到它實際使用的值(節省88%)。內存是成本控制的一個杠桿。另外,它還能以同樣的成本獲得性能優勢。





福利

掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!



推薦閱讀:

  • 圖解分布式架構的發展和演進 | 技術干貨

  • Docker 系列學習文章 | 什么是容器云?

  • 任正非:華為海思芯片不是“備胎”!

  • 揭秘清華 AI 學堂班:姚期智擔任首席教授,2019 年首批招收 30 人

  • Google Android 向華為“閉源”!華為手機迎來至暗時刻!

  • "兩年前我對區塊鏈的了解為零, 兩年后我成了工程師" 我是如何得到第一份工作的?

  • 《使女的故事》大火,AI是背后最大推手?


真香,朕在看了!

總結

以上是生活随笔為你收集整理的使用AWS CloudWatch 调优Lambda函数 | 技术头条的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。