自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【底層原理】存儲數(shù)據(jù)包的一生(上)

存儲 存儲軟件
存儲系統(tǒng)從整體的分層一覽,包括了主機/應(yīng)用,存儲介質(zhì),存儲網(wǎng)絡(luò)。對于存儲來說就做了一件事:Here is a bit of data. Hold onto it. Give that same bit back to me when I ask for it.

 最近認認真真學習了一個叫《Life of a Storage Packet》講座,借助這個講座將整個存儲的過程理解了下,不放過任何一個有疑問的點。這篇文章算是對講座的理解和自己收獲的總結(jié),同時也為那些對存儲系統(tǒng)不夠了解又想要了解的初學者,展現(xiàn)一個存儲數(shù)據(jù)包的“生命”。這個演講主要聚焦在“整體的存儲”,強調(diào)存儲系統(tǒng)中各個基本元素的關(guān)系,并且盡可能簡單、清楚地用一種不同的方式可視化一些存儲的概念。

[[217492]]

先上一張大圖,可以說這篇文章目的就是解釋這個圖:

整體視角

存儲系統(tǒng)從整體的分層一覽,包括了主機/應(yīng)用,存儲介質(zhì),存儲網(wǎng)絡(luò)。對于存儲來說就做了一件事:Here is a bit of data. Hold onto it. Give that same bit back to me when I ask for it.

Application視角

每個系統(tǒng)都有會有很多應(yīng)用程序運行在CPU上,對于這些Application來說,他們覺得自己有很多很多足夠的可用內(nèi)存。

CPU和MMU

計算機系統(tǒng)中有一個“內(nèi)存管理單元”(MMU,Memory Management Unit)的概念,MMU負責與DRAM內(nèi)存直接通信,并且獲得一些可用的“頁”

多租戶:內(nèi)存被某個進程(比如一個應(yīng)用)獨享,這些內(nèi)存不能被其他進程重寫。

地址:將CPU的物理地址翻譯成獨有的DRAM地址或者是很多行DRAMs,有了MMU以后,對于每個進程來說,他們就像是一個人獨占了所有的內(nèi)存一樣。

訪問內(nèi)存

Application在他需要訪問的時候,獲取這些內(nèi)存,在實際進行訪問時,會發(fā)生如下事情:

1:Application會問操作系統(tǒng)“Hey,我需要一些可用內(nèi)存”

2:操作系統(tǒng)向MMU說,“能給我一些可以使用內(nèi)存頁不?”

3:MMU把一些可用的內(nèi)存頁給操作系統(tǒng)

4:操作系統(tǒng)把這些可用的內(nèi)存頁給Application。

分配內(nèi)存

在上圖中,獲取的那些內(nèi)存,實際是可以分布在內(nèi)存中的任何地方的(非連續(xù)),MMU在把這些內(nèi)存給應(yīng)用的時候會進行初始化操作,當然,當應(yīng)用不再訪問這些內(nèi)存頁的時候,也會MMU也會負責回收這些內(nèi)存。

加速訪問

如果Application對內(nèi)存的訪問,每次都要都要從MMU獲取的話,那太慢了,因此有個經(jīng)驗法則是:Always put storage/memory as close to the CPU as possible

可以說在存儲中,改善時間的限制是永恒不變的主題,然后訪問DRAM的話,需要60-100ns的時間。我們需要更快的訪問,甚至達到“0”時間訪問。

緩存的魔法

于是在CPU中增加了一些緩存,當然緩存也是分級別的,對于L1緩存大概花費1ns以內(nèi),L2緩存大概花費3-6ns,沒錯,這使得每次訪問從60-100ns提升了幾十倍!

更多的空間

如果DRAM中也沒有足夠的空間時,這是你需要更多的持久化存儲,比如說磁盤。當然直接去訪問磁盤會非常的昂貴,當然這里指的是時間的花費非常昂貴。

在Jeff Dean大神的Software Engineering Advice from Building Large-Scale Distributed Systems給出了數(shù)據(jù):L1緩存、L2緩存、主存、硬盤的訪問分別是1ns、5ns、100ns、10,000,000ns級別;

舉個比較形象的例子:你需要快遞送個包裹,快遞一個1公里(L1)、5公里(L2)外的包裹,oops,可能馬云爸爸保證當日達;快遞100公里(DRAM)的包裹,11點前下單,當日達,不能再快了??;快遞1000萬公里(Disk)的快遞,啊親,你真的需要快遞嗎?這可是從地球到月球(38.4萬公里)十幾個來回的距離啊親。

小結(jié)

存儲設(shè)備和RAM不太一樣,不會和CPU直接進行“對話”,而是有一些其他的部分來幫助他們完成對話,我們在下文從存儲視角進一步去講述。

責任編輯:武曉燕 來源: 碼農(nóng)有道
相關(guān)推薦

2015-04-23 08:51:53

2020-07-09 17:37:47

Linux網(wǎng)絡(luò)包中斷

2015-08-03 09:33:21

PH程序員一生

2021-05-12 00:07:27

TCPIP協(xié)議

2016-08-24 11:13:30

2023-01-10 08:20:55

RocketMQ消息源碼

2019-04-29 07:53:11

TCP數(shù)據(jù)包TCP網(wǎng)絡(luò)編程

2017-11-20 10:08:48

大數(shù)據(jù)后悔的事

2021-07-23 13:34:50

MySQL存儲InnoDB

2021-08-06 22:43:54

中斷架構(gòu)傳遞

2023-03-27 00:13:26

數(shù)據(jù)包Kubernete網(wǎng)絡(luò)

2025-02-26 07:59:47

2021-10-26 13:18:52

Go底層函數(shù)

2021-05-26 08:01:25

數(shù)據(jù)包Scapy數(shù)據(jù)安全

2018-01-05 12:42:01

Lisa電腦蘋果Mac

2020-11-29 17:08:50

程序員IT

2012-12-04 10:08:16

2015-03-24 13:39:08

IE

2021-09-28 08:05:56

黑客網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2014-10-11 11:35:49

點贊
收藏

51CTO技術(shù)棧公眾號