《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Linux系統啟動時間優化方案
Linux系統啟動時間優化方案
摘要: Linux系統啟動時間優化方案,(1)首先是對Linux啟動過程的跟蹤和分析,生成詳細的啟動時間報告。較為簡單可行的方式是通過PrintkTime功能為啟動過程的所有內核信息增加時間戳,便于匯總分析。PrintkTime最早為CELF所提供的一個內核補丁,在后
Abstract:
Key words :

(1)首先是對Linux啟動過程的跟蹤和分析,生成詳細的啟動時間報告。

  較為簡單可行的方式是通過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打印,以進一步確定實際的時間消耗過程。

以下是我上次裁減后Linux內核的啟動分析:

 

  內核啟動總時間: 6.188s

  關鍵的耗時部分:

  1) 0.652s - Timer,IRQ,Cache,Mem Pages等核心部分的初始化

  2) 0.611s - 內核與RTC時鐘同步

  3) 0.328s - 計算Calibrating Delay(4個CPU核心的總消耗)

  4) 0.144s - 校準APIC時鐘

  5) 0.312s - 校準Migration Cost

  6) 3.520s - Intel E1000網卡初始化

  下面,將針對上述各部分進行逐一分析和化解。

  (3)接下來,進行具體的分項優化。

  CELF已經提出了一整套針對消費類電子產品所使用的嵌入式Linux的啟動優化方案,但是由于面向不同應用,所以我們只能部分借鑒他們的經驗,針對自己面對的問題作出具體的分析和嘗試。

  內核關鍵部分(Timer、IRQ、Cache、Mem Pages……)的初始化目前暫時沒有比較可靠和可行的優化方案,所以暫不考慮。

  對于上面分析結果中的 2、3 兩項,CELF已有專項的優化方案:“RTCNoSync”和“PresetLPJ”。

  前者通過屏蔽啟動過程中所進行的RTC時鐘同步或者將這一過程放到啟動后進行(視具體應用對時鐘精度的需求而定),實現起來比較容易,但需要為內核打補丁。似乎CELF目前的工作僅僅是去掉了該過程,而沒有實現所提到的“延后”處理RTC時鐘的同步??紤]到這個原因,我的方案中暫時沒有引入這一優化(畢竟它所帶來的時間漂移已經達到了“秒”級),繼續關注中。

  后者是通過在啟動參數中強制指定LPJ值而跳過實際的計算過程,這是基于LPJ值在硬件條件不變的情況下不會變化的考慮。所以在正常啟動后記錄下內核信息中的“Calibrating Delay”數值后就可以在啟動參數中以下面的形式強制指定LPJ值了:

  lpj=9600700

  上面分析結果中的 4、5 兩項都是SMP初始化的一部分,因此不在CELF研究的范疇(或許將來會有采用多核的MP4出現?……),只能自力更生了。研究了一下SMP的初始化代碼,發現“Migration Cost”其實也可以像“Calibrating Delay”采用預置的方式跳過校準時間。方法類似,最后在內核啟動參數中增加:

  migration_cost=4000,4000

  而Intel的網卡驅動初始化優化起來就比較麻煩了,雖然也是開源,但讀硬件驅動完全不比讀一般的C代碼,況且建立在如此膚淺理解基礎上的“優化”修改也實在難保萬全?;诳煽啃缘目紤],我最終在兩次嘗試均告失敗后放棄了這一條路。那么,換一個思維角度,可以借鑒CELF在“ParallelRCScripts”方案中的“并行初始化”思想,將網卡驅動獨立編譯為模塊,放在初始化腳本中與其它模塊和應用同步加載,從而消除Probe阻塞對啟動時間的影響??紤]到應用初始化也可能使用到網絡,而在我們的實際硬件環境中,只有eth0是供應用使用的,因此需要將第一個網口初始化的0.3s時間計算在內。

  除了在我的方案中所遇到的上述各優化點,CELF還提出了一些你可能會感興趣的有特定針對性的專項優化,如:

  ShortIDEDelays - 縮短IDE探測時長(我的應用場景中不包含硬盤,所以用不上)

  KernelXIP - 直接在ROM或Flash中運行內核(考慮到兼容性因素,未采用)

  IDENoProbe - 跳過未連接設備的IDE口

  OptimizeRCScripts - 優化initrd中的linuxrc腳本(我采用了BusyBox更簡潔的linuxrc)

  以及其它一些尚處于設想階段的優化方案,感興趣的朋友可以訪問CELF Developer Wiki了解詳情。

  (4)優化結果

  經過上述專項優化,以及對inittab、rcS腳本的冗余裁減,整個Linux內核的啟動時間從優化前的 6.188s 下降到了最終的 2.016s,如果不包含eth0的初始化,則僅需 1.708s(eth0初始化可以和系統中間件及部分應用加載并行),基本達到了既定目標。與Kexec配合,可以大大降低軟件故障導致的復位時間,有效的提升了產品的可靠性。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产一区二区三区高清播放| 久久综合色天天久久综合图片| 国产精品综合久久久| 欧美国产日韩在线| 国内精品久久久久久久97牛牛| 国产亚洲电影| 欧美亚洲视频在线观看| 欧美性开放视频| 日韩一二三区视频| 国产精品视频yy9099| 蜜臀99久久精品久久久久久软件| 欧美午夜国产| 欧美国产日韩在线观看| 久久久久久久999精品视频| 国产亚洲欧美aaaa| 激情久久五月| 亚洲激情第一页| 久久资源av| 亚洲国产欧美一区二区三区丁香婷| 亚洲色图综合久久| 久久激情五月激情| 国产精品每日更新在线播放网址| 久久久91精品国产| 欧美日本高清| 国产伦精品一区二区三区在线观看| 欧美破处大片在线视频| 国产精品女人久久久久久| 亚洲欧洲另类国产综合| 亚洲性感美女99在线| 久久午夜电影网| 午夜精品久久久久久久蜜桃app| 欧美日本不卡| 久久精品综合网| 亚洲大片精品永久免费| 欧美视频官网| 亚洲一区二区免费看| 蜜臀久久99精品久久久久久9| 一本到高清视频免费精品| 亚洲高清电影| 国内精品久久久久影院优| 亚洲国产日韩精品| 一区二区三区不卡视频在线观看| 国产欧美一区二区三区久久| 欧美日韩一区二区三区在线看| 亚洲电影免费观看高清完整版在线观看| 亚洲小说区图片区| 亚洲第一网站免费视频| 国产精品欧美日韩一区二区| 亚洲视频国产视频| 亚洲精品国产系列| 国产色产综合产在线视频| 9久re热视频在线精品| 欧美伦理视频网站| 校园春色国产精品| 久久精品一区中文字幕| 影音先锋日韩资源| 国产精品亚发布| 亚洲综合第一页| 老鸭窝91久久精品色噜噜导演| 亚洲免费伊人电影在线观看av| 国产精品乱人伦中文| 欧美三区免费完整视频在线观看| 久久精品国产亚洲精品| 韩曰欧美视频免费观看| 在线亚洲自拍| 欧美日韩中文字幕在线| 一区二区三区国产在线| 在线精品国精品国产尤物884a| 亚洲亚洲精品在线观看| 在线观看三级视频欧美| 欧美在线观看你懂的| 国产精品免费区二区三区观看| 亚洲人成网站在线观看播放| 国产一区在线看| 午夜精品一区二区三区电影天堂| 欧美日韩一区国产| 久久亚洲春色中文字幕久久久| 久久久久久久久久久成人| 亚洲最新在线视频| 亚洲精品视频啊美女在线直播| 久久久久久久成人| 美女脱光内衣内裤视频久久影院| 欧美日韩国产成人在线91| 黄色精品免费| 猛男gaygay欧美视频| 欧美日本在线观看| 亚洲天堂免费观看| 一本一本久久a久久精品牛牛影视| 欧美一区二区精品| 亚洲第一免费播放区| 亚洲自拍偷拍网址| 国产精品视频网址| 精品成人久久| 欧美一区日本一区韩国一区| 亚洲精品看片| 激情久久综合| 国产乱码精品一区二区三区忘忧草| 欧美午夜不卡在线观看免费| 亚洲女人av| 一区二区三区不卡视频在线观看| 欧美午夜电影在线观看| 亚洲一区二区三区成人在线视频精品| 欧美午夜精品久久久久久久| 亚洲午夜激情网页| 欧美精品在线视频观看| 欧美日韩一区二| 亚洲午夜女主播在线直播| 在线看国产一区| 蜜臀av国产精品久久久久| 国产视频久久| 欧美福利视频一区| 影音先锋久久| 国产日韩精品视频一区二区三区| 亚洲人成小说网站色在线| 国产九色精品成人porny| 亚洲国产美女久久久久| 欧美一区二区三区久久精品茉莉花| 亚洲第一视频网站| 亚洲美女区一区| 久久精品噜噜噜成人av农村| 国产精品第2页| 亚洲老司机av| 久久久久.com| 国产欧美一区二区三区在线老狼| 国产亚洲一区二区三区| 日韩亚洲在线观看| 欧美一级大片在线免费观看| 免费一级欧美片在线播放| 亚洲国产精品ⅴa在线观看| 亚洲国产欧美在线| 亚洲一区影音先锋| 亚洲国产精品高清久久久| 欧美午夜久久| 亚洲天堂免费在线观看视频| 久久婷婷人人澡人人喊人人爽| 亚洲日本黄色| 久久久精品日韩欧美| 亚洲黄色成人网| 一区二区三区中文在线观看| 亚洲国产天堂久久综合网| 麻豆精品精华液| 欧美激情一区二区三区高清视频| 久久久久久午夜| 久久久久久久综合| 欧美黄在线观看| 国产欧美三级| 久久九九电影| 最新国产拍偷乱拍精品| 久久久久久久久久看片| 欧美午夜片在线观看| 欧美成在线观看| 欧美电影免费观看网站| 国产情侣一区| 欧美+日本+国产+在线a∨观看| 久久精品视频在线看| 国产精品大片wwwwww| 亚洲一区三区电影在线观看| 亚洲欧美日韩精品久久| 欧美日韩精选| 欧美一级大片在线免费观看| 亚洲国产高潮在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美天堂亚洲电影院在线播放| 国精品一区二区| 亚洲高清在线观看一区| 亚洲在线视频一区| 亚洲国产精品久久久久| 国产综合第一页| 久久国产精品电影| 中国成人黄色视屏| 欧美日韩在线大尺度| 欧美激情aaaa| 亚洲女人av| 亚洲激情电影在线| 一区二区三区精品视频| 狠狠色狠色综合曰曰| 亚洲免费观看高清完整版在线观看| 久久综合久久综合久久| 国产精品theporn88| 欧美中文字幕视频在线观看| 亚洲天堂视频在线观看| 国产精品另类一区| 亚洲欧美国产精品桃花| 亚洲小少妇裸体bbw| 国产欧美视频在线观看| 国产日韩欧美在线播放| 国产午夜精品全部视频在线播放| aa成人免费视频| 国产精品播放| 午夜精品久久久久久久久久久久| 免费成人毛片| 国产乱码精品一区二区三区av| 亚洲一级片在线看| 亚洲欧美激情一区| 亚洲免费在线电影| 欧美伦理a级免费电影| 樱桃成人精品视频在线播放| 欧美日韩国产综合视频在线观看中文| 男女激情视频一区| 亚洲网站视频| 免费在线欧美视频| 亚洲一区二区在线观看视频| 欧美成人小视频| 午夜亚洲伦理| 国内精品免费午夜毛片| 久久久精品视频成人| 一本色道精品久久一区二区三区| 美女国产一区| 国产精品亚洲第一区在线暖暖韩国| 亚洲成人资源网| 这里是久久伊人| 久久成人亚洲| 欧美成人高清| 久久蜜桃香蕉精品一区二区三区| 99pao成人国产永久免费视频| 国产日韩一区二区三区在线| 亚洲色图制服丝袜| 欧美成在线观看| 国产伦一区二区三区色一情| 欧美日韩少妇| 亚洲综合色在线| 亚洲国产欧美日韩| 国产区在线观看成人精品| 国产精品毛片一区二区三区| 午夜免费电影一区在线观看| 国产精品久久久一区二区| 在线视频日本亚洲性| 久久欧美肥婆一二区| 欧美亚洲在线播放| 亚洲综合丁香| 久久精品人人做人人爽| 国产欧美日韩精品丝袜高跟鞋| 国产日韩欧美一区二区三区在线观看| 国产日韩在线一区| 日韩一级裸体免费视频| 蜜臀久久久99精品久久久久久| 亚洲精品123区| 亚洲日韩欧美视频| 欧美激情aaaa| 一卡二卡3卡四卡高清精品视频| 久久久久女教师免费一区| 国产伦精品一区二区三区照片91| 亚洲电影天堂av| 免费日韩精品中文字幕视频在线| 久久夜色撩人精品| 欧美日韩天天操| 美日韩精品视频免费看| 国产亚洲精品aa午夜观看| 欧美性做爰毛片| 国语自产精品视频在线看| 欧美在线视频全部完| 欧美精品激情blacked18| 欧美日韩在线第一页| 欧美日韩在线免费观看| 国产精品久久久久久久久果冻传媒| 国产精品美腿一区在线看| 亚洲一区二区在线视频| 欧美性事免费在线观看| 欧美激情综合网| 国产精品区二区三区日本| 国内免费精品永久在线视频| 欧美女激情福利| 国产日本欧美一区二区三区在线| 欧美国产亚洲视频| 美日韩精品视频| 欧美紧缚bdsm在线视频| 欧美一区日韩一区| 亚洲另类视频| 久久九九国产精品怡红院| 国产美女精品一区二区三区| 欧美福利在线| 亚洲精品午夜| 欧美精品电影在线| 激情久久五月| 亚洲国产精品久久久久秋霞蜜臀| 久久国产色av| 亚洲一区在线观看免费观看电影高清| 亚洲一区二区综合| 久久在线视频在线| 亚洲午夜精品久久久久久浪潮| 1024日韩| 国产精品每日更新| 欧美亚洲综合久久| 国产精品影片在线观看| 亚洲精品国产无天堂网2021| 久久久亚洲国产美女国产盗摄| 亚洲无限乱码一二三四麻| 日韩午夜电影av| 欧美四级在线观看| 在线成人欧美| 国产精品久久久久久久久免费桃花| 国产一区成人| 亚洲国产一区二区三区高清| 你懂的视频一区二区| 亚洲欧美制服另类日韩| 国产精品一区二区久久久| 国产精品亚洲人在线观看| 国产精品影片在线观看| 久久九九久精品国产免费直播| 国产精品日本精品| 亚洲精选国产| 久久久噜噜噜| 国产精品午夜视频| 国内精品视频一区| 国产在线观看91精品一区| 国产精品夜色7777狼人| 亚洲免费在线电影| 午夜精品久久久久久| 欧美丝袜一区二区三区| 亚洲人成人一区二区三区| 欧美国产第一页| 一本色道久久综合亚洲精品按摩| 亚洲一区二区三区久久| 国产欧美午夜| 欧美日韩亚洲视频| 日韩视频在线一区二区| 午夜精品久久久久99热蜜桃导演| 国产欧美综合在线| 亚洲国产综合在线| 在线视频一区二区| 日韩一级精品| 亚洲精选在线| 欧美激情女人20p| 亚洲国产一区二区三区青草影视| 亚洲国产黄色| 久久女同精品一区二区| 午夜在线a亚洲v天堂网2018| 亚洲激情另类|