成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

磁盤 IO 真的比網絡 IO 快嗎?

存儲 存儲設備
系統設計一種工程實踐,不是藝術遐想,每一個關鍵決策都要有依據而不能拍腦袋,本文的這張表就是你的依據(之一)。

[[426776]]

Google大神 Jeff Dean在之前的一次演講中展示了這樣一張表,非常有意思:

從這張圖里我們可以清楚的看到,計算機系統中各種關鍵操作其典型耗時到底有多少(注意,各種不同的系統架構精確的數據可能與此不同,但數量級上差別應該不會很大)。

訪存與cache

訪問L2 cache的時延大概是訪問L1 cache的10幾倍左右,而訪問一次內存的時延則高達訪問L2 cache的20倍,是訪問L1cache耗時的200倍。

這一部分清楚的告訴每個程序員,編寫出對cache友好的程序是至關重要的,尤其你的場景如果對性能要求很高則更是如此。

分支預測失敗的懲罰大概只有5ns這個量級,博主在之前的文章《特斯拉遇上CPU:程序員的心思你別猜》這篇文章中專門講解過CPU的分支預測功能。

分支預測

該功能主要針對 if 語句,由于現代CPU內部采用流水線方式來處理機器指令,因此在 if 對應的機器指令還沒有執行完時后續指令就要進到流水線中,此時CPU就必須猜測到底 if 語句是否為真,如果CPU猜對了,那么流水線照常運行,但如果猜錯了流水線中已經被執行的一部分指令就要作廢。

[[426777]]

很多同學看到這篇文章后表示if語句是不是盡量少用,從這張表可以看出,分支預測失敗的懲罰不高,并且現代CPU的分支預測成功率很高,根本不必在意這點性能損失。

內存、SSD與磁盤

程序員都知道訪問內存的速度比SSD塊,訪問SSD速度比磁盤快,那么到底能快多少呢?

同樣順序讀取1MB數據,內存花費的時間為250,000 ns,SSD為1,000,000 ns,磁盤為20,000,000 ns。

我們可以看到,同樣讀取1MB數據,磁盤花費的時間是 SSD 的 20 倍,是內存的80倍。

同樣讀取1MB數據,SSD耗時是內存的4倍。

這組數據告訴我們,相對內存來說磁盤真的很慢,如果你的經費充足就用SSD吧,如果你是土豪,那么就把數據庫直接放到內存吧。

網絡與磁盤

一般來說我們認為內存比磁盤快,磁盤比網絡快,但這這張表告訴我們用1Gbps網絡發送1K數據僅僅需要20,000 ns,而磁盤的一次尋道則高達10,000,000ns(10ms),網絡IO可不一定比磁盤IO慢。

當然,這也要看網絡兩端距離有多遠。

網絡

想測量數據包在網絡兩端來回一趟需要耗時多少?ping命令再簡單方便不過了。

首先,博主在數據中心內部ping一臺主機(注:ip地址用*來代替):

一圈下來耗時僅在100 us左右,速度非常快,在數據中心內部空間距離幾乎可以忽略不計。

我的坐標在北京,接下來我們ping一下清華大學,哈哈,注意現在由于云服務商的存在,清華大學的官網服務器主機可不一定在清華大學里,為簡單起見我們認為所ping的機器都在相應的地理位置上。

這個耗時就很可觀了,我們姑且用市中心到清華大學的直線距離評估一下數據包路徑長度(實際數據包的路徑肯定和這里不同),可以看到大概在10公里左右的數量級,用時將近10ms,不要覺得10ms很耗時,磁盤一次seek就是這個量級。

接下來出個省,ping一下浙大:

出了省就是不一樣,北京與浙江的直線距離大概在1200公里,網絡上走一圈耗時來到了將近15ms。

接著我們出趟國吧,去英國轉一圈,ping下牛津大學:

出了國就更不一樣了,北京與英國直線距離(球體表面)大概在7000公里,網絡耗時將近50ms。

最后讓我們去趟美國,ping下斯坦福大學:

和預想的差不多,北京與斯坦福直線距離大概在10000公里,耗時也在50ms左右。

從這組測試我們可以看出,網絡的耗時和空間距離有很大關系,但在數據中心內部網絡其實是非常快的,這一點在進行系統設計時需要意識到。

總結

系統設計一種工程實踐,不是藝術遐想,每一個關鍵決策都要有依據而不能拍腦袋,本文的這張表就是你的依據(之一)。

希望這篇文章對大家理解系統時間有所幫助。

本文轉載自微信公眾號「碼農的荒島求生」,可以通過以下二維碼關注。轉載本文請聯系碼農的荒島求生公眾號。

 

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2025-03-18 12:30:00

RubyJava語言

2018-09-10 10:20:26

磁盤 IO網絡 IO監控

2021-06-21 11:11:29

LinuxIO磁盤IO

2021-11-11 06:57:00

PythonPyPy程序

2022-11-02 08:12:47

TurbopackVite

2010-12-22 13:17:47

Linux性能監測磁盤IO

2011-11-08 21:51:43

Linux 監控 IO

2010-08-18 16:04:24

JavaC

2020-11-09 09:33:37

多線程

2019-03-28 08:00:00

Linux磁盤IO監控存儲設備

2022-02-21 10:21:17

網絡IO模型

2019-09-17 14:31:37

磁盤排序IO

2019-06-29 14:34:27

磁盤IO排序

2013-08-15 14:10:24

云主機磁盤IO

2011-09-02 10:29:30

腳本Linuxperl

2022-04-12 08:00:17

socket 編程網絡編程網絡 IO 模型

2023-12-06 07:28:47

阻塞IO異步IO

2020-06-17 16:43:40

網絡IO框架

2021-01-09 13:59:49

異步IO驅動式

2023-12-20 14:38:50

Linux磁盤IO
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区三区在线 | 91国内在线观看 | 婷婷久久综合 | 日韩中文字幕第一页 | 日韩一区二区三区在线看 | 国产美女在线播放 | 91国内精品久久 | 精品欧美一区二区三区精品久久 | 国产专区在线 | 亚洲天堂av网| 亚洲网在线 | 中文字幕一区二区三区四区五区 | 欧美色专区 | 久久久久成人精品 | 久久久久久久99 | 午夜欧美 | 一区视频在线播放 | 久草视| 精品久久久久久18免费网站 | 91在线视频播放 | 欧美综合一区二区三区 | 国外激情av | 久久男人 | 成人一区二区三区在线观看 | 久久最新精品视频 | 亚洲国产第一页 | www.黄色片视频 | 91精品国产综合久久精品 | 一区二区三区在线电影 | 成人午夜免费福利视频 | 婷婷午夜天| 伊人免费观看视频 | 久久综合国产精品 | 亚洲 中文 欧美 日韩 在线观看 | 久久久久久国产精品 | 亚洲 欧美 激情 另类 校园 | 精品久久久久久久久久久久久久久久久 | 91久久爽久久爽爽久久片 | av在线播放网站 | 亚洲精品一区二 | 久久久精品网站 |