Linux

如何判斷:是 nginx 還是 PHP-cgi 更慢?

  • June 13, 2012

我經營一個流量很大的網站。我正在使用 nginx 和 php fast-cgi。但是,當在瀏覽器中載入簡單的 php 文件時,頁面載入前最多需要 5-6 秒。有時它甚至只是導致“404 not found” nginx 錯誤。

在 debian 上使用“htop”時,我離使用伺服器的資源還差得很遠。發生什麼了?是 nginx 嗎?它是 PHP-fast-cgi 嗎?我不知道瓶頸在哪裡。

我的 nginx 配置片段:

使用者 www-data www-data;
worker_processes 2;

事件{
worker_connections 4048;
}


http {
包括 mime.types;
default_type 應用程序/八位字節流;
發送文件;
#tcp_nopush 開啟;
keepalive_timeout 10;
包括/usr/local/nginx/sites-enabled/*;
...
}

我的 fast-cgi 配置片段:

EXEC_AS_USER=www-數據

# FASTCGI-Listener 的主機和 TCP 埠(預設值:localhost:9000)

FCGI_HOST=本地主機
FCGI_PORT=9000

# 環境變數,由PHP處理

PHP_FCGI_CHILDREN=8
PHP_FCGI_MAX_REQUESTS=0

非常感謝你!!

大量的流量是多少?只是一些提示:

  • 盡可能使用記憶體
  • 工作程序的數量可以等於 CPU 核心的數量
  • 儘早關閉實時連接或完全禁用它們(嘗試讓我們說keepalive_timeout 5
  • 每個連接都需要一個文件句柄worker_rlimit_nofile 20000;
  • 您可以在 1 秒內服務的使用者總數(大約)= worker_processes * worker_connections/ (keepalive_timeout * 2)
  • 除非你真的需要它們,否則禁用訪問日誌
  • 使用平衡器(如果在一台伺服器上不可行)

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