PHP小機器解決高用戶量訪問瓶頸的思路

項目背景:

一個通過微信網(wǎng)頁訪問在線答題的功能 估蹄,目標用戶覆蓋江西全省大中小學生塑煎。
阿里云服務(wù)器性能:
CPU: 2核 內(nèi)存:4 GB 帶寬:3Mbps,環(huán)境: LAMP

已經(jīng)完成的功能:

1. 微信授權(quán)
2. 隨機篩選 30 道題輸出
3. 前端頁面單選的交互
4. 記錄答案提交的數(shù)據(jù)(答對題目臭蚁、時間)
5. 計算在同學校同年級的排名

考慮到的優(yōu)化:

1. 不是每個人都是隨機考題最铁,考慮到參與人數(shù)眾多,題庫也才 50道題垮兑,50抽30冷尉,做相同的考題的幾率還是挺高的,順便就控制在一個時間周期內(nèi)的考題一樣系枪,不重復那數(shù)據(jù)雀哨;所以就第一個用戶訪問獲取到 30 道題后先得到考卷數(shù)據(jù),存入本地文件私爷,5分鐘有效震束,超時重新生成考卷;
2. 靜態(tài)文件都通過cdn服務(wù)訪問

一開始用戶增加上去了当犯,服務(wù)器的Mysql 就%CPU 爆表垢村, 130% 以上都有

第一步優(yōu)化:

1. 高峰人數(shù)要找到同年級的排名比較耗時和沒有太多實際意義,看的人其實可能不多嚎卫,就臨時先取消這個模塊展示嘉栓;
2. Mysql 表增加索引(效果非常顯著)
優(yōu)化前后對比--看中間的高峰

但是好景不長,6日開始拓诸,就Mysql 又爆表了侵佃,想著,該加的索引都加上了奠支,不知道因為什么導致(其實這個時候就算有遺漏也不好發(fā)現(xiàn))

7天內(nèi)的CPU使用率

這個時候Mysql 的慢查詢功能就可以擺上用場了馋辈。

netstat -na|grep -i "80"|wc -l
1562

top 查詢 Mysql 占用最多CPU的資源,那肯定是因為同時在線的用戶查詢可能因為阻塞導致的大堵車倍谜,目前最重要的是要定位出來是什么的語句導致的迈螟。

慢查詢有什么用?

它能記錄下所有執(zhí)行超過long_query_time時間的SQL語句, 幫你找到執(zhí)行慢的SQL, 方便我們對這些SQL進行優(yōu)化.

如何開啟慢查詢?

首先我們先查看MYSQL服務(wù)器的慢查詢狀態(tài)是否開啟.執(zhí)行如下命令:



我們可以看到當前l(fā)og_slow_queries狀態(tài)為OFF, 說明當前并沒有開啟慢查詢.
開啟慢查詢非常簡單, 操作如下:
Linux下找到mysql的配置文件my.ini, 在mysqld下方加入慢查詢的配置語句(注意:一定要在[mysqld]下的下方加入)



log-slow-queries: 代表MYSQL慢查詢的日志存儲目錄, 此目錄文件一定要有寫權(quán)限;Windows下需要寫絕對路徑尔崔,如:log-slow-queries="C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-slow.log"
long_query_time: 最長執(zhí)行時間. (如圖, MSYQL將記錄下所有執(zhí)行時間超過2s的SQL語句, 此處為測試時間, 時間不應(yīng)太小最好在5-10秒之內(nèi), 當然可以根據(jù)自己的標準而定);

配置好以后重新啟動一個MYSQL服務(wù)


然后查看log發(fā)現(xiàn)了問題
SELECT * FROM `fd_members` WHERE `unionid` = 'oh6a0s65Oh8rTtFLoW9Pf0***' LIMIT 1;
都是因為這樣類似的語句記錄答毫,說明這條查詢非常久(表里邊大概有30多萬條記錄),測一下季春,當時候服務(wù)器查詢要13秒左右洗搂,坑爹的,那怪堵車那么嚴重。
然后再看數(shù)據(jù)庫表結(jié)構(gòu)耘拇,原來members 表的uniond 沒有加入索引撵颊,趕快補充上了,然后再測試惫叛,就變成了 10ms 不到就出來了秦驯。這差別是 千倍數(shù)呀!挣棕!
開了后的效果译隘,如下,立竿見影
image.png

晚上統(tǒng)計了一下洛心,今天一共來的人數(shù),在Nginx 的地方還有好多要優(yōu)化的地方

人數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末词身,一起剝皮案震驚了整個濱河市厅目,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌法严,老刑警劉巖损敷,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拗馒,死亡現(xiàn)場離奇詭異呈昔,居然都是意外死亡堤尾,警方通過查閱死者的電腦和手機辞槐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剩蟀,“玉大人犬缨,你說我怎么就攤上這事』逞Γ” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵迷郑,是天一觀的道長枝恋。 經(jīng)常有香客問我,道長嗡害,這世上最難降的妖魔是什么焚碌? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮霸妹,結(jié)果婚禮上十电,老公的妹妹穿的比我還像新娘。我一直安慰自己叹螟,他們只是感情好鹃骂,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著罢绽,像睡著了一般畏线。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上良价,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天象踊,我揣著相機與錄音,去河邊找鬼棚壁。 笑死杯矩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的袖外。 我是一名探鬼主播史隆,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼曼验!你這毒婦竟也來了泌射?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鬓照,失蹤者是張志新(化名)和其女友劉穎熔酷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體豺裆,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡拒秘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年号显,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躺酒。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡押蚤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羹应,到底是詐尸還是另有隱情揽碘,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布园匹,位于F島的核電站雳刺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏裸违。R本人自食惡果不足惜掖桦,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望累颂。 院中可真熱鬧滞详,春花似錦、人聲如沸紊馏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朱监。三九已至岸啡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赫编,已是汗流浹背巡蘸。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擂送,地道東北人悦荒。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像嘹吨,于是被迫代替她去往敵國和親搬味。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

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