2013-01-09 20 views
0

每天運行一臺服務器,其瀏覽量爲140,000頁(分析)。 每個php-fpm進程大約10-12M。
服務器有10G的RAM,MySQL的去爲1.2G-1.6Gnginx + php-fpm配置。服務器停止運行

配置是這樣的:

nginx 

user nginx; 
worker_processes 4; 

error_log /var/log/nginx/error.log warn; 
pid  /var/run/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
    include  /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
         '$status $body_bytes_sent "$http_referer" ' 
         '"$http_user_agent" "$http_x_forwarded_for"'; 

    #access_log /var/log/nginx/access.log main; 
    access_log off; 

    sendfile  on; 
    #tcp_nopush  on; 

    keepalive_timeout 10; 

    client_max_body_size 20M; 

     server_tokens off; 

    include /etc/nginx/conf.d/*.conf; 
} 

的php-fpm的是這樣的:

listen = 127.0.0.1:9000 
listen.allowed_clients = 127.0.0.1 
user = webadmin 
group = webadmin 
pm = dynamic 
pm.max_children = 900 
pm.start_servers = 900 
pm.min_spare_servers = 200 
pm.max_spare_servers = 900 
pm.max_requests = 500 
chdir =/

通常情況下,服務器可以運行可以同時擁有500個用戶(同樣,實時谷歌分析用於獲得此估計值),但在用戶數量並不多(75-100個併發用戶)的時候會停滯。

配置是由我的ISP完成的,我相信,但我仍然想知道配置是否有意義。

回答

0

我不是說這是最好的設置,但它適用於我們。

有幾件事情我跟我們的nginx的設置更新爲:

worker_connections,我認爲瀏覽器中打開每個請求的兩個連接,這樣你就不會在技術上有每個請求1024個的可用連接你有512等等也許它更改爲2048

我也改變了錯誤日誌文件參數去「信息」只有當你有想寫入時間,以保持I/O低,所以我改變了它從「警告」變爲「信息」。

如果您想保留訪問日誌可能會減少它添加的日誌條目。

這可能是值得看看你的主nginx.conf以及你可能有配置被覆蓋這個文件並被設置回默認值。

只有兩個小東西從我的大名單沒有我經歷了,不過這篇文章是偉大的 - link

+0

感謝OliverBS。我特別想知道php-fpm配置,因爲php-fpm進程吃掉了我們所有的內存。 max_children = 900聰明嗎? –

+0

嘿,我運行的Ubuntu的,所以可能不一樣,但我通過apt安裝ab,然後安裝htop,所以我可以看到內存使用蠕變了,然後讓ab發送請求的負載和跟蹤內存使用情況,因爲我設置max_children以及等待取得進程的孩子們,我會說得到一些基準測試工具並對其進行測試,直到您獲得完美的設置。這有幫助嗎? –