(1)首先是對Linux啟動過程的跟蹤和分析,生成詳細的啟動時間報告。
本文引用地址:http://www.eepw.com.cn/article/150727.htm較為簡單可行的方式是通過PrintkTime功能為啟動過程的所有內核信息增加時間戳,便于匯總分析。PrintkTime最早為CELF所提供的一個內核補丁,在后來的Kernel 2.6.11版本中正式納入標準內核。所以大家可能在新版本的內核中直接啟用該功能。如果你的Linux內核因為某些原因不能更新為2.6.11之后的版本,那么可以參考CELF提供的方法修改或直接下載它們提供的補丁:http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes
開啟PrintkTime功能的方法很簡單,只需在內核啟動參數中增加“time”即可。當然,你也可以選擇在編譯內核時直接指定“Kernel hacking”中的“Show timing information on printks”來強制每次啟動均為內核信息增加時間戳。這一種方式還有另一個好處:你可以得到內核在解析啟動參數前所有信息的時間。因此,我選擇后一種方式。
當完成上述配置后,重新啟動Linux,然后通過以下命令將內核啟動信息輸出到文件:
dmesg -s 131072 > ktime
然后利用一個腳本“show_delta”(位于Linux源碼的scripts文件夾下)將上述輸出的文件轉換為時間增量顯示格式:
/usr/src/linux-x.xx.xx/scripts/show_delta ktime > dtime
這樣,你就得到了一份關于Linux啟動時間消耗的詳細報告。
(2)然后,我們就來通過這份報告,找出啟動中相對耗時的過程。
必須明確一點:報告中的時間增量和內核信息之間沒有必然的對應關系,真正的時間消耗必須從內核源碼入手分析。
這一點對于稍微熟悉編程的朋友來說都不難理解,因為時間增量只是兩次調用printk之間的時間差值。通常來說,內核啟動過程中在完成一些耗時的任務,如創建hash索引、probe硬件設備等操作后會通過printk將結果打印出來,這種情況下,時間增量往往反映的是信息對應過程的耗時;但有些時候,內核是在調用printk輸出信息后才開始相應的過程,那么報告中內核信息相應過程的時間消耗對應的是其下一行的時間增量;還有一些時候,時間消耗在了兩次內核信息輸出之間的某個不確定的時段,這樣時間增量可能就完全無法通過內核信息反應出來了。
所以,為了準確判斷真正的時間消耗,我們需要結合內核源碼進行分析。必要的時候,例如上述第三種情形下,還得自己在源碼中插入printk打印,以進一步確定實際的時間消耗過程。
網站首頁 |網站簡介 | 關于我們 | 廣告業務 | 投稿信箱
Copyright © 2000-2020 www.xnbt.net All Rights Reserved.
中國網絡消費網 版權所有 未經書面授權 不得復制或建立鏡像
聯系郵箱:920 891 263@qq.com
主站蜘蛛池模板: 久久综合九色欧美综合狠狠| 亚洲春黄在线观看| 国产人妖ts在线观看免费视频| 欧美巨大xxxx做受高清| 萌白酱喷水视频| 国产麻豆剧果冻传媒一区| 精品国产柚木在线观看| 中文字幕一精品亚洲无线一区 | 337p中国人体啪啪| 91视频最新地址| 香蕉视频在线观看免费国产婷婷 | 久久国产成人精品国产成人亚洲| 欧美激情一区二区三区| 男男高h粗暴黄车文| 久久国产精品-国产精品| 国产精自产拍久久久久久蜜| 亚洲国产天堂久久综合2261144| 4480yy私人影院论| 老师的胸好软| 性欧美黑人巨大videos| 中文在线√天堂| 免费一级毛片在线播放不收费| 健身私教干了我好几次| 用被子自w到高c方法| 免费国产成人午夜私人影视| 免费一级黄色录像影片| 国产精品久久久久影院| 精品天海翼一区二区| 一本一本久久a久久精品综合麻豆 天天天天做夜夜夜做 | 国语精品高清在线观看| 一个人hd高清在线观看免费直播| 久久精品国产色蜜蜜麻豆| 久久久国产99久久国产久| 国产三级在线观看视频不卡| 亚洲欧洲综合在线| 伊人久久精品久久亚洲一区| 免费日韩三级电影| 美女被羞羞网站免费下载| 国产欧美一区二区三区观看| 波多野结衣porn| 大雄的性生活|