緩存(Cache memory)是硬碟控制器上的一塊內存晶元,具有極快的存取速度,它是硬碟內部存儲和外界介面之間的緩沖器。由於硬碟的內部數據傳輸速度和外界介面傳輸速度不同,緩存在其中起到一個緩沖的作用。緩存的大小與速度是直接關繫到硬碟的傳輸速度的重要因素,能夠大幅度地提高硬碟整體性能。當硬碟存取零碎數據時需要不斷地在硬碟與內存之間交換數據,如果有大緩存,則可以將那些零碎數據暫存在緩存中,減小外系統的負荷,也提高了數據的傳輸速度。
硬碟的緩存主要起三種作用:一是預讀取。當硬碟受到CPU指令控制開始讀取數據時,硬碟上的控制晶元會控制磁頭把正在讀取的簇的下一個或者幾個簇中的數據讀到緩存中(由於硬碟上數據存儲時是比較連續的,所以讀取命中率較高),當需要讀取下一個或者幾個簇中的數據的時候,硬碟則不需要再次讀取數據,直接把緩存中的數據傳輸到內存中就可以了,由於緩存的速度遠遠高於磁頭讀寫的速度,所以能夠達到明顯改善性能的目的;二是對寫入動作進行緩存。當硬碟接到寫入數據的指令之後,並不會馬上將數據寫入到碟片上,而是先暫時存儲在緩存里,然後發送一個「數據已寫入」的信號給系統,這時系統就會認為數據已經寫入,並繼續執行下面的工作,而硬碟則在空閑(不進行讀取或寫入的時候)時再將緩存中的數據寫入到碟片上。雖然對於寫入數據的性能有一定提升,但也不可避免地帶來了安全隱患——如果數據還在緩存里的時候突然掉電,那麼這些數據就會丟失。對於這個問題,硬碟廠商們自然也有解決辦法:掉電時,磁頭會藉助慣性將緩存中的數據寫入零磁軌以外的暫存區域,等到下次啟動時再將這些數據寫入目的地;第三個作用就是臨時存儲最近訪問過的數據。有時候,某些數據是會經常需要訪問的,硬碟內部的緩存會將讀取比較頻繁的一些數據存儲在緩存中,再次讀取時就可以直接從緩存中直接傳輸。
緩存容量的大小不同品牌、不同型號的產品各不相同,早期的硬碟緩存基本都很小,只有幾百KB,已無法滿足用戶的需求。2MB和8MB緩存是現今主流硬碟所採用,而在伺服器或特殊應用領域中還有緩存容量更大的產品,甚至達到了16MB、64MB等。
大容量的緩存雖然可以在硬碟進行讀寫工作狀態下,讓更多的數據存儲在緩存中,以提高硬碟的訪問速度,但並不意味著緩存越大就越出眾。緩存的應用存在一個演算法的問題,即便緩存容量很大,而沒有一個高效率的演算法,那將導致應用中緩存數據的命中率偏低,無法有效發揮出大容量緩存的優勢。演算法是和緩存容量相輔相成,大容量的緩存需要更為有效率的演算法,否則性能會大大折扣,從技術角度上說,高容量緩存的演算法是直接影響到硬碟性能發揮的重要因素。更大容量緩存是未來硬碟發展的必然趨勢。來源網路 供參考
② 如何清理Linux伺服器磁碟空間
1、刪除無用的安裝包
在之前的Linux實驗室中,筆者介紹過apt-get及其相似命令,而在apt-get命令中,有一項「autoremove」自動移除選項。
這個選項能夠移除一些無用的自動安裝包和庫,也可以刪除那些在系統升級中自動安裝的就得Linux內核。
這是一個傻瓜式的命令,你隨時都可以運行,以加大你的磁碟可用空間。
sudoapt-getautoremove
比如Stacer就是這樣一個工具,它可以展示你系統中的內存、CPU等各種部件狀態信息,當然還有很多其他類似的工具,等著你不斷去發掘。
③ 網站的CPU資源佔用過大導致網站打不開了怎麼辦
以下是方案1:
現象:機器正在調試或允許IIS時,被異常中斷服務(比如停電),然後再次IIS運行頁面時,CPU資源佔用100%,即使重新啟動也無效。
原因:發生中斷時,IIS會寫異常日誌,但是此時寫入了亂碼,造成IIS一直寫日誌的死循環,耗盡了系統資源。找到系統路徑\System32\Logfiles\W3SVC1 下當天的錯誤日誌文件,即可看到以上內容。
解決:刪除 系統路徑\System32\Logfiles\W3SVC1 下當天的錯誤日誌文件,如:ex060904.log,然後重新啟動IIS即可。以下是方案2:
環境:win2003server+IIs+ASP+MSsql
現象:每隔一段時間(不定,有時幾分鍾,有時半小時)出現一次網站打開非常緩慢,甚至有時會出現超時打不開站點,此時查看伺服器端的進程,CPU佔用率達到100%,其中w3wp佔用70~80%,SQL佔用20~30%。所有伺服器端的操作也變得緩慢
初期解決方法:每次現象出現時,立即登錄伺服器直接結束w3wp進程或重啟IIS服務,平均每天約十次操作,由於伺服器存放於遠程機房,所有操作都是遠程式控制制進行,有時會因此出現遠程無法連接登錄的情況,只能通過電話通知機房管理人員重啟伺服器解決,此過程導致用戶抱怨不斷
經過網上查閱資料,發現此類現象多數由於網頁代碼不合理所致,以下情況會導致此類現象發生:
1、代碼中多處使用application、seesion等伺服器緩存,導致伺服器資料過度佔用;
2、代碼有不合理語法,死循環等;
3、資料庫損壞,尤其是ACCESS資料庫;
4、裝過多第三方軟體或插件,與IIS或網頁功能代碼沖突。
第一階段排查:根據查閱到的參考資料逐項分析
1、伺服器上所有站點代碼均為公司設計人員自行編寫,可證實並無過多調用伺服器緩存語法(排除)
2、代碼是否存在不合理語法(不確定)
3、根據情況來看,IIS進程佔用率升高時,SQL佔用率同時升高,應為SQL資料庫的站點,根據現象判斷,庫或表應該正常,估計是數據方面可能有誤;(不確定)
4、伺服器端除了基本的系統服務,防殺毒及網站運作必備服務之外,並無多餘第三方軟體,機率不大(排除)。
經過以上分析判斷,將不確定項連起來得出的結論是:某個採用了SQL資料庫的網站網頁代碼存在不合理語法,導致IIS和SQL進程CPU佔用率過高。
第二階段排查:
確定范圍,接著繼續把范圍縮小。
由於伺服器上採用SQL資料庫的站點並不多,便於建立獨立進程ID來觀察,將所有採用SQL資料庫的站點在IIS管理器中分別建立獨立的應用程序池,然後通過CMD界面輸入:iisapp -a 命今查看並記錄下各IIS池的進程ID號,通過多次現象重現時的觀察,有個IIS進程ID是導致此次問題的罪魁禍首。
以下是方案3:
在IIS6下,經常出現w3wp.exe的內存及CPU佔用不能及時釋放,從而導致伺服器響應速度很慢。
解決內存佔用過多,可以做以下配置:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的回收時間,默認為1720小時,可以根據情況修改。再設置當內存佔用超過多少(如500M),就自動回收內存。
解決CPU佔用過多:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的CPU監視,不超過25%(伺服器為4CPU),每分鍾刷新,超過限制時關閉。
根據w3wp取得是那個一個應用程序池:
1、在任務管理器中增加顯示pid欄位。就可以看到佔用內存或者cpu最高的進程
2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然後再次運行就可以了。這樣就可以看到pid對應的應用程序池。(iisapp實際上是存放在C:\windows\system32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認關聯程序,那麼就需要手動到該目錄,先擇打開方式,然後選「Microsoft (r) Windows Based Script Host」來執行,就可以得到PID與應用程序池的對應關系。)
3、到iis中察看該應用程序池對應的網站,就ok了,做出上面的內存或CPU方面的限制,或檢查程序有無死循環之類的問題。
④ 伺服器裡面的物理內存緩存如何刪除或者設置不要,這個緩存一直增加很快就把運行的內存給占滿了
一般情況下不要管,伺服器操作系統能很好地處理緩存的清理問題!,如果伺服器的負荷過大,可以考慮增加CPU或者增加內存來處理,這要根據伺服器的用途來決定!!
⑤ 伺服器緩存問題
通常來講,只要你的伺服器上的文件成功更新了的,那麼就更新過了。
而你本機看到還是原來那樣,最常見的是flash,卻沒有變化。
那麼你就要用ie上的工具,然後選擇internet選項,然後清除緩存和離線文件。
再刷新你的頁面,就正常了。
⑥ sql資料庫伺服器,內存佔用過大怎麼辦
SqlServer系統內存管理在沒有配置內存最大值,很多時候我們會發現運行SqlServer的系統內存往往居高不下。這是由於他對於內存使用的策略是有多少閑置的內存就佔用多少,直到內存使用慮達到系統峰值時(預留內存根據系統默認預留使用為准,至少4M),才會清除一些緩存釋放少量的內存為新的緩存騰出空間。
這些內存一般都是SqlServer運行時候用作緩存的,例如你運行一個select語句,執行個存儲過程,調用函數;
1.數據緩存:執行個查詢語句,SqlServer會將相關的數據頁(SqlServer操作的數據都是以頁為單位的)載入到內存中來,下一次如果再次請求此頁的數據的時候,就無需讀取磁碟了,大大提高了速度。
2.執行命令緩存:在執行存儲過程,自定函數時,SqlServer需要先二進制編譯再運行,編譯後的結果也會緩存起來,再次調用時就無需再次編譯。
在我們執行完相應的查詢語句,或存儲過程,如果我們不在需要這些緩存,我可以將它清除,DBCC管理命令緩存清除如下:
--清除存儲過程緩存
DBCCFREEPROCCACHE
--註:方便記住關鍵字FREEPROCCACHE可以拆解成FREE(割捨,清除)PROC(存儲過程關鍵字簡寫),CACHE(緩存)
--清除會話緩存
DBCCFREESESSIONCACHE
--註:FREE(割捨,清除)SESSION(會話)CACHE(緩存)
--清除系統緩存
DBCCFREESYSTEMCACHE('All')
--註:FREESYSTEMCACHE
--清除所有緩存
DBCCDROPCLEANBUFFERS
--註:DROPCLEANBUFFERS
⑦ 華為暢享8手機。頁面失聯,系統故障。伺服器緩存過多,導致網路變慢,該怎麼辦
恢復出廠設置,或者去售後。
⑧ 伺服器上C盤滿了,如何清除緩存的解決辦法
1、運用磁碟清理軟體清理C盤,大約可為C盤釋放50M-800M空間。
2、關閉休眠功能,在開始菜單的運行里輸入powercfg -h off 指令,關閉休眠,此文件實際大小和物理內存是一樣的,大約可以為C盤釋放1-3G的空間。
3、設置虛擬內存: 計算機屬性>高級系統設置>設置(性能)>高級選項卡>更改(虛擬內存),將C盤設置為無分頁文件,然後把D盤設置成系統管理的大小即可,更改後只有按「設置」按鈕才能生效,最後重啟便完成了設置,此文件默認為物理內存的1.5倍,大約可為C盤釋放2-4G的空間。
4、刪除自動備份文件,運行cmd程序(在「開始–>程序–>附件」中),滑鼠右鍵選擇「以管理員身份運行」;然後,命令行輸入rd/S/Q c:WINDOWS.OLD,提示確認是否刪除目標文件夾,輸入y然後回車即可。WINDOWS.OLD為系統的備份文件,時間越久就越大,超過10G都是很正常的。大約可為C盤釋放3G以上空間。
5、在電腦管家主界面上點擊「清理垃圾」,確認相關垃圾類型被勾選後,點擊「開始掃描」,然後點擊「立即清理」,如果有需要確認才能清理的垃圾,會您確認後再進行深度清理,以實現快速、安全地清理掉電腦中的垃圾文件。
⑨ 想把電腦緩存調大點,應該從哪怎麼弄
調整緩存步驟:
1、WIN+PAUSE調出「系統屬性」,點擊左側的「高級系統設置」,彈出如下窗口:
4、去除「自動管理所有驅動器的分頁文件大小」前的勾選,然後點「自定義大小」,填入初始大小和最大值,然後點確認即可。
一般建議系統自己管理虛擬內存,如果內存確實太小,可以考慮設置虛擬內存為物理內存的1.5倍,不過這個方法並不會徹底改善內存小的詬病,在經濟允許的情況下最好加裝物理內存。