
(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.baiwanxiang.net.cn All Rights Reserved.
中國網絡消費網 版權所有 未經書面授權 不得復制或建立鏡像
聯系郵箱:920 891 263@qq.com
主站蜘蛛池模板: 欧美色图久久 | 欧美精品在线播放 | 欧美成人三级在线 | 正在播放久久 | 欧美精品综合 | 色综合久久88 | 韩国黄色一级大片 | 在线成人免费观看 | 天堂网中文在线 | 天天综合在线视频 | 五月婷婷一区二区 | 理论片中文字幕 | 色婷婷一区二区 | 天天操综合 | 亚洲一区二区三区在线播放 | 精品免费一区二区 | 亚洲欧美另类色图 | 在线观看亚洲大片短视频 | 婷婷综合一区 | 国产免费福利 | 色综合久久88 | 欧美国产日韩一区二区三区 | 欧美偷拍第一页 | 成人小视频在线 | 成人黄色在线观看视频 | 日本一二三区在线视频 | 成人18视频免费69 | 日本国产一区二区三区 | www精品视频 | 久久噜噜噜| 日韩在线免费视频 | av片网站| 三级国产在线观看 | 欧美亚洲国产另类 | 亚洲成人三区 | 久久国产精品久久久 | 日韩污视频 | 黄色片网站在线播放 | 免费的黄色的网站 | 色偷偷综合网 | 不卡的毛片 |