nginx - 如何根據(jù)服務(wù)器配置設(shè)置web服務(wù)參數(shù)?
問題描述
最近一直在折騰服務(wù)器相關(guān)的東西,遇到些問題,請(qǐng)教下大家。目前網(wǎng)站訪問情況: PV: 15W +,IP: 2W+服務(wù)器配置:CPU:4 * Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz內(nèi)存:4G帶寬:6M硬盤:2 * 100G HDD
這臺(tái)服務(wù)器以前用的是wdcp面板,php5.2 + mysql 5.1,高峰期CPU和負(fù)載一直很穩(wěn)定,后來站點(diǎn)被黑后我接手處理,重新安裝系統(tǒng)后,用的也是一鍵搭建的環(huán)境(blog.linuxeye.com上的包),搭建的Lanmp環(huán)境,開啟服務(wù)后,用另外一臺(tái)服務(wù)器ab測(cè)試( ab -c 100 -n 500 ),CPU馬上滿載,負(fù)載也飆了上去,程序是WordPress,雖然目前高峰期能扛得住,但是CPU經(jīng)常98%左右,訪問速度沒有以前那么快;通過查看并發(fā)情況 netstat -an | grep ESTABLISHED | wc -l,高峰期在600左右訪問時(shí)明顯要等待3秒左右,負(fù)載也是很高。
對(duì)此想了解的是:
這臺(tái)服務(wù)器配置,這樣的訪問量算是極限了嗎?能達(dá)到什么程度?Apache(2.4)中以prefork模式工作,一個(gè)用戶訪問會(huì)創(chuàng)建一個(gè)進(jìn)程?Apache中的prefork配置中的MaxConnectionsPerChild參數(shù),是每個(gè)進(jìn)程的最大連接數(shù),這個(gè)連接數(shù)指的是什么,比如訪問一個(gè)頁面同時(shí)會(huì)有js,css,img這些請(qǐng)求,指的是這些keepAlive期間的連接數(shù)?如何根據(jù)當(dāng)前服務(wù)器配置來判斷和設(shè)置apache或nginx的配置參數(shù)?資源占用的多少,是如何計(jì)算的?懇請(qǐng)有經(jīng)驗(yàn)的前輩指點(diǎn)下,謝謝!
問題解答
回答1:看 CPU 被什么占滿了,是否是在等待 IO.
如果已經(jīng)有了 Nginx, 直接用 Nginx + PHP-FPM 就好了,沒必要用 Apache(除非你有其他的東西必須 Apache). 盡量用 PHP-FPM 不要用 mod_php, 根據(jù)內(nèi)存恰當(dāng)?shù)卦O(shè)置 PHP-FPM 的最大進(jìn)程數(shù)(一個(gè)進(jìn)程大概需要 20-40M 內(nèi)存)。
回答2:建議:1、架構(gòu)改換成Nginx+PHP-FPM,Nginx+PHP-FPM環(huán)境搭建2、將靜態(tài)文件(JS、CSS、靜態(tài)圖片)全部放到到CDN上,現(xiàn)在CDN的價(jià)格很便宜的,推薦又拍、七牛3、做好WordPress緩存,WordPress的很多博客頁面完全可以做靜態(tài)緩存,肯定有多插件來實(shí)現(xiàn)
回答3:如果兼容性問題不大,可慮升級(jí)PHP版本。5.5有巨大性能提升。
相關(guān)文章:
1. docker 17.03 怎么配置 registry mirror ?2. angular.js - angularJS service里面存儲(chǔ)的數(shù)據(jù)能夠直接和HTML頁面交互嗎?3. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒有反應(yīng)4. javascript - 七牛接口如何在前端調(diào)用?5. css3里rotate怎么實(shí)現(xiàn)如圖的效果6. html - chrome 下 transiton translateX(10px) 后字體變化7. javascript - 使用location.href進(jìn)行頁面跳轉(zhuǎn)時(shí),并不立即跳轉(zhuǎn)?8. javascript - 圖片請(qǐng)求失敗怎么去掉左上角的小圖標(biāo)?9. css3 - 何時(shí)需要 flex-basis: 100% ?10. mysqld無法關(guān)閉
