最好的辦法是修改 /etc/fstab ,針對每個文件系統入口,添加 noatime 關鍵字。
OS4: noatime file attribute
TPC Results
Load Time (Seconds) 5.58
Transactions / Second 13.884
另外一個調整 Linux I/O 的辦法是虛擬內存子系統的調整,修改 /ect/sysctl.cong 文件,增加下面一行:
vm.bdflush = 100 1200 128 512 15 5000 500 1884 2
根據 /usr/src/Linux/Documentation/sysctl/vm.txt 的說法:
第一個參數100 %:控制緩沖區中最大的髒緩沖數據,增加這個值意味著 Linux 可以延遲磁盤寫。
第二個參數 1200 ndirty:給出 bdflush 一次能夠寫入磁盤的最大髒緩沖。
第三個參數 128 nrefill:當調用 refill_freelist() 時,bdflush 添加到自由緩沖區中的最大緩沖數目。
refill_freelist() 512:當這個數目超過 nref_dirt 髒緩沖時,將喚醒 bdflush。
第五個 15 和最後兩個參數 1884 和 2,系統未使用,我們不做修改。
age_buffer 50*HZ, age_super 參數 5*HZ:控制 Linux 把髒緩沖寫到磁盤的最多等待時間。數值用時鐘滴答數(jiffies)表示,每秒為 100 個 jiffies 。
OS5: bdflush settings TPC Results
Load Time (Seconds) 4.43
Transactions / Second 14.988
經過以上一系列調整後,我們得到的最終加載時間減少了 1015.35%,TPS 增加了 45.61%。