Skip to main content

Posts

Showing posts from June, 2019

[探索 5 分鐘] AWS Lambda Serverless - AspNetCore API 回應時間測試

 最近公司使用 AWS Lambda Function 來當基礎服務, 而且越用越多。我也呼應寫了一個 AWS Lambda Serverless Web API, 還加碼寫一個 Client Package 來打這個 API (對, 只有一個 .cs 檔案幫忙做 HTTP Request ...)。但由於 HTTP 回應實在太慢了, 我決定稍微做個併發 Request 測試, 花了些時間, 但大家應該 5 分鐘就可以知道結論了 : 一定要避免 冷啟動 (Cold Start) 問題 ( 6~8 秒才能回應, 不管 Request 方是在 AWS 環境內還是外) 若機器全數在 AWS 雲內, 可得到平均回應 51 ms ~ 61 ms, 還算行 (畢竟我們已經獲得 Lambda 開發與佈署的好處了) 若需要最穩健快速的 Server 回應體驗, 就別用 Lambda 吧 (一般而言, 應該也沒有冷啟動問題了) 疑 ? 好像只花了不到 1 分鐘 ! 前置準備 用 AWS Lambda Serverless for VS 模板寫一隻 AspNetCore API, 一鍵佈署到 AWS, 並獲得一個 API Gateway 的 Public HTTP 網址 測試工具可以抓  Netling , 是用 AspNetCore3.0 寫的, Git 下載, VS 編譯並執行看看 當然, 要有 NetCore 3.0 Runtime 環境 測試腳本 設計情境: 2 個 Threads, 併發跑 10 個 Requests .\Netling.ConsoleClient.exe https://{xxx}.execute-api.us-west-2.amazonaws.com/{xxx} -t 2 -c 10 外網機器發動請求 (測試程式不在 AWS 雲內) Run 1 ( 冷啟動 , Max: 6191 ms, Min: 153 ms) 10 requests in 10.86s     Requests/sec:   1     Bandwidth:      0 mbit     Errors:         0 Latency     Median:         541.385 ms     StdDev: