日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈inode和block与磁盘性能的初级优化

發(fā)布時間:2025/6/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈inode和block与磁盘性能的初级优化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是inode和block?

所謂的inode就是索引節(jié)點(index node)的意思,在每一個存儲設(shè)備被格式化創(chuàng)建文件系統(tǒng)后,所有的文件大致被分為了兩部分,分別是inode和block。

其中inode用來存儲文件屬性信息,其中包括了文件大小,文件的歸屬者,文件的歸屬組,權(quán)限,類型,修改時間,以及指向文件實體數(shù)據(jù)(block)的指針。

block中存儲的就是文件的實際數(shù)據(jù),比如說,照片,視頻,音頻等等,但是有一點需要注意!就是inode當中不包含文件名!一個文件的文件名,存儲在上級目錄的block中!


其實inode和block之間的關(guān)系就像是一本書一樣,inode是一本書的目錄,一本書會有很多內(nèi)容,一個知識點或者一個故事會占很多頁,一個block就相當于書中的一頁內(nèi)容。

所以說一般情況下一個inode會對應(yīng)一個或多個block。


inode和block的大小是可以手動去指定的,并且在不同的操作系統(tǒng)和文件系統(tǒng)下inode和block的大小是不一樣的,下面就以centos6為例,如果想查看指定分區(qū)的inode大小和block大小可以使用dumpe2fs命令去查看。

例如:

dumpe2fs /dev/sda1 | grep -i "Inode size"

查看inode大小。


dumpe2fs /dev/sda1| grep -i "block size"

查看block大小。


如果,在centos6系統(tǒng)下查看本機磁盤的inode使用情況可以使用df -i 命令去查看。

df命令的-i參數(shù)可以查看本機分區(qū)中一共生成了多少inode,以及使用了多少inode,還剩余多少inode可用。



簡單了解了inode和block后,下面說一個關(guān)于block與磁盤I/O性能的基礎(chǔ)調(diào)優(yōu)。

磁盤在讀取數(shù)據(jù)的時候,是按照block為單位來讀取的。

其實block的大小與業(yè)務(wù)與磁盤的I/O性能有著密不可分的關(guān)系。

block并非越大越好或者越小越好,還是要看業(yè)務(wù),下面就舉兩個例子。

如果遇到這種單個文件特別小(小于一個block),而且這種小文件特別多,block設(shè)置的太大則對block是一種浪費!這是因為一個文件不管有多小,它都會占用一個inode和一整個block,假如說一個block的大小為4k,磁盤里有一個小文件是1k,那么這個小文件會把4k的一整個block全部占用,剩下的3k就白白浪費掉了。


如果單個文件很大的情況下,block設(shè)置的很小,就需要讀取多個block,這對磁盤I/O是一種消耗(因為每讀取一個block都會消耗磁盤I/O,磁盤每次讀取都是以block為單位的)

如果單個文件很大,適當?shù)募哟骲lock的大小則會提高磁盤的讀取效率,減少了磁盤的I/O。


當block設(shè)置的太小,則會影響大文件的讀取效率,如果block設(shè)置的太小,那么存儲一個大文件就需要很多很多block,在讀取數(shù)據(jù)的時候就需要到很多block中去讀取內(nèi)容,剛剛說過,磁盤每次讀取內(nèi)容都是以block為單位的,每讀取一個block都會浪費一次磁盤I/O,所以,磁盤讀取大文件的效率就回大大降低~

所以,根據(jù)業(yè)務(wù)的不同對block做一些調(diào)整,可以提高磁盤的利用率和讀取性能。


inode和block的大小在創(chuàng)建文件系統(tǒng)(格式化分區(qū))時就可以指定了。下面是示例~

mkfs.ext4 -b 4096 -I 1024 /dev/sdb1

(-b參數(shù)用來指定這個分區(qū)每個block的大小,單位為byte)

(-i 參數(shù)用來指定每個inode的大小,單位同樣為byte)



最后做幾點補充:

一個文件的文件名,存放于上級目錄的block中。

多個文件可以占用同一個inode(linux的硬鏈接就是這個原理)

但是一個block只能屬于一個文件。






? ? ? 本文轉(zhuǎn)自蘇浩智 51CTO博客,原文鏈接:http://blog.51cto.com/suhaozhi/1904590,如需轉(zhuǎn)載請自行聯(lián)系原作者



總結(jié)

以上是生活随笔為你收集整理的浅谈inode和block与磁盘性能的初级优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。