Linux硬體IO的優化簡介

来源:http://www.cnblogs.com/cookie1026/archive/2016/12/25/6219496.html
-Advertisement-
Play Games

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寫入快可以有更多的時間和資源處理用戶讀取的效率,當然目前所講的全部只是理論上淺談,實際應用及複雜環境等諸多因素不同,用到方式肯定也不一樣。現在只是用來舉例在實際應用中我們該找準哪塊切入點去做,更好的優化及設計等。最後非常感謝大家觀看,也歡迎提出跟好的思路和意見來探討學習!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 查詢內嵌文檔 數據準備 方式1:查詢整個內嵌文檔 與普通查詢完全相同。但是,如果要查詢一個完整的子文檔,那麼子文檔必須精確匹配(順序以及個數都要一樣)。 > db.blog.find({"comments":{"author":"lf","votes":20}}) > 方式2:只針對其鍵/值對進行查 ...
  • 數據準備 find find的第一個參數決定了要返回哪些文檔,用於指定查詢條件。要不指定查詢文檔,預設就是{},指定多個鍵/值對,相當於sql的and。第二個參數來指定想要的鍵(預設情況下,"_id"總是顯示)。 查詢條件 And查詢 使用AND型查詢時,應儘可能用最少的條件來限定結果的範圍。 當然 ...
  • I'm using ubuntu14 LTS. Problems: 1. When run roscore, got a mistake and an advice to ping the localhost. 2. Nearly every time I run a directive with ...
  • 遠程管理控制方式: RDP(remote desktop protocol)協議; telnet; SSH(Secure Shell); RFB(Remote FrameBuffer)協議(圖形化遠程管理協議) VNC伺服器:Linux下實現RFB協議的遠程管理軟體。 安裝:yum install ... ...
  • nonblock函數的原型如下: nonblock函數主要完成以下工作: a.從標準輸入獲取狀態,存放在ttystate中 b.關閉the canonical mode,通過置0的方式實現。 c.通過ttystate設置標準輸入的狀態。 kbhit函數的原型如下: 該函數主要通過timeval和se ...
  • 第四節:Linux命令基礎 標簽(空格分隔):Linux實戰教學筆記 第1章 認識操作環境 ![QQ20161225 [email protected] 38.5kB][1] root:當前登陸的用戶名 @分隔符 chensiqi:主機名 ~:當前路徑位置 用戶的提示符 1.1 Linux系統命令操作語法的 ...
  • 首先要有一個樹莓派3B , 在某寶買就行, 這東西基本上找到假貨都難,另外國產和英國也沒什麼差別,差不多哪個便宜買哪個就行。 不要買店家的套餐,一個是配的東西有些不需要,有的質量也不好。 提示:除了GPIO以外都不要熱插拔,所有東西都在安裝好後最後啟動電源。 1.下載系統 截止目前 最新的是2016 ...
  • 今天突然練習linux命令行的時候,想在window中聯繫linux命令行。經過一番dudu找到了一個不錯的的工具(SecureCRT--意思安全)就是用SSH鏈接linux主機。推薦大家使用。畢竟window下放個小曲,下點小電影同時練習linux命令行哈!~感謝強大的VMware11 找了不少博 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...