您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)網(wǎng)站訪問(wèn)慢的排查方法及解決方案,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
當(dāng)出現(xiàn)網(wǎng)站慢的時(shí)候我們腦子中要映出幾點(diǎn)原因:
1.程序代碼執(zhí)行方面
2.大量數(shù)據(jù)庫(kù)操作
3.域名DNS解析問(wèn)題
4.服務(wù)器環(huán)境
我也是這么解決的,下面說(shuō)下解決中的步驟吧。
1.打開(kāi)訪問(wèn)慢的網(wǎng)站觀察下情況,通過(guò)火狐的fixfox 插件 或者 IE的元素查看工具,你網(wǎng)站里面加載的信息會(huì)一覽無(wú)遺的展現(xiàn)出來(lái),并且那些元素加載耗時(shí)多少秒等等情況,如何解決能,把遠(yuǎn)程耗時(shí)久的js下載到本地,或者直接刪除。
2. 我看了下頁(yè)面中有多處連接數(shù)據(jù)庫(kù)操作的地方,并且有遠(yuǎn)程的數(shù)據(jù)庫(kù)操作,并且還有多余的數(shù)據(jù)庫(kù)連接代碼,話不多說(shuō),改之.
解決完了發(fā)現(xiàn)的確是快點(diǎn)了,但是還是不理想,于是我把頁(yè)面執(zhí)行數(shù)據(jù)庫(kù)代碼放到了數(shù)據(jù)庫(kù)中執(zhí)行沒(méi)有耗慢的情況。
3. 關(guān)于域名DNS的情況只是其中一種情況,不要急著找域名商的問(wèn)題,你可以寫(xiě)個(gè)沒(méi)有數(shù)據(jù)操作的頁(yè)面放在同臺(tái)服務(wù)器域名下,看看是不是訪問(wèn)同樣慢,如果是才有可能,你還要讓你周?chē)娜艘部纯?,最好別是你同公司的人。
4. 我來(lái)看看服務(wù)器的情況吧,是不是CPU使用率過(guò)高造成的呢。
a. top 發(fā)現(xiàn)cpu使用也不高啊,30% 左右,但是發(fā)現(xiàn)一個(gè)問(wèn)題,sleeping 的進(jìn)程數(shù)比較多。擦,最好別是僵尸進(jìn)程,現(xiàn)在這樣的東西不多了。
b. 查看了下timewait的量: 發(fā)現(xiàn)有mysqld 和 httpd 的,大部分來(lái)自于 httpd ; 命令 netstat -ae|grep TIME_WAIT
如何來(lái)解決timewait的量問(wèn)題呢?
TIME_WAIT解決辦法:
vi /etc/sysctl.conf
編輯文件,加入以下內(nèi)容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 30 保持連接的時(shí)間
net.ipv4.tcp_max_tw_buckets = 100 這個(gè)是設(shè)置服務(wù)器同時(shí)保持的time_wait的數(shù)目
然后執(zhí)行 /sbin/sysctl -p 讓參數(shù)生效。
設(shè)置APACHE 的配置文件:
Timeout 10 與客戶端連接超時(shí)的時(shí)間
KeepAlive On 一次連接可以多次傳輸,使的一次連接中可以傳遞多個(gè)HTTP請(qǐng)求
MaxKeepAliveRequests 50 設(shè)置一次連接內(nèi),可以進(jìn)行多少次請(qǐng)求
KeepAliveTimeout 15 如果服務(wù)器已經(jīng)完成了一次請(qǐng)求,多長(zhǎng)時(shí)間一直沒(méi)有接受到下一次請(qǐng)求就會(huì)斷開(kāi)連接
保存重啟APACHE
設(shè)置完已上的操作后:
netstat -n |awk '/^tcp/{++S[$NF]}END{for (i in S ) print i,S[i]}'
你會(huì)發(fā)現(xiàn)非常成功。
如果還不夠滿意可以 再設(shè)置下Ulimit參數(shù)
cat >>/etc/security/limits.conf<<EOF
* soft nofile 655350
* hard nofile 655350
EOF
然后ulimit -SHn 了 讓生效。
OK,當(dāng)你再查看的時(shí)候 已經(jīng)發(fā)現(xiàn)比較成功了。
如你發(fā)現(xiàn)mysqld 比較多的話,你可以優(yōu)化下mysql的性能: 見(jiàn) mysql 性能調(diào)優(yōu)
好,已上都做完了,查看了先time_wait 發(fā)現(xiàn)有很多 百度機(jī)器人作怪挺嚴(yán)重的。 netstat -agn
最后只能忍痛割愛(ài),暫時(shí)把百度蜘蛛在 robots.txt 屏蔽下,這只是暫時(shí)的解決方案。
接下來(lái)只能趕緊把首頁(yè)做成純靜態(tài)的,Mygod。
關(guān)于網(wǎng)站訪問(wèn)慢的排查方法及解決方案就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。