Nginx

Amazon EC2 t1.micro + nginx + php-fpm = 有時非常慢

  • December 9, 2011

首先是關於基礎設施的一些事情:

我們已將我們的後端/管理伺服器之一遷移到亞馬遜。此伺服器上的應用程序僅偶爾使用(最多 10 個並行使用者)。我們正在使用一個執行 Gentoo 的 t1.micro 實例。作為 Web 伺服器,我們將 nginx 與 PHP-FPM 結合使用。問題是有時伺服器速度很慢,這意味著頁面需要 10-20 秒才能載入(在我的本地開發環境中最多需要 2 秒,而且這些頁面很重…… 80mb+)。我試圖分析和重現錯誤,但只發現記憶體還可以(270mb free),而 cpu 負載為 100%

配置:

nginx 有 2 個工人,最多。1024 個連接。

PHP-FPM(我刪除了評論)

error_log = /var/log/php-fpm.log

...

;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ; 
;;;;;;;;;;;;;;;;;;;;

[www]

listen = 127.0.0.1:9000

user = www
group = www

pm = dynamic

pm.max_children = 8

pm.start_servers = 2

pm.min_spare_servers = 2

pm.max_spare_servers = 4

pm.max_requests = 100

我希望有人知道該怎麼做:)

查看http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html,您將在其中找到有關 t1.micro 的詳細資訊以及它與其他實例類型(如 m1.small)的比較。這將有助於理解實例的行為。

短:一旦您超過“短爆發”階段,您將獲得大量的 cpu ‘st’(顯示為top),這會減慢一切。

EC2 微型實例提供短暫的 CPU 爆發,而不是恆定的 CPU 功率。這是預期的行為。微型實例最多只能提供幾分鐘的完整 CPU 功率,然後將其限制回大約 5-10% 的容量。如果您查看,top您會看到“st”的值很高,這是來自管理程序的 CPU 竊取(您無法使用的 IE CPU/精簡配置)。

該系列的實例提供少量一致的 CPU 資源,並允許您在有更多周期可用時突增 CPU 容量。它們非常適合週期性消耗大量計​​算週期的低吞吐量應用程序和網站

-亞馬遜

引用自:https://serverfault.com/questions/339326