
我一直在 AWS Elastic Beanstalk 環境中處理一個可以說是奇怪的問題。當給定時間單一實例上的連線超過 300 個時,我收到以下 nginx 錯誤:
2018/03/23 20:56:53 [錯誤] 5431#0: *4121 connect() 到unix:///var/run/puma/my_app.sock 連接到上游時失敗(11:資源暫時不可用),客戶:
答案1
仔細檢查問題和配置,失敗與超出資源限制有關。可能有兩個作業系統資源:
- 開啟檔案描述符
- 單一使用者可用的進程。只是為了消除進程限制,請將 EC2 執行個體中的 nproc 值設為非常高的值或無限。
sudo vi /etc/security/limits.conf
參考這個連結一個簡單的想法。因此,由於worker_rlimit_nofile 不能超過伺服器上設定的ulimit,第一個方法是計算nginx 參數並根據要求進行調整:
我們可以服務
worker_processes * worker_connections / ( keepalive_timout * 2 ) users per second
。
本縮放指南可以幫助您量化您應該增加和定義的值。定義完 Web 伺服器的值後,您需要使用更高或相等的值更新限制。檢查伺服器的使用者並發數以幫助您進行擴展。