耗資源
何謂耗資源(客戶程序故障)?
即程序占用 CPU 及內(nèi)存過多,是對(duì)資源的一種浪費(fèi)??蛻羰褂锰摂M主機(jī)時(shí)程序編寫的不合理、錯(cuò)誤嚴(yán)重,造成服務(wù)器負(fù)載急劇上升,極大的影響了正常客戶的使用,就是耗資源(客戶程序故障)。耗資源(客戶程序故障)分為耗用 CPU 資源和內(nèi)存資源二種。
為什么會(huì)出現(xiàn)耗資源(客戶程序故障)?
· 程序編寫有問題(一般為 ASP 程序變量沒有清空)。
· 數(shù)據(jù)庫調(diào)用頻繁(常見的是 Access 數(shù)據(jù)庫問題)。
· 由于訪問量或流量過大導(dǎo)致的耗內(nèi)存問題引起的耗資源(客戶程序故障)(此情況一般為大流量主機(jī))。
耗資源(客戶程序故障)的影響。
· 影響較輕的,會(huì)使單個(gè)客戶網(wǎng)站訪問慢。
· 嚴(yán)重的會(huì)使服務(wù)器宕機(jī),服務(wù)器上的所有網(wǎng)站無法訪問。
耗資源(客戶程序故障)處理方法?
通過觀察程度客戶耗資源(客戶程序故障)的程度,進(jìn)行處理:
· 程度較輕:重啟程序池或站點(diǎn)。
· 程度較重:關(guān)閉整個(gè)站點(diǎn)。
耗資源(客戶程序故障)客戶的解決辦法?
發(fā)生占用資源過大問題被關(guān)停后,需要排查超額占用資源的具體鏈接和文件,下面介紹如何排查。
1. 查看日志,下圖為示例:
2. 具體排查方法:
· 站點(diǎn)在關(guān)停后是沒有訪問日志的,因此需要查看關(guān)停之前的1-2分鐘的訪問日志。
· 看服務(wù)器響應(yīng)請(qǐng)求的時(shí)間,就是訪問日志的最后一列,這里的時(shí)間單位是微秒,例如上圖的示例中,訪問時(shí)間不到一秒(1秒=1000000微秒),一般訪問時(shí)間不應(yīng)超過3秒(3000000微秒),訪問時(shí)間長同樣會(huì)導(dǎo)致并發(fā)訪問量過大,適當(dāng)?shù)膬?yōu)化程序可以減少服務(wù)器的具體響應(yīng)時(shí)間。具體訪問的文件也在網(wǎng)站日志中有展示。如上圖,如果網(wǎng)站訪問日志中的最后一列超過3000000,也就是3秒,則需要檢查和優(yōu)化訪問的具體文件,如上圖的 test.php。
3. 如果大量的訪問來自同一 IP,或是同一 IP 段,網(wǎng)站則可能是被攻擊了。
4. 在瀏覽器種類這一列,如果有 Baidu,Google,Sogou,360 等字樣,則表示是有搜索引擎在訪問網(wǎng)站,如果影響網(wǎng)站可以配置 robots.txt 文件來禁止搜索引擎訪問網(wǎng)站。
耗資源(客戶程序故障)與大流量的區(qū)別。
· 大流量客戶:進(jìn)行大量的圖片下載、廣告互換、聊天等工作,造成帶寬嚴(yán)重占用。
· 耗資源(客戶程序故障)客戶:運(yùn)行自己網(wǎng)站程序,造成服務(wù)器負(fù)載急劇上升,造成服務(wù)器無法正常服務(wù)。
· 區(qū)別在與大流量客戶是網(wǎng)絡(luò)帶寬方面,而耗資源(客戶程序故障)客戶是對(duì)服務(wù)器正常運(yùn)行方面。