Linux硬體IO的優化簡介 首先簡單介紹下有哪些硬體設備如下(由於硬體種類廠家等各種因素我就不在此多做介紹有興趣的可以自行學習): 1.CPU:中央處理器,是電腦運算控制的核心部件之一,相當於人的大腦。如下圖 2.RAM:記憶體條與CPU溝通的橋梁,很多數據和運算在記憶體中做臨時處理,相當於你在做快 ...
Linux硬體IO的優化簡介
首先簡單介紹下有哪些硬體設備如下(由於硬體種類廠家等各種因素我就不在此多做介紹有興趣的可以自行學習):
1.CPU:中央處理器,是電腦運算控制的核心部件之一,相當於人的大腦。如下圖
2.RAM:記憶體條與CPU溝通的橋梁,很多數據和運算在記憶體中做臨時處理,相當於你在做快速記憶運算的狀態,如下圖:
3.Disk:硬碟使我們用來存放數據和資料的倉庫,因為記憶體是臨時存儲斷電後會釋放其中的所有數據,所以要保存備份數據就要用到硬碟,且硬碟空間要比記憶體大。好比你的筆記本俗話說的好,好記性不如爛筆頭,寫下來只要筆記本不丟,數據就一直在,一目瞭然!如下圖:
4.NIC:網卡簡單理解是電腦與電腦之間通訊的工具,簡單比喻(可能不專業為了好理解)每個人用的手機,QQ等通訊設備與軟體,好幫助你快速聯繫到朋友交流。如下圖:
5.mainboard:主板是以上設備所需要的工作環境,好比一個團隊team,各盡其責發揮其作用完成各項複雜的操作記錄等。好比我們生活的這個環境(board),需要我們去思考處理各種工作(CPU),記錄生活中美好的回憶(RAM),用相機拍下最美麗的瞬間(disk),聯繫親朋好友等(NIC)。圖如下:
好了簡單介紹完上面的設備組建後來看一個圖:
這圖反應了對應關係標註也詳細解釋的其作用處理機空間的關係,空間越大的讀寫速度一般都是會成反比,好比一個大倉庫找到你想要的商品肯定慢,相比小倉庫一目瞭然幾平米小空間找到商品就容易快一樣的道理。我們繼續看另一個圖:
這裡簡單列出了每個環節的讀寫速度與時間的對應關係,在強調一邊這裡的空間是處理數據的大小多少與速度相關而不是存儲空間,切記不要弄混淆。這圖簡單粗暴的說明CPU強大運算能力與運算速度納秒級響應,記憶體緊追隨於CPU但明顯處理數據就少很多了,好比學霸秒解的題目,你還要運算思考幾秒到幾十秒才能解出。
那麼問題來了怎麼去解決這中間處理關係也就是簡稱優化:
常用方案1如下圖:
例如你網站有大量寫入數據的時候,又要保證同讀取的數據夠快時,採用全部寫入記憶體的形式,控制一定數據大小一次行寫如硬碟,前面已經介紹了CPU處理的數據,記憶體的寫讀都是緊跟隨CPU的,這樣保證在讀寫時候的效應速度,減少硬碟的讀寫次數(因為都知道硬碟讀寫效率慢只適合用來存儲數據)。這裡只是淺談思路,具體根據要求在制定。
常用方案2如下圖:
這裡介紹網頁在只是讀取例如博客只是用在瀏覽比較多是,就只是少量用戶在評論時可以採用這種直接寫入硬碟的方式,硬碟讀寫慢,CPU寫入快可以有更多的時間和資源處理用戶讀取的效率,當然目前所講的全部只是理論上淺談,實際應用及複雜環境等諸多因素不同,用到方式肯定也不一樣。現在只是用來舉例在實際應用中我們該找準哪塊切入點去做,更好的優化及設計等。最後非常感謝大家觀看,也歡迎提出跟好的思路和意見來探討學習!