前言:

前幾天使用virtualbox安裝了一台CentOS7的虛擬機器,卻發現時間一直偏差,因此特意抓了時間下來做比對,發現大約每分鐘就會差一秒,

使用虛擬機主客時間同步沒什麼效果,再考慮使用ntp來做時間校正,但因為偏差值太大,不希望校正後時間紀錄失真,

最後採用linux本身時間糾偏的方式

主機OS是CentOS7,因為yum無法直接安裝所以找了source code自行安裝(感謝神同事Leo協助突破盲腸)

下載下來後選定一個版本後即可開始安裝

GITHUB - adjtimex

./configure

make

make install

先了解時間差

adjtimex --compare# adjtimex -c

圖中每一筆紀錄是每10秒的週期,系統有一個對tick和freq的推薦值,可以用這個對系統進行校正.

這邊我的-t校正值是9859

adjtimex --tick 9859

再檢視一次

adjtimex -c

這邊還有約-0.8的偏差,但其實已經相當接近,要修正更精密的差距必須用-f參數

公式

f = 差值 * 100000 * 65536

f = error_ppm平均值 * 65536

這裡 = 250 * 65536 = 16384000

這邊我的-f校正值是16384000

adjtimex -f 16384000