2014-05-13 65 views
0

讀取紅帽服務器5.8的服務器啓動順序,我看到這個,對我來說很不清楚,也許我錯了,但我知道linux內核主體分配器使用兩種機制的功率來分配和分配系統內存,PID哈希表條目:4096(order:12,32768 bytes)?

從啓動messagges:

PID hash table entries: 4096 (order: 12, 32768 bytes) 
Console: colour VGA+ 80x25 
Dentry cache hash table entries: 33554432 (order: 16, 268435456 bytes) 
Inode-cache hash table entries: 16777216 (order: 15, 134217728 bytes) 

訂購兩種

python -c 'import math ; print int(math.pow(2,12))*4096' 
16777216 
python -c 'import math ; print int(math.pow(2,16))*4096' 
268435456 
python -c 'import math ; print int(math.pow(2,15))*4096' 
134217728 

因此,權力,我的問題是,爲什麼第一行的 「PID哈希表entrie」 是不是16777216個字節?

回答

2

分配爲2^N struct hlist_head s的PID哈希表條目,其在64位系統上每個8字節。 2^12*8 = 32768

Inode/Dentry緩存分配爲2^N個頁面,通常爲每個4096個字節。 2^15*4096 = 134217728

這個資料分別來自kernel/pid.cfs/inode.c