dmesg时间转换工具
最近在排查一個core問題,對dmesg的時間戳,做了一個轉化工具:ts_dmesg.sh
借助awk 和shell實現(xiàn):
[python]?view plaincopy
關于dmesg的原始時間戳,是系統(tǒng)的產(chǎn)生mesg的系統(tǒng)uptime時間,故需要獲取系統(tǒng)的啟動時間;
關于系統(tǒng)uptime時間:
/proc/uptime詳解
在Linux中,我們常常會使用到uptime命令去看看系統(tǒng)的運行時間,它與一個文件有關,就是/proc/uptime,下面對其進行詳細介紹。
[python]?view plaincopy
第一列輸出的是,系統(tǒng)啟動到現(xiàn)在的時間(以秒為單位),這里簡記為num1;
第二列輸出的是,系統(tǒng)空閑的時間(以秒為單位), ? ? ? ? ?這里簡記為num2。
注意,很多很多人都知道第二個是系統(tǒng)空閑的時間,
但是可能你不知道是,在SMP系統(tǒng)里,系統(tǒng)空閑的時間有時會是系統(tǒng)運行時間的幾倍,這是怎么回事呢?
因為系統(tǒng)空閑時間的計算,是把SMP算進去的,就是所你有幾個邏輯的CPU(包括超線程)。
系統(tǒng)的空閑率(%) = num2/(num1*N) ?#其中N是SMP系統(tǒng)中的CPU個數(shù)。
從上面我的一臺機器上的數(shù)據(jù)可知,
本機啟動到現(xiàn)在的時間長度為:6447032.12 seconds = 74.6 days
空閑率為:48185264.69/(6447032.12*8)=93.4%
系統(tǒng)空閑率越大,說明系統(tǒng)比較閑,可以加重一些負載;
而系統(tǒng)空閑率很小,則可能考慮升級本機器硬件或者遷移部分負載到其他機器上。
Some docs from Redhat:
The first number is the total number of seconds the system has been up.?
The second number is how much of that time the machine has spent idle, in seconds. ?(Jay’s comments: Please pay attention to SMP system.)
linux時間戳轉換
1. 將日期轉換成時間戳 $date +%s -d "04/24/2014 15:30:00"1398324600 2. 將時間戳轉換成日期 $date -d @1398324600Thu Apr 24 15:30:00 CST 2014 3. 將當前日期轉換成時間戳 $date +%s1398765730dmesg 時間轉換
dmesg 輸出的格式不易查看,可以通過命令進行轉換。
記錄如下:
時間查看:
date -d "1970-01-01 UTC `echo "$(date +%s)-$(cat /proc/uptime|cut -f 1 -d' ')+12288812.926194"|bc ` seconds"
將系統(tǒng)的相對系統(tǒng)啟動的時間戳轉化為絕對時間:
dc.sh:
[python]?view plaincopy
總結
以上是生活随笔為你收集整理的dmesg时间转换工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作业二
- 下一篇: Delphi编程之系统OEM DIY