nginx+php-fpm的502優(yōu)化

前段時間骇窍,網(wǎng)站突然開始出現(xiàn)502镐确。第一想法可能是QPS突然飆升,導(dǎo)致服務(wù)器迎接不暇饼煞;遂立馬登上服務(wù)器加大fpm進(jìn)程數(shù)源葫;話說回來如果加大進(jìn)程數(shù)能解決問題的話,這也是當(dāng)前最快的問題解決方式砖瞧。并在心中不由的一喜息堂,難道網(wǎng)站訪問量突然上升,我們要迎來高并發(fā)了嗎块促?本人一直想實(shí)際的接觸和解決高并發(fā)問題荣堰,然后像各位大神那樣去分享一波經(jīng)驗(yàn);此處應(yīng)有一波自豪而又邪惡的表情竭翠,哈哈哈...

然而問題并沒有因?yàn)樘砑舆M(jìn)程數(shù)而得到真正解決振坚。在剛添加進(jìn)程數(shù)時,情況確實(shí)有所改善斋扰。但短暫的十幾分鐘后渡八,就又開始出現(xiàn)問題了。由于返回的是nginx的502錯誤頁面传货,我們也就首先查看nginx的日志屎鳍。跟蹤到錯誤信息確實(shí)是nginx在代理fpm處理時出現(xiàn)超時。那么確實(shí)印證了fpm抗QPS能力不足的問題问裕。遂繼續(xù)加大fpm進(jìn)程數(shù)逮壁,此時fpm進(jìn)程數(shù)已經(jīng)擴(kuò)大10倍了。由于原先站點(diǎn)訪問量一般粮宛,并且當(dāng)前服務(wù)器只處理動態(tài)頁面和數(shù)據(jù)接口窥淆,其他文件資源全部走的CDN和云存儲;那么最初的fpm進(jìn)程數(shù)只開了20巍杈,在相當(dāng)長的一段時間里也沒出現(xiàn)什么問題忧饭。確實(shí)也是訪問量沒上來,QPS最高也就一百出頭(^_^)a秉氧。加到200進(jìn)程數(shù)后眷昆,當(dāng)前確實(shí)沒有再收到502的情況反饋。當(dāng)前問題算是解了汁咏。

但回過頭來去查看問題時候亚斋,發(fā)現(xiàn)QPS并沒有想象中爆發(fā)的那么厲害,最大QPS也才100多攘滩!那么問題來了帅刊,是什么情況導(dǎo)致PHP進(jìn)程被占用而無法應(yīng)對100多的QPS呢?

總的來說可以歸結(jié)于單個PHP請求處理時間太長漂问;當(dāng)多數(shù)fpm進(jìn)程被長時間處理的請求占用時赖瞒,整個站點(diǎn)的抗QPS能力就下降了女揭。當(dāng)降到無法抗住當(dāng)前QPS時,就開始頻繁的502了栏饮。

由于系統(tǒng)較復(fù)雜吧兔,想直接找出慢執(zhí)行的請求的代碼并不容易。這時袍嬉,fpm的slowlog功能價值就體現(xiàn)出來了境蔼。設(shè)置slowlog的timeout時間,并設(shè)計(jì)存放log路徑伺通。紀(jì)錄能直接精確到方法箍土,還是很贊的。然后對著紀(jì)錄結(jié)果去優(yōu)化對應(yīng)的程序邏輯代碼吧罐监!

由于調(diào)整業(yè)務(wù)邏輯以及一些詳細(xì)的優(yōu)化策略都需要相對較長的時間吴藻,那么當(dāng)前可以先進(jìn)行一些fpm調(diào)整。上述加大進(jìn)程數(shù)是一個弓柱,但一臺機(jī)器的最大進(jìn)程數(shù)還是有上限的沟堡。那么為了不讓慢執(zhí)行長時間占用進(jìn)程,設(shè)置fpm的request_terminate_timeout吆你。由于我們站點(diǎn)基本沒有特意需要長時間執(zhí)行PHP的業(yè)務(wù)弦叶,那么就可以選擇降低這個值俊犯。直接設(shè)置成5s妇多,當(dāng)超出5秒無法處理完直接結(jié)束當(dāng)前執(zhí)行并跳出504。這樣的做法好處在于燕侠,不會因?yàn)閭€別慢處理請求導(dǎo)致整站拖垮者祖。當(dāng)然對于有特殊需求長時間處理的業(yè)務(wù)就需要根據(jù)實(shí)際情況來調(diào)整了。由于我們的web系統(tǒng)目標(biāo)是快速且純萃绢彤,那么這樣做很合適我們七问。對于需要長時間執(zhí)行的業(yè)務(wù),我們進(jìn)行了業(yè)務(wù)邏輯拆分使用異步處理的方式進(jìn)行茫舶。

我們系統(tǒng)拆分和分布式系統(tǒng)計(jì)劃還在實(shí)施中械巡,暫且寫到這吧……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市饶氏,隨后出現(xiàn)的幾起案子讥耗,更是在濱河造成了極大的恐慌,老刑警劉巖疹启,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件古程,死亡現(xiàn)場離奇詭異,居然都是意外死亡喊崖,警方通過查閱死者的電腦和手機(jī)挣磨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門雇逞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茁裙,你說我怎么就攤上這事塘砸。” “怎么了晤锥?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵谣蠢,是天一觀的道長。 經(jīng)常有香客問我查近,道長眉踱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任霜威,我火速辦了婚禮谈喳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘戈泼。我一直安慰自己婿禽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布大猛。 她就那樣靜靜地躺著扭倾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挽绩。 梳的紋絲不亂的頭發(fā)上膛壹,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音唉堪,去河邊找鬼模聋。 笑死,一個胖子當(dāng)著我的面吹牛唠亚,可吹牛的內(nèi)容都是我干的链方。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼灶搜,長吁一口氣:“原來是場噩夢啊……” “哼祟蚀!你這毒婦竟也來了割卖?” 一聲冷哼從身側(cè)響起前酿,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤究珊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后剿涮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體攻人,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年怀吻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片初婆。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖磅叛,靈堂內(nèi)的尸體忽然破棺而出屑咳,到底是詐尸還是另有隱情弊琴,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布敲董,位于F島的核電站紫皇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏腋寨。R本人自食惡果不足惜聪铺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望萄窜。 院中可真熱鬧铃剔,春花似錦、人聲如沸脂倦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赖阻。三九已至,卻和暖如春踱蠢,著一層夾襖步出監(jiān)牢的瞬間火欧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工茎截, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苇侵,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓企锌,卻偏偏與公主長得像榆浓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撕攒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容