在實際的網站運營中,會出現各種各樣的問題導致網站訪問變慢,甚至響應超時,下面講一下從排查問題到解決問題的過程。
首先不要慌,沉著冷靜是解決問題的首要條件,排查過程如下:
1.確定自己所在的內網有沒有問題,可以訪問一下其他網站的速度,對比速度,如果內網沒問題,則看其下
2.使用ping www.xxx.com 命令觀察服務器的響應時間以及是否有丟包,如果響應時間很長,或者有很多超時,則說明網站慢的原因在于網站入口的公網網絡有問題,如果有cdn,則說明cdn所在的網絡有問題,聯系網絡或者cdn運營商即可。否則如果ping響應很順暢,則看其下
3.如果使用cdn則檢測服務所在的機房所在的網絡是否正常 ping 即可,如果機房網絡也沒問題,則看其下
4.網站的前端一般使用lvs,haproxy,slb等負載均衡工具,則要檢測這些負載均衡軟件的運行狀況,如果正常則看其下
5.負載均衡的后面往往是前端代理服務器,目前最流行的莫過于nginx,這時就得查看nginx的訪問日志了,要特別關注一下nginx的error日志,如果有大量訪問超時,則問題可確定為后端服務響應有問題。具體進入后端服務器所在f的服務器,使用top查看服務器的cpu、內存的負載情況,iostat查看io的負載狀況,從而確定響應慢的進程以及服務,步驟如下
6.如果發現的某進程cpu使用率高 則可以使用 top -H -p 進程號 查看具體應用里面占用cpu的線程號,那java的后端服務講解 可以使用jstack打印當前堆棧信息,把之前找到的線程號轉化為十六進制,在jstack打印的信息里面搜索,把對應的信息提供給開發者,從而解決問題
7.很大可能的原因是數據庫響應慢導致的連鎖問ut如果使用mysql數據庫,可以查看mysql的慢查詢日志,找到對應響應慢的sql語句,進行索引優化,或者提供給程序組進行功能的改進優化
8.查看后端服務器日志往往也能發現很多問題,具體看項目...