nginx - 如何根據服務器配置設置web服務參數?
問題描述
最近一直在折騰服務器相關的東西,遇到些問題,請教下大家。目前網站訪問情況: PV: 15W +,IP: 2W+服務器配置:CPU:4 * Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz內存:4G帶寬:6M硬盤:2 * 100G HDD
這臺服務器以前用的是wdcp面板,php5.2 + mysql 5.1,高峰期CPU和負載一直很穩定,后來站點被黑后我接手處理,重新安裝系統后,用的也是一鍵搭建的環境(blog.linuxeye.com上的包),搭建的Lanmp環境,開啟服務后,用另外一臺服務器ab測試( ab -c 100 -n 500 ),CPU馬上滿載,負載也飆了上去,程序是WordPress,雖然目前高峰期能扛得住,但是CPU經常98%左右,訪問速度沒有以前那么快;通過查看并發情況 netstat -an | grep ESTABLISHED | wc -l,高峰期在600左右訪問時明顯要等待3秒左右,負載也是很高。
對此想了解的是:
這臺服務器配置,這樣的訪問量算是極限了嗎?能達到什么程度?Apache(2.4)中以prefork模式工作,一個用戶訪問會創建一個進程?Apache中的prefork配置中的MaxConnectionsPerChild參數,是每個進程的最大連接數,這個連接數指的是什么,比如訪問一個頁面同時會有js,css,img這些請求,指的是這些keepAlive期間的連接數?如何根據當前服務器配置來判斷和設置apache或nginx的配置參數?資源占用的多少,是如何計算的?懇請有經驗的前輩指點下,謝謝!
問題解答
回答1:看 CPU 被什么占滿了,是否是在等待 IO.
如果已經有了 Nginx, 直接用 Nginx + PHP-FPM 就好了,沒必要用 Apache(除非你有其他的東西必須 Apache). 盡量用 PHP-FPM 不要用 mod_php, 根據內存恰當地設置 PHP-FPM 的最大進程數(一個進程大概需要 20-40M 內存)。
回答2:建議:1、架構改換成Nginx+PHP-FPM,Nginx+PHP-FPM環境搭建2、將靜態文件(JS、CSS、靜態圖片)全部放到到CDN上,現在CDN的價格很便宜的,推薦又拍、七牛3、做好WordPress緩存,WordPress的很多博客頁面完全可以做靜態緩存,肯定有多插件來實現
回答3:如果兼容性問題不大,可慮升級PHP版本。5.5有巨大性能提升。
相關文章:
1. javascript - 有適合開發手機端Html5網頁小游戲的前端框架嗎?2. python - pandas按照列A和列B分組,將列C求平均數,怎樣才能生成一個列A,B,C的dataframe3. html - eclipse 標簽錯誤4. javascript - axios請求回來的數據組件無法進行綁定渲染5. python - Pycharm的Debug用不了6. 安全性測試 - nodejs中如何防mySQL注入7. javascript - 關于apply()與call()的問題8. javascript - JS變量被清空9. python文檔怎么查看?10. python - pycharm 自動刪除行尾空格
