在 EFS 卷上使用 Ubuntu AMI 掛起 Apache 請求
我注意到我在 AWS(eu-south-1 區域)上創建的用於評估從我們目前提供商的遷移的設置的奇怪行為。我想部署 1-n 個 EC2 實例,這些實例通過 Apache 為 Web 請求提供服務,為儲存在通用 EFS 卷上的文件提供服務。我已經實現並測試了 RDS 部分、PHP 性能、ElasticCache 集成等。但是,我注意到零星請求有 5 秒的延遲,這個延遲似乎非常確定,並且太接近 5 秒的值。EFS卷處於突發模式,信用很高(2T),使用百分比很低,所以這應該不是問題。
我使用“EFS 掛載助手”和“NFS 客戶端”建議的選項掛載了 EFS 卷,沒有任何改變。因此,我嘗試從頭開始重新啟動,只安裝預設的 Apache Web 伺服器(甚至嘗試使用 Nginx 獲得類似的結果)並使用以下命令從另一個 EC2 實例安裝 EFS 捲和基準測試:
siege -c 2 -r 20 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png
使用 Ubuntu 18.04 和 Ubuntu 20.04,最長事務總是在 5 秒以上(5.12 - 5.42 秒)。相反,使用 AmiLinux,最長的事務足夠快(0.15 秒)。有趣的是,如果我將並行客戶端從 2 降低到 1:
siege -c 1 -r 20 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png
最長的事務在 Ubuntu 上也可以,即使我讓“圍攻”執行更多重複:
siege -c 1 -r 10000 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png
但是,如果我們在 Ubuntu 上刪除 EFS 變數並從本地 EBS 提供文件,那麼最長的事務會非常快(幾毫秒),因此問題只出現在帶有 Ubuntu 的 EFS(18.04 和 20.04)上。也許建議的安裝選項適用於 AmiLinux,但缺少適用於 Ubuntu AMI 的東西?
重現步驟非常簡單,以至於我覺得很奇怪:
- 選擇 Ubuntu 18.04 AMI;
- 掛載 EFS 卷(使用“EFS 掛載助手”或 NFS 客戶端);
- 安裝 Apache 只更新服務目錄。
有什麼建議嗎?
我終於找到了解決方案。
該問題僅發生在核心“5.4.0-1029-aws”和“5.4.0-1032-aws”中。該問題似乎在“5.4.0-1034-aws”和“5.4.0-1035-aws”核心版本中得到解決。
所以,你只需要升級核心:
sudo apt-get-update sudo apt-get install linux-image-5.4.0-1035-aws
然後,重新啟動後,您應該擁有新的核心。使用以下命令檢查它:
uname -r
你應該看到這個結果:
5.4.0-1035-aws
那麼你不應該再有延遲了。