【运筹帷幄】网站打开慢故障排查思路
文章目錄
前言
網(wǎng)站訪問流程(故事版)
如何排查問題
如果客戶說訪問web網(wǎng)站慢
如果你訪問網(wǎng)站發(fā)現(xiàn)的確訪問速度很慢,這時(shí)候你需要排查網(wǎng)站慢的原因
1) 檢查網(wǎng)站服務(wù)器是否異常
2) 檢查與網(wǎng)站相關(guān)聯(lián)的服務(wù)是否異常
3) 使用chrome瀏覽器開發(fā)者工具排查網(wǎng)站打開慢的情況
其他可能的原因
總結(jié)
前言
我們思考一個(gè)問題之前,先要考慮的是解決問題的思路,但解決問題的思路一般需要對一個(gè)系統(tǒng)或者產(chǎn)品有足夠的認(rèn)識才可以。
所以我一直給大家強(qiáng)調(diào)的知識體系,包括訪問網(wǎng)站的詳細(xì)流程,其實(shí)都是在解決遇到問題如何去思考的問題。
想知道為什么網(wǎng)站打開慢,或者無法訪問,我們得先清楚一個(gè)網(wǎng)站的訪問流程到底是什么樣子。
網(wǎng)站訪問流程(故事版)
我們的主角小王,是個(gè)活雷鋒,哪里需要哪里搬,今天他又來了。
小王打開了自己的百度瀏覽器,輸入www.baidu.com,按下回車,等了一會,就打開了網(wǎng)頁,小王很困惑,在敲下回車的一瞬間,電腦到底做了什么?
為了一探究竟,小王打開百寶箱,并念出了那句開啟百寶箱的咒語(我是高勝寒,關(guān)注我,有更多精彩內(nèi)容哦)。百寶箱閃出一個(gè)耀眼光芒,小王眼前一黑,過了好一會兒小王醒才過來,醒過來后發(fā)現(xiàn)自己被困在了電腦里,一個(gè)美女正在電腦前跟閨蜜聊著天。突然美女像是想起了什么,她飛快的打開瀏覽器,輸入了www.taobao.com
小王的身體突然就不聽使喚,直奔電腦的host文件飛去, 小王這才明白,百寶箱把自己變成了一個(gè)用戶請求,根據(jù)請求的處理流程,小王飛快的看了一眼host,發(fā)現(xiàn)文件中已經(jīng)有www.taobao.com對應(yīng)的ip地址,于是獲取到ip,直接扔給了美女,美女很開心的購起物來。
小王正要好好欣賞一下眼前的美人,QQ上一個(gè)消息彈出,是一個(gè)不常見的網(wǎng)址,www.wsmv.com 美女想也沒想,直接打開, 小王立即趕往host查看網(wǎng)址對應(yīng)的ip,結(jié)果發(fā)現(xiàn)host里沒有對應(yīng)的ip。小王心想,這應(yīng)該是美女第一次打開這個(gè)網(wǎng)站,所以電腦里沒有緩存。
既然在host里沒有找到,小王趕緊詢問了下周邊忙碌的其他請求,接下來該怎么辦,一個(gè)看上去很老成的nginx請求路過,指了指旁邊的路由器(在你的城市的某個(gè)角落,但是不會太遠(yuǎn))說,“諾,那個(gè)是本地域名服務(wù)器,你去向他尋求幫助吧”
小王飛奔過去,向本地DNS服務(wù)器詢問是否有剛剛美女輸入的網(wǎng)址的ip, 本地DNS快速掃描了下,發(fā)現(xiàn)沒有,但給出了提示,可以去根服務(wù)器去問問。
小王來到根服務(wù)器,小王問,有沒有www.wsmv.com對應(yīng)的ip, 根域緩緩的答道,“我這邊沒有,但是我有.com.的服務(wù)器地址,你可以去問問他”,說著根域服務(wù)器甩出了 一條信息,上面寫在.com服務(wù)器的ip地址。
小王又馬不停蹄的根據(jù)ip找到對應(yīng)的.com服務(wù)器,詢問是否有美女輸入的網(wǎng)站ip的地址, .com服務(wù)器頭也沒抬的回了一句:“又是根域讓你來的吧,我這邊有wsnv.com對應(yīng)的ip地址,你可以直接去,但是我們這有個(gè)不成文的規(guī)定,不是所有人都可以隨便訪問服務(wù)器的,IP給你,接下來能不能請求到資源還得靠你自己”
小王拿到了 wsnv.com的ip地址正要進(jìn)去獲取數(shù)據(jù),卻被一個(gè)叫TCP協(xié)議擋住了去路。小王知道這是要進(jìn)行TCP連接了, 需要與服務(wù)器進(jìn)行三次對話,跟對暗號一樣,通過后才能獲取數(shù)據(jù)。
但是要進(jìn)行TCP連接,小王得先把消息成功的發(fā)送到服務(wù)器上,小王根據(jù)書中講的準(zhǔn)備了IP協(xié)議,ARP協(xié)議和OSPF協(xié)議, IP地址只指定了美女的PC的ip和剛從.com獲得的要登陸網(wǎng)站的ip地址, 然后經(jīng)過一個(gè)個(gè)路由器傳送給服務(wù)器,然后進(jìn)行了tcp的鏈接。
連接成功了,小王興奮的跳了起來,能給美女獲取到數(shù)據(jù)是小王最開心的事情。 but,小王聽到一個(gè)聲音 “恭喜你,成功跟tcp進(jìn)行了鏈接,現(xiàn)在你可以尋求HTTP協(xié)議的幫助來請求網(wǎng)頁了,請先熟悉HTTP協(xié)議的請求規(guī)則”
小王趕緊查看HTTP請求規(guī)則,規(guī)則里有條重要提示: 雖然你通過了tcp協(xié)議,但是還是有被服務(wù)器拒絕的可能,如果服務(wù)器拒絕了你的請求會返回"Forbiden",如果服務(wù)器沒有拒絕,能夠正常訪問,就返回200OK,然后才會給你傳輸數(shù)據(jù)。
小王連忙根據(jù)規(guī)則發(fā)送HTTP請求報(bào)文給服務(wù)器,經(jīng)過了硬件防火墻,到了負(fù)載均衡,又通過負(fù)載均衡到了web,后面又有緩存,最后才到數(shù)據(jù)庫。成功了,小王收到了服務(wù)器的回復(fù),接收到一堆HTML形式的文本。然后快速返回到美女的電腦,當(dāng)然也沒忘了在本地緩存上存一份,畢竟下次再按這個(gè)流程走一遍,小王會累死的。
在本地緩存好之后,小王把接收的文本給了瀏覽器,瀏覽器是個(gè)聰明的家伙,很快就翻譯出來,并渲染到屏幕上,看到屏幕前美女開心的笑容,小王感覺好滿足,順便瞅了一眼瀏覽器,不看不要緊,一看嚇一跳,瀏覽器上是美女男朋友發(fā)來的禮物,滿屏的煙花和一句我愛你。
小王的心突然疼了一下,原來有男朋友啊,那我這還忙活的這么起勁,算了,百寶箱帶我回去吧。
隨著一陣耀眼的光芒,小王最后看了一眼美女,戀戀不舍的離開了。
小王回來后,快速整理了今天的見聞,愛學(xué)習(xí)的小王在筆記本上寫到:美女(此處劃掉)
小王又重新寫到: 用戶發(fā)起一個(gè)請求到最終落地?cái)?shù)據(jù),中間經(jīng)歷了:
用戶(電腦,網(wǎng)絡(luò),本地緩存)–域名服務(wù)器–tcp三次握手 --HTTP協(xié)議
進(jìn)入了HTTP協(xié)議之后,小王回憶了下,先是看到了硬件防火墻F5,然后是請求發(fā)給了負(fù)載均衡nginx, nginx轉(zhuǎn)發(fā)給了其中的tomcat,tomcat有相應(yīng)的配置文件,根據(jù)配置文件搜索相應(yīng)的資源-好像在獲取資源的時(shí)候還遇到了緩存redis,然后才是訪問數(shù)據(jù)庫,這一圈下來好麻煩。
既然知道了整個(gè)的訪問流程,我們接下來要看看如何排查網(wǎng)站訪問慢問題:
如何排查問題
如果客戶說訪問web網(wǎng)站慢
- 主動訪問web網(wǎng)站,看是否訪問慢,使用公司的遠(yuǎn)程服務(wù)器訪問網(wǎng)站看是否會有慢的情況。
- 如果并沒有慢的情況,說明是客戶那邊的網(wǎng)絡(luò)有問題
可以使用ping命令,檢查A網(wǎng)站的IP連通性,如果丟包嚴(yán)重,訪問速率也會變低。
如果你訪問網(wǎng)站發(fā)現(xiàn)的確訪問速度很慢,這時(shí)候你需要排查網(wǎng)站慢的原因
1) 檢查網(wǎng)站服務(wù)器是否異常
- 檢查服務(wù)器的cpu,內(nèi)存,io,磁盤,網(wǎng)絡(luò)的使用情況- 檢查是否有某個(gè)進(jìn)程占用資源比較多的情況- 檢查是否有惡意訪問造成的消耗資源比較多的情況2) 檢查與網(wǎng)站相關(guān)聯(lián)的服務(wù)是否異常
a) 網(wǎng)站與數(shù)據(jù)庫的連接是否變慢
可以 在數(shù)據(jù)庫里查看負(fù)載,查看慢查詢
目前關(guān)閉的,我們需要開啟profiling
獲取某一個(gè)query_ID在執(zhí)行過程中的profile
b) 網(wǎng)站與存儲的訪問是否變慢
c) 查看負(fù)載均衡到web是否變慢
d) 在web網(wǎng)站上放一個(gè)靜態(tài)網(wǎng)頁/php動態(tài)查看是動態(tài)數(shù)據(jù)慢還是靜態(tài)數(shù)據(jù)慢
3) 使用chrome瀏覽器開發(fā)者工具排查網(wǎng)站打開慢的情況
a. 打開谷歌瀏覽器,鍵盤上輸入F12,打開開發(fā)者工具
b. 選擇【network】-ctrl+F5 強(qiáng)制刷新,查看資源的加載情況
點(diǎn)擊time進(jìn)行排序,會找到消耗時(shí)間最長的資源
其他可能的原因
遭遇流量攻擊,比如DDos, CC攻擊,這種只能用帶寬去抗,或者采購流量清洗服務(wù),也可以使用CDN服務(wù)隱藏源站IP。
域名問題,比如域名解析不正常,過期。
死鏈問題,網(wǎng)站改版或者升級后,殘留下來的不存在的頁面,而這些頁面又被百度給收錄了,用戶通過這些頁面登陸會出現(xiàn)空白或者打不開。 我們可以將死鏈加入404文件并提交給百度站長平臺。
圖片太多也會導(dǎo)致網(wǎng)站速度過慢,解決方案就是使用圖床,或者使用類似阿里云的OSS,集中存儲圖片。
訪問量過高,并發(fā)過大,也會導(dǎo)致服務(wù)器卡頓,這個(gè)時(shí)候可以考慮加緩存或增加服務(wù)器。
程序問題,網(wǎng)站存在大量的js調(diào)用, 解決方法就是充分利用服務(wù)器端的緩存設(shè)置和瀏覽器端的緩存設(shè)置。
總結(jié)
網(wǎng)站打開慢的原因有很多,并沒有標(biāo)準(zhǔn)的答案,所有可能出現(xiàn)瓶頸的地方,都有可能是網(wǎng)站訪問慢的原因。
但總結(jié)下來,無非就是,網(wǎng)絡(luò)問題: 系統(tǒng)問題,數(shù)據(jù)庫問題, 訪問慢的服務(wù)器與其他關(guān)聯(lián)的服務(wù)器或者服務(wù)的調(diào)用之間出現(xiàn)了問題,被攻擊。
總結(jié)
以上是生活随笔為你收集整理的【运筹帷幄】网站打开慢故障排查思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 上海 中高考
- 下一篇: android精品源码,下拉刷新效果高德