關(guān)鍵詞排名優(yōu)化:玩轉(zhuǎn)mysql系統(tǒng)技術(shù)分享
現(xiàn)在關(guān)鍵詞排名優(yōu)化的時(shí)候,經(jīng)常被高手請(qǐng)疏忽,針對(duì)一些初入技巧職場(chǎng)的童鞋,欲望能對(duì)各位碰到后果時(shí)分的思考方法有所協(xié)助。
案例1:詭異的鏈接過(guò)量
事先狀況是如許,突然有一天,數(shù)據(jù)庫(kù)出現(xiàn)鏈接過(guò)量毛病,招致網(wǎng)站報(bào)錯(cuò)。 熟悉mysql并操作太高并發(fā)系統(tǒng)的冤家知道,數(shù)據(jù)連接過(guò)量屬于很罕見(jiàn)的后果。但事先的狀況是,訪問(wèn)量其實(shí)不在高峰,按理說(shuō)不應(yīng)當(dāng)有如許的后果。
看了一下數(shù)據(jù)庫(kù)效勞器的負(fù)載,很低,其實(shí)不存在cpu或內(nèi)存跑滿(mǎn)的后果。
慢查詢(xún)?nèi)沼洓](méi)有異常的SQL,更沒(méi)有鎖表。
因而就進(jìn)入數(shù)據(jù)庫(kù)做一下 show processlist的查詢(xún)。
有些冤家能夠會(huì)問(wèn),鏈接過(guò)量你還能看show processlist么,阿誰(shuí),mysql里root比通俗用戶(hù)多一個(gè)鏈接容許,所以,記得依次切忌用root鏈接,保管一個(gè)給系統(tǒng)剖析師用。
意外發(fā)明,簡(jiǎn)直一切的SQL逗留在sleep形狀,而且很多鏈接都繼續(xù)了好幾秒,乃至十幾秒。
這里說(shuō)明一下,假設(shè)是用數(shù)據(jù)中間件鏈接池來(lái)操作,從中間件到數(shù)據(jù)庫(kù)存在固定命字的sleep鏈接是正常的,但從依次端到中間件,除非你是長(zhǎng)連接,而且需求保持?jǐn)?shù)據(jù)庫(kù)頻繁操作的應(yīng)用,否則,平日不建議數(shù)據(jù)庫(kù)保持連接,也就是不應(yīng)當(dāng)出現(xiàn)太多sleep操作。
我們的場(chǎng)景就是通俗的web應(yīng)用,php依次而已,都是短鏈接,按理說(shuō),依次履行完就應(yīng)當(dāng)釋放的,所以這個(gè)后果就有點(diǎn)意外。
固然,這個(gè)和代碼的設(shè)計(jì)也有關(guān)系,因?yàn)橄到y(tǒng)用的開(kāi)源軟件改寫(xiě)的,觸及數(shù)據(jù)庫(kù)操作照樣蠻多的,通俗狀況下,數(shù)據(jù)庫(kù)操作完應(yīng)當(dāng)及時(shí)封閉,但因?yàn)橥ㄋ渍J(rèn)為php代碼履行時(shí)間很短,所以在代碼架構(gòu)有點(diǎn)復(fù)雜的狀況下,很多都是默許全部依次履行完再封閉。那么現(xiàn)在后果來(lái)了,究竟php爆發(fā)了甚么后果。
我們?nèi)eb效勞器,看日記,發(fā)明訪問(wèn)量并沒(méi)有異常,也沒(méi)有針對(duì)我們的進(jìn)擊行動(dòng),但確實(shí)很多php依次履行時(shí)間較長(zhǎng),web連接數(shù)也清晰多于異常,即使是數(shù)據(jù)庫(kù)重啟,后果依然會(huì)重現(xiàn),那么這時(shí)候分,我們工程師就在最經(jīng)常使用的php代碼里設(shè)置斷點(diǎn),去看代碼究竟卡在哪個(gè)環(huán)節(jié)上履行時(shí)間很長(zhǎng),結(jié)果,發(fā)明是我們的一個(gè)十分主要的常識(shí)盲點(diǎn)。本來(lái)履行時(shí)間最長(zhǎng)的,是在最后代碼數(shù)據(jù)都履行完,輸入履行 echo 的環(huán)節(jié)。
在當(dāng)?shù)刈龉τ脺y(cè)試,壓力測(cè)試的時(shí)分,我們知道echo 這類(lèi)語(yǔ)句是基本沒(méi)有開(kāi)支的,也不太能夠成為一種負(fù)載的起源,但這下我們明確了,echo本來(lái)不只僅是php履行輸入,也包羅了收集傳輸?shù)臅r(shí)間開(kāi)支。只要客戶(hù)端回收到傳輸內(nèi)容后,echo履行才完畢。
而那天的后果,實(shí)際上是因?yàn)橥瑱C(jī)房有其他公司效勞器被Ddos,招致機(jī)房出口擁堵,按理說(shuō)這只是websever的后果,但因?yàn)閣ebserver自身有輪詢(xún)機(jī)制,而且設(shè)置的連接數(shù)較大年夜,固然訪問(wèn)較慢,但沒(méi)有解體,而因?yàn)閜hp代碼里mysql鏈接沒(méi)有及時(shí)釋放,在php履行echo的時(shí)間等待較長(zhǎng),招致mysql鏈接過(guò)量解體。
知道這個(gè)后果,處理就復(fù)雜了,因?yàn)殚_(kāi)源系統(tǒng)封裝了輸入template的對(duì)象,我們就在這個(gè)對(duì)象履行的時(shí)分,先履行mysql_close(); 如許只改了一行代碼,后果就處理了。
但后來(lái)發(fā)明出了bug,bug的來(lái)由很無(wú)厘頭,居然局部template 的偽碼里有數(shù)據(jù)庫(kù)操作,但這個(gè)后果處理也復(fù)雜,因?yàn)榫烤谷缭S的場(chǎng)景很少, 而且mysql對(duì)象也被封裝了,我們就在query方法里加了一行代碼,假設(shè)沒(méi)有數(shù)據(jù)庫(kù)連接,就重建一個(gè)。 如許,這個(gè)重建過(guò)程只出現(xiàn)在極少數(shù)template里有mysql操作的場(chǎng)景,對(duì)全部系統(tǒng)基本沒(méi)有功無(wú)能擾。
這個(gè)案例說(shuō)來(lái)挺復(fù)雜,就是數(shù)據(jù)庫(kù)連接沒(méi)有及時(shí)釋放形成的,但因?yàn)檎饎?dòng)了一個(gè)思維盲區(qū),所以印象深入。
線上的依次做斷點(diǎn)日記剖析是最經(jīng)常使用的剖析詭異后果的方法;跀帱c(diǎn)日記剖析,我們可以經(jīng)過(guò)相似二分法,逐漸遞進(jìn)直到準(zhǔn)肯定位具體到每行代碼的履行時(shí)間開(kāi)支。
這里還要提醒一個(gè)罕見(jiàn)后果,線上情況很多后果是在測(cè)試情況里很難重現(xiàn)的,所以碰到詭異后果,應(yīng)當(dāng)可以在線上做一些日記剖析和代碼的調(diào)試,固然如許能夠會(huì)有必然的風(fēng)險(xiǎn),但很多公司的流程和規(guī)范,開(kāi)辟工程師只能在線下測(cè)試功用和壓力接受才華,針對(duì)線上很多抱負(fù)的后果沒(méi)有方法完整實(shí)測(cè)。
大年夜公司能夠會(huì)把測(cè)試情況做的更好更規(guī)范,和有更有經(jīng)歷的工程師和剖析師來(lái)處理后果,但創(chuàng)業(yè)公司,我建議要給依次員和剖析人員一些線上應(yīng)急處理的權(quán)限,否則真的會(huì)束手無(wú)策,經(jīng)歷值都是靠出錯(cuò)和處理后果來(lái)積累的。
說(shuō)明:本文由57365線路檢測(cè)中心|主頁(yè)369團(tuán)隊(duì)編輯整理,有侵犯權(quán)益的地方請(qǐng)聯(lián)系站長(zhǎng)刪除,如果需要了解更過(guò)57365線路檢測(cè)中心|主頁(yè)方面的知識(shí)請(qǐng)關(guān)注57365線路檢測(cè)中心|主頁(yè)369。

- 頻道總排行
- 影響關(guān)鍵詞排名的因素有哪些?
- 關(guān)鍵詞排名優(yōu)化:同一頁(yè)面不同快照原因分析
- 網(wǎng)站關(guān)鍵詞優(yōu)化的三個(gè)基礎(chǔ)問(wèn)題
- 57365線路檢測(cè)中心|主頁(yè)的關(guān)鍵詞指的是什么呢
- 關(guān)鍵詞優(yōu)化的絕對(duì)路徑和相對(duì)路徑詳細(xì)分析
- 如何對(duì)網(wǎng)站的robots.txt進(jìn)行設(shè)置來(lái)做57365線路檢測(cè)中心|主頁(yè)
- 做關(guān)鍵詞排名優(yōu)化最后的預(yù)估時(shí)間的長(zhǎng)短分析
- 網(wǎng)站關(guān)鍵字優(yōu)化攻略
- 關(guān)鍵詞優(yōu)化中優(yōu)質(zhì)與非優(yōu)質(zhì)新聞源內(nèi)容的區(qū)別
- 網(wǎng)站優(yōu)化的首頁(yè)代碼優(yōu)化的技巧
- 您可能還想了解
- 山西57365線路檢測(cè)中心|主頁(yè)是什么,我是如何理解山西57365線路檢測(cè)中心|主頁(yè)的?
- 陜西57365線路檢測(cè)中心|主頁(yè)從收錄到排名再到引流
- 做北京57365線路檢測(cè)中心|主頁(yè)如何選擇北京57365線路檢測(cè)中心|主頁(yè)外包外包公司?
- 四川57365線路檢測(cè)中心|主頁(yè)關(guān)鍵詞怎么布局才更合理?
- 建設(shè)一個(gè)貴州企業(yè)網(wǎng)站需要多少費(fèi)用呢
- 做青海57365線路檢測(cè)中心|主頁(yè)的時(shí)候?yàn)槭裁此咽莿e人在前邊呢
- 非常有效的11個(gè)遼寧57365線路檢測(cè)中心|主頁(yè)技術(shù)和策略
- 廣東網(wǎng)站優(yōu)化的工具有哪些呢
- 鎮(zhèn)江網(wǎng)站建設(shè)解析引擎的優(yōu)化思路
- 做山西57365線路檢測(cè)中心|主頁(yè)百度的優(yōu)化竅門(mén)有哪些?