chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用cp命令0.2秒就拷貝了100G文件是怎么回事

Linux愛好者 ? 來(lái)源:OSC開源社區(qū) ? 作者:OSC開源社區(qū) ? 2021-11-02 15:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

cp 引發(fā)的思考

今天同事用 cp 命令,把他給驚到了!背景是這樣的:他用 cp 拷貝了一個(gè) 100 G的文件,竟然一秒不到就拷貝完成了!用 ls 看一把文件,顯示文件確實(shí)是 100 G。

sh-4.4# ls -lh -rw-r--r-- 1 root root 100G Mar 6 12:22 test.txt

但是copy起來(lái)為什么會(huì)這么快呢?

sh-4.4# time cp 。/test.txt 。/test.txt.cp real 0m0.107s user 0m0.008s sys 0m0.085s

一個(gè) SATA 機(jī)械盤的寫能力能到 150 M/s (大部分的機(jī)械盤都是到不了這個(gè)值的)就算非常不錯(cuò)了,正常情況下,copy 一個(gè) 100G 的文件至少要 682 秒 ( 100 G/ 150 M/s ),也就是 11 分鐘。實(shí)際情況卻是 cp 一秒沒到就完成了工作,驚呆了,為啥呢?更詭異的是:他的文件系統(tǒng)只有 40 G,為啥里面會(huì)有一個(gè) 100 G的文件呢?同事把我找來(lái),看看這個(gè)詭異的問(wèn)題。

分析文件我讓他先用 du 命令看一下,卻只有 2M ,根本不是100G,這是怎么回事?

sh-4.4# du -sh 。/test.txt 2.0M 。/test.txt

再看 stat 命令顯示的信息:

sh-4.4# stat 。/test.txt File: 。/test.txt Size: 107374182400 Blocks: 4096 IO Block: 4096 regular file Device: 78h/120d Inode: 3148347 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2021-03-13 1200.888871000 +0000 Modify: 2021-03-13 1246.562243000 +0000 Change: 2021-03-13 1246.562243000 +0000 Birth: -

stat 命令輸出解釋:

Size 為 107374182400(知識(shí)點(diǎn):?jiǎn)挝皇亲止?jié)),也就是 100G ;

Blocks 這個(gè)指標(biāo)顯示為 4096(知識(shí)點(diǎn):一個(gè) Block 的單位固定是 512 字節(jié),也就是一個(gè)扇區(qū)的大小),這里表示為 2M;

劃重點(diǎn):

Size 表示的是文件大小,這個(gè)也是大多數(shù)人看到的大??;

Blocks 表示的是物理實(shí)際占用空間;

同事問(wèn)道:“文件大小和實(shí)際物理占用,這兩個(gè)竟然不是相同的概念 !為什么是這樣? ” “看來(lái),我們必須得深入文件系統(tǒng)才能理解了,來(lái),我給你好好講講?!?/p>

文件系統(tǒng)

文件系統(tǒng)聽起來(lái)很高大上,通俗話就用來(lái)存數(shù)據(jù)的一個(gè)容器而已,本質(zhì)和你的行李箱、倉(cāng)庫(kù)沒有啥區(qū)別,只不過(guò)文件系統(tǒng)存儲(chǔ)的是數(shù)字產(chǎn)品而已。我有一個(gè)視頻文件,我把這個(gè)視頻放到這個(gè)文件系統(tǒng)里,下次來(lái)拿,要能拿到我完整的視頻文件數(shù)據(jù),這就是文件系統(tǒng),對(duì)外提供的就是存取服務(wù)。

現(xiàn)實(shí)的存取場(chǎng)景例如你到火車站使用寄存服務(wù):存行李的時(shí)候,是不是要登記一些個(gè)人信息?對(duì)吧,至少自己名字要寫上。可能還會(huì)給你一個(gè)牌子,讓你掛手上,這個(gè)東西就是為了標(biāo)示每一個(gè)唯一的行李。

取行李的時(shí)候,要報(bào)自己名字,有牌子的給他牌子,然后工作人員才能去特定的位置找到你的行李

劃重點(diǎn):存的時(shí)候必須記錄一些關(guān)鍵信息(記錄ID、給身份牌),取的時(shí)候才能正確定位到。

文件系統(tǒng)回到我們的文件系統(tǒng),對(duì)比上面的行李存取行為,可以做個(gè)簡(jiǎn)單的類比;

登記名字就是在文件系統(tǒng)記錄文件名;

生成的牌子就是元數(shù)據(jù)索引;

你的行李就是文件;

寄存室就是磁盤(容納東西的物理空間);

管理員整套運(yùn)行機(jī)制就是文件系統(tǒng);

上面的對(duì)應(yīng)并不是非常嚴(yán)謹(jǐn),僅僅是幫助大家理解文件系統(tǒng)而已,讓大家知道其實(shí)文件系統(tǒng)是非常樸實(shí)的一個(gè)東西,思想都來(lái)源于生活。

空間管理現(xiàn)在思考文件系統(tǒng)是怎么管理空間的?如果,一個(gè)連續(xù)的大磁盤空間給你使用,你會(huì)怎么使用這段空間呢?直觀的一個(gè)想法,我把進(jìn)來(lái)的數(shù)據(jù)就完整的放進(jìn)去。

這種方式非常容易實(shí)現(xiàn),屬于眼前最簡(jiǎn)單,以后最麻煩的方式。因?yàn)闀?huì)造成很多空洞,明明還有很多空間位置,但是由于整個(gè)太大,形狀不合適(數(shù)據(jù)大?。?,哪里都放不下。因?yàn)槟阋乓粋€(gè)完整的空間。怎么改進(jìn)?有人會(huì)想,既然整個(gè)放不進(jìn)去,那就剁碎了唄。這里塞一點(diǎn),那里塞一點(diǎn),就塞進(jìn)去了。對(duì),思路完全正確。改進(jìn)的方式就是切分,把空間按照一定粒度切分。每個(gè)小粒度的物理塊命名為 Block,每個(gè) Block 一般是 4K 大小,用戶數(shù)據(jù)存到文件系統(tǒng)里來(lái)自然也是要切分,存儲(chǔ)到磁盤上各個(gè)角落。

圖示標(biāo)號(hào)表示這個(gè)完整對(duì)象的 Block 的序號(hào),用來(lái)復(fù)原對(duì)象用的。隨之而來(lái)又有一個(gè)問(wèn)題:你光會(huì)切成塊還不行,取文件數(shù)據(jù)的時(shí)候,還得把它們給組合起來(lái)才行。所以,要有一個(gè)表記錄文件對(duì)應(yīng)所有 Block 的位置,這個(gè)表被文件系統(tǒng)稱為inode。寫文件的流程是這樣的:

先寫數(shù)據(jù):數(shù)據(jù)先按照 Block 粒度存儲(chǔ)到磁盤的各個(gè)位置;

再寫元數(shù)據(jù):然后把 Block 所在的各個(gè)位置保存起來(lái),即inode(我用一本書來(lái)表示);

讀文件流程則是:

先讀inode,找到各個(gè) Block 的位置;

然后讀數(shù)據(jù),構(gòu)造一個(gè)完整的文件,給到用戶;

inode/block 概念好,我們現(xiàn)在來(lái)看看inode,直觀地感受一下:這個(gè)inode有文件元數(shù)據(jù)和Block數(shù)組(長(zhǎng)度是15),數(shù)組中前兩項(xiàng)指向Block 3和Block 11,表示數(shù)據(jù)在這兩個(gè)塊中存著。 你肯定會(huì)意識(shí)到:Block數(shù)組只有15個(gè)元素,每個(gè)Block是4K, 難道一個(gè)文件最大只能是 15 * 4K = 60 K ? 這是絕對(duì)不行的! 最簡(jiǎn)單的辦法就是:把這個(gè)Block數(shù)組長(zhǎng)度給擴(kuò)大!比如我們想讓文件系統(tǒng)最大支持100G的文件,Block數(shù)組需要這么長(zhǎng):(100*1024*1024)/4 = 26214400Block數(shù)組中每一項(xiàng)是4個(gè)字節(jié),那就需要(26214400*4)/1024/1024 = 100M 為了支持100G的文件,我們的Block數(shù)組本身就得100M ! 并且對(duì)每個(gè)文件都是如此 !即使這個(gè)文件只有1K! 這將是巨大浪費(fèi)!肯定不能這么干,解決方案就是間接索引,按照約定,把這 15 個(gè)槽位分作 4 個(gè)不同類別來(lái)用:

前 12 個(gè)槽位(也就是 0 - 11 )我們成為直接索引;

第 13 個(gè)位置,我們稱為 1 級(jí)索引;

第 14 個(gè)位置,我們稱為 2 級(jí)索引;

第 15 個(gè)位置,我們稱為 3 級(jí)索引;

直接索引:能存 12 個(gè) block 編號(hào),每個(gè) block 4K,就是 48K,也就是說(shuō),48K 以內(nèi)的文件,前 12 個(gè)槽位存儲(chǔ)編號(hào)就能完全 hold 住。一級(jí)索引:也就是說(shuō)這里存儲(chǔ)的編號(hào)指向的 block 里面存儲(chǔ)的也是 block 編號(hào),里面的編號(hào)指向用戶數(shù)據(jù)。一個(gè) block 4K,每個(gè)元素 4 字節(jié),也就是有 1024 個(gè)編號(hào)位置可以存儲(chǔ)。所以,一級(jí)索引能尋址 4M(1024 * 4K)空間 。二級(jí)索引:二級(jí)索引是在一級(jí)索引的基礎(chǔ)上多了一級(jí)而已,換算下來(lái),有了 4M 的空間用來(lái)存儲(chǔ)用戶數(shù)據(jù)的編號(hào)。所以二級(jí)索引能尋址 4G (4M/4 * 4K) 的空間。

三級(jí)索引:三級(jí)索引是在二級(jí)索引的基礎(chǔ)上又多了一級(jí),也就是說(shuō),有了 4G 的空間來(lái)存儲(chǔ)用戶數(shù)據(jù)的 block 編號(hào)。所以二級(jí)索引能尋址 4T (4G/4 * 4K) 的空間。

所以,在這種文件系統(tǒng)(如ext2)上,通過(guò)這種間接塊索引的方式,最大能支撐的文件大小 = 48K + 4M + 4G + 4T ,約等于 4 T。這種多級(jí)索引尋址性能表現(xiàn)怎么樣?在不超過(guò) 12 個(gè)數(shù)據(jù)塊的小文件的尋址是最快的,訪問(wèn)文件中的任意數(shù)據(jù)理論只需要兩次讀盤,一次讀 inode,一次讀數(shù)據(jù)塊。訪問(wèn)大文件中的數(shù)據(jù)則需要最多五次讀盤操作:inode、一級(jí)間接尋址塊、二級(jí)間接尋址塊、三級(jí)間接尋址塊、數(shù)據(jù)塊。

為什么cp那么快?接下來(lái)我們要寫入一個(gè)奇怪的文件,這個(gè)文件很大,但是真正的數(shù)據(jù)只有8K:在[0,4K]這位置有4K的數(shù)據(jù)在[1T , 1T+4K] 處也有4K數(shù)據(jù)中間沒有數(shù)據(jù),這樣的文件該如何寫入硬盤?

創(chuàng)建一個(gè)文件,這個(gè)時(shí)候分配一個(gè) inode;

在 [ 0,4K ] 的位置寫入 4K 數(shù)據(jù),這個(gè)時(shí)候只需要 一個(gè) block,把這個(gè)編號(hào)寫到 block[0] 這個(gè)位置保存起來(lái);

在 [ 1T,1T+4K ] 的位置寫入 4K 數(shù)據(jù),這個(gè)時(shí)候需要分配一個(gè) block,因?yàn)檫@個(gè)位置已經(jīng)落到三級(jí)索引才能表現(xiàn)的空間了,所以需要還需要分配出 3 個(gè)索引塊;

寫入完成,close 文件;

這個(gè)時(shí)候,我們的文件看起來(lái)是超大文件,size 等于 1T+4K ,但里面實(shí)際的數(shù)據(jù)只有 8 K,位置分別是 [ 0,4K ] ,[ 1T,1T+4K ]。 由于沒寫數(shù)據(jù)的地方不用分配物理block塊,所以實(shí)際占用的物理空間只有8K。重點(diǎn):文件 size 只是 inode 里面的一個(gè)屬性,實(shí)際物理空間占用則是要看用戶數(shù)據(jù)放了多少個(gè) block ,沒寫數(shù)據(jù)的地方不用分配物理block塊。這樣的文件其實(shí)就是稀疏文件, 它的邏輯大小和實(shí)際物理空間是不相等的。 所以當(dāng)我們用cp命令去復(fù)制一個(gè)這樣的文件時(shí),那肯定迅速就完成了。

總結(jié)好,我們?cè)偕钊胨伎枷?,文件系統(tǒng)為什么能做到這一點(diǎn)?

首先,最關(guān)鍵的是把磁盤空間切成離散的、定長(zhǎng)的 block 來(lái)管理;

然后,通過(guò) inode 能查找到所有離散的數(shù)據(jù)(保存了所有的索引);

最后,實(shí)現(xiàn)索引塊和數(shù)據(jù)塊空間的后分配;

這三點(diǎn)是層層遞進(jìn)的。

后記

我把這點(diǎn)小知識(shí)給小伙伴講了一小時(shí),看到他感動(dòng)欲哭的表情,我覺得他學(xué)fei了,非常滿意。是我想太多了嗎?中午吃飯都沒叫我。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    745

    瀏覽量

    23305
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4922

    瀏覽量

    72232

原文標(biāo)題:0.2 秒居然復(fù)制了 100G 文件?

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    100G 單纖光模塊:高帶寬傳輸新選擇,選型與應(yīng)用全解析

    在 5G 基站部署、數(shù)據(jù)中心互聯(lián)(DCI)及高清視頻傳輸?shù)葓?chǎng)景中,對(duì)網(wǎng)絡(luò)帶寬的需求持續(xù)攀升,100G 光模塊已成為主流選擇。其中,100G 單纖光模塊憑借 “單根光纖實(shí)現(xiàn)雙向傳輸” 的核心優(yōu)勢(shì),逐漸成為節(jié)省光纖資源、降低部署成本
    的頭像 發(fā)表于 10-16 15:15 ?66次閱讀

    micropython 文件同步失敗是怎么回事?

    您好! 在自己的stm32f407vet6開發(fā)板上,構(gòu)建的rt-thread添加了micropython模塊。 下載運(yùn)行執(zhí)行正常。執(zhí)行將文件下載到開發(fā)板或者點(diǎn)擊“文件同步”時(shí),總提示 “所連接設(shè)備可能未處于repl狀態(tài)或者不是一個(gè)micropython設(shè)備”。 這是
    發(fā)表于 09-17 07:28

    創(chuàng)新驅(qū)動(dòng)未來(lái):睿海光電領(lǐng)跑100G光模塊技術(shù),賦能AI時(shí)代智算網(wǎng)絡(luò)

    一、100G光模塊:下一代網(wǎng)絡(luò)的核心基礎(chǔ)設(shè)施? 隨著全球數(shù)據(jù)中心、云計(jì)算和人工智能的爆發(fā)式增長(zhǎng),100G光模塊已成為高速互聯(lián)的核心組件。其憑借25Gbps×4通道的高效傳輸架構(gòu)[3],實(shí)現(xiàn)低功耗
    的頭像 發(fā)表于 08-20 18:18 ?446次閱讀
    創(chuàng)新驅(qū)動(dòng)未來(lái):睿海光電領(lǐng)跑<b class='flag-5'>100G</b>光模塊技術(shù),賦能AI時(shí)代智算網(wǎng)絡(luò)

    睿海光電100G光模塊:以技術(shù)實(shí)力領(lǐng)跑行業(yè),以高效交付賦能未來(lái)

    在數(shù)字經(jīng)濟(jì)加速滲透的今天,數(shù)據(jù)中心、超算中心、AI智算中心對(duì)高速光模塊的需求呈爆發(fā)式增長(zhǎng),100G光模塊作為當(dāng)前網(wǎng)絡(luò)架構(gòu)升級(jí)的核心組件,其性能、兼容性與交付效率直接決定客戶的業(yè)務(wù)響應(yīng)速度。作為AI
    的頭像 發(fā)表于 08-20 14:45 ?406次閱讀

    創(chuàng)新驅(qū)動(dòng)智算互聯(lián):睿海光電以100G光模塊技術(shù)引領(lǐng)未來(lái)網(wǎng)絡(luò)發(fā)展

    的基礎(chǔ)組件。其采用4×25Gbps通道架構(gòu),成功實(shí)現(xiàn)高帶寬、低功耗與高端口密度的理想結(jié)合。從IEEE標(biāo)準(zhǔn)下的100GBASE-SR10(多模短距)、100GBASE-LR4(單模10公里)到MSA推動(dòng)的PSM4(500米并行單
    的頭像 發(fā)表于 08-20 13:51 ?560次閱讀

    100G光模塊:解碼未來(lái)網(wǎng)絡(luò)的高效引擎,睿海光電以創(chuàng)新領(lǐng)跑行業(yè)

    在人工智能、云計(jì)算與算力需求爆發(fā)的時(shí)代,100G光模塊作為高速數(shù)據(jù)傳輸?shù)摹吧窠?jīng)樞紐”,已成為構(gòu)建智能網(wǎng)絡(luò)的核心組件。作為該領(lǐng)域的領(lǐng)軍企業(yè),深圳市睿海光電科技有限公司(以下簡(jiǎn)稱“睿海光電”)憑借
    的頭像 發(fā)表于 08-20 09:23 ?394次閱讀

    100G 高速線纜:睿海光電以技術(shù)突破構(gòu)筑智算互聯(lián)的高效基石

    在人工智能大模型訓(xùn)練需求爆發(fā)與全球智算中心加速布局的背景下,數(shù)據(jù)中心內(nèi)部短距互聯(lián)的效率成為制約算力釋放的關(guān)鍵瓶頸。100G 高速線纜憑借其高帶寬、低延遲的特性,已成為連接服務(wù)器、交換機(jī)與存儲(chǔ)設(shè)備
    的頭像 發(fā)表于 08-19 14:52 ?405次閱讀

    100G 高速線纜:睿海光電以技術(shù)突破與極速響應(yīng)賦能智算互聯(lián)新時(shí)代

    在人工智能大模型訓(xùn)練、云計(jì)算集群擴(kuò)容與超算中心算力躍升的驅(qū)動(dòng)下,100G 高速線纜作為數(shù)據(jù)中心內(nèi)部短距互聯(lián)的核心載體,其性能、兼容性與部署效率直接決定智算網(wǎng)絡(luò)的運(yùn)行效能。深圳市睿海光電科技有限公司
    的頭像 發(fā)表于 08-19 14:51 ?424次閱讀

    睿海光電:100G光模塊技術(shù)創(chuàng)新與全球數(shù)字化賦能

    睿海光電:100G光模塊技術(shù)創(chuàng)新與全球數(shù)字化賦能 在全球數(shù)字化轉(zhuǎn)型加速的背景下,高速光通信技術(shù)正成為支撐AI、云計(jì)算等新興產(chǎn)業(yè)發(fā)展的重要基石。作為這一領(lǐng)域的領(lǐng)軍企業(yè),睿海光電憑借其在100G光模塊
    的頭像 發(fā)表于 08-18 13:53 ?449次閱讀

    410?基于?XCVU9P+?C6678?的?100G?光纖的加速卡

    基于 XCVU9P+ C6678 的 100G 光纖的加速卡
    的頭像 發(fā)表于 05-08 08:32 ?439次閱讀
    410?基于?XCVU9P+?C6678?的?<b class='flag-5'>100G</b>?光纖的加速卡

    PWM控制SCR,調(diào)節(jié)負(fù)載輸出電壓的實(shí)驗(yàn)中,斬波后的負(fù)載電壓波形偏離0V-x軸100v是怎么回事

    您好:請(qǐng)問(wèn)PWM控制SCR,調(diào)節(jié)負(fù)載輸出電壓的實(shí)驗(yàn)中,斬波后的負(fù)載電壓波形偏離0V-x軸100v是怎么回事?此時(shí)PWM占空比為40%。[/td]
    發(fā)表于 03-11 07:07

    STM32G474ymodem傳文件時(shí),傳輸停止怎么回事?

    ,按照示例,tera term進(jìn)行IAP。前面的操作和執(zhí)行都沒有問(wèn)題,但是,ymodem傳文件時(shí),傳輸停止。 這是怎么回事? 請(qǐng)幫我看
    發(fā)表于 03-10 07:14

    ads1259通過(guò)START引腳或者命令啟動(dòng)轉(zhuǎn)換,DRDY一直為高是怎么回事?

    使用ads1259,通過(guò)stm32f103控制,通信沒有問(wèn)題,寄存器配置命令發(fā)送后,讀取回來(lái)沒有問(wèn)題。通過(guò)START引腳或者命令啟動(dòng)轉(zhuǎn)換,但是DRDY一直為高,配置命令為05,58,15,00,00,00,00,00,40。sy
    發(fā)表于 01-02 06:59

    100G光模塊概述及應(yīng)用前景

    100G光模塊作為高速數(shù)據(jù)傳輸?shù)暮诵慕M件,具有重要地位。100G光模塊可以實(shí)現(xiàn)每秒100Gbps的數(shù)據(jù)傳輸速度,廣泛應(yīng)用于數(shù)據(jù)中心和傳輸網(wǎng)等應(yīng)用場(chǎng)景。本文將介紹100G光模塊的基本類型
    的頭像 發(fā)表于 11-25 12:04 ?1043次閱讀

    LMP90100采集CH1=VIN1-VIN6的時(shí)候,采集到的AD值有的時(shí)候是正有的時(shí)候是負(fù)值是怎么回事?

    =VIN1-VIN6 的時(shí)候,采集到的AD值有的時(shí)候是正有的時(shí)候是負(fù)值是怎么回事?按理說(shuō)CH1應(yīng)該在+0.2mV左右,應(yīng)該一直是正的。
    發(fā)表于 11-25 07:01