nginx - 如何根據(jù)服務(wù)器配置設(shè)置web服務(wù)參數(shù)?
問(wèn)題描述
最近一直在折騰服務(wù)器相關(guān)的東西,遇到些問(wèn)題,請(qǐng)教下大家。目前網(wǎng)站訪問(wèn)情況: PV: 15W +,IP: 2W+服務(wù)器配置:CPU:4 * Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz內(nèi)存:4G帶寬:6M硬盤(pán):2 * 100G HDD
這臺(tái)服務(wù)器以前用的是wdcp面板,php5.2 + mysql 5.1,高峰期CPU和負(fù)載一直很穩(wěn)定,后來(lái)站點(diǎn)被黑后我接手處理,重新安裝系統(tǒng)后,用的也是一鍵搭建的環(huán)境(blog.linuxeye.com上的包),搭建的Lanmp環(huán)境,開(kāi)啟服務(wù)后,用另外一臺(tái)服務(wù)器ab測(cè)試( ab -c 100 -n 500 ),CPU馬上滿(mǎn)載,負(fù)載也飆了上去,程序是WordPress,雖然目前高峰期能扛得住,但是CPU經(jīng)常98%左右,訪問(wèn)速度沒(méi)有以前那么快;通過(guò)查看并發(fā)情況 netstat -an | grep ESTABLISHED | wc -l,高峰期在600左右訪問(wèn)時(shí)明顯要等待3秒左右,負(fù)載也是很高。
對(duì)此想了解的是:
這臺(tái)服務(wù)器配置,這樣的訪問(wèn)量算是極限了嗎?能達(dá)到什么程度?Apache(2.4)中以prefork模式工作,一個(gè)用戶(hù)訪問(wèn)會(huì)創(chuàng)建一個(gè)進(jìn)程?Apache中的prefork配置中的MaxConnectionsPerChild參數(shù),是每個(gè)進(jìn)程的最大連接數(shù),這個(gè)連接數(shù)指的是什么,比如訪問(wèn)一個(gè)頁(yè)面同時(shí)會(huì)有js,css,img這些請(qǐng)求,指的是這些keepAlive期間的連接數(shù)?如何根據(jù)當(dāng)前服務(wù)器配置來(lái)判斷和設(shè)置apache或nginx的配置參數(shù)?資源占用的多少,是如何計(jì)算的?懇請(qǐng)有經(jīng)驗(yàn)的前輩指點(diǎn)下,謝謝!
問(wèn)題解答
回答1:看 CPU 被什么占滿(mǎn)了,是否是在等待 IO.
如果已經(jīng)有了 Nginx, 直接用 Nginx + PHP-FPM 就好了,沒(méi)必要用 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的很多博客頁(yè)面完全可以做靜態(tài)緩存,肯定有多插件來(lái)實(shí)現(xiàn)
回答3:如果兼容性問(wèn)題不大,可慮升級(jí)PHP版本。5.5有巨大性能提升。
相關(guān)文章:
1. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.2. javascript - vue生成一維碼?求助!!!!!急3. java - SSH框架中寫(xiě)分頁(yè)時(shí)service層中不能注入分頁(yè)類(lèi)4. boot2docker無(wú)法啟動(dòng)5. docker-compose中volumes的問(wèn)題6. javascript - mock.js可以存儲(chǔ)數(shù)據(jù)嗎7. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?8. 如何使用git對(duì)word文檔進(jìn)行版本控制?9. java - Spring事務(wù)回滾問(wèn)題10. nignx - docker內(nèi)nginx 80端口被占用

網(wǎng)公網(wǎng)安備