在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/C  Linux/ 為什么日志文件不切分會(huì)影響性能?

為什么日志文件不切分會(huì)影響性能?

只是追加寫(xiě)入,并不讀,應(yīng)該是完全不影響性能的吧?
為什么配置apache以及nginx的日志功能時(shí),都有資料表示要超過(guò)幾兆就分割文件?

回答
編輯回答
夢(mèng)若殤

不能一概而論。這種策略只是為了在常用文件系統(tǒng)中達(dá)到性能最優(yōu)化的最簡(jiǎn)單方式。

不同硬盤(pán)、不同文件系統(tǒng)、不同的磁盤(pán)IO調(diào)度算法……都會(huì)對(duì)日志文件讀寫(xiě)產(chǎn)生很大的影響。

比如適用數(shù)據(jù)是被整體訪問(wèn)場(chǎng)景的 HDFS。日志文件采用追加寫(xiě),可以做到最小化硬盤(pán)的尋址開(kāi)銷(xiāo),只需要一次尋址即可,這時(shí)尋址時(shí)間相比于傳輸延時(shí)可忽略。

還有知道文件明確的偏移量的 Kafka。采用分段和索引的方式來(lái)解決查找效率問(wèn)題。Kafka 把一個(gè) patition
大文件又分成了多個(gè)小文件段,每個(gè)小文件段以偏移量命名,通過(guò)多個(gè)小文件段,可以使用二分搜索法很快定位消息。

而 HBase,LevelDB 等 NoSQL 數(shù)據(jù)庫(kù)的存儲(chǔ)引擎則使用了日志結(jié)構(gòu)的合并樹(shù)LSM(The Log-Structured Merge-Tree)。Log-Structured 的思想是將整個(gè)磁盤(pán)看做一個(gè)日志,在日志中存放永久性數(shù)據(jù)及其索引,每次都添加到日志的末尾。LSM-tree 犧牲了部分讀性能,以此來(lái)?yè)Q取寫(xiě)入的最大化性能。


對(duì)于大文件的讀寫(xiě),不同文件系統(tǒng)的性能差異非常大。

2017年1月21日 05:57
編輯回答
陌顏

你煮一鍋飯(一個(gè)日志),吃的時(shí)候端起整個(gè)鍋來(lái)吃(日志不分割),還是分到碗里吃(日志分割)來(lái)得方便呢?

2018年6月30日 13:06
編輯回答
九年囚

分割的目的:
1、日志太大導(dǎo)致磁盤(pán)空間占用大,如果分割,則可以定期清除以前的日志
2、日志太大,不好查看,不太好快速定位日志,且日志太大查看時(shí)影響服務(wù)器IO

2017年3月7日 02:56