這篇文章主要介紹怎么進(jìn)行Linux啟動時(shí)間優(yōu)化,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、鹿寨網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為鹿寨等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
快速啟動嵌入式設(shè)備或電信設(shè)備,對于時(shí)間要求緊迫的應(yīng)用程序是至關(guān)重要的,并且在改善用戶體驗(yàn)方面也起著非常重要的作用。這個(gè)文章給予一些關(guān)于如何增強(qiáng)任意設(shè)備的啟動時(shí)間的重要技巧。
快速啟動或快速重啟在各種情況下起著至關(guān)重要的作用。為了保持所有服務(wù)的高可用性和更好的性能,嵌入式設(shè)備的快速啟動至關(guān)重要。設(shè)想有一臺運(yùn)行著沒有啟用快速啟動的 Linux 操作系統(tǒng)的電信設(shè)備,所有依賴于這個(gè)特殊嵌入式設(shè)備的系統(tǒng)、服務(wù)和用戶可能會受到影響。這些設(shè)備維持其服務(wù)的高可用性是非常重要的,為此,快速啟動和重啟起著至關(guān)重要的作用。
一臺電信設(shè)備的一次小故障或關(guān)機(jī),即使只是幾秒鐘,都可能會對無數(shù)互聯(lián)網(wǎng)上的用戶造成破壞。因此,對于很多對時(shí)間要求嚴(yán)格的設(shè)備和電信設(shè)備來說,在它們的設(shè)備中加入快速啟動的功能以幫助它們快速恢復(fù)工作是非常重要的。讓我們從圖 1 中理解 Linux 啟動過程。
圖 1:啟動過程
在對機(jī)器做出更改之前,用戶應(yīng)注意許多因素。其中包括計(jì)算機(jī)的當(dāng)前啟動速度,以及占用資源并增加啟動時(shí)間的服務(wù)、進(jìn)程或應(yīng)用程序。
為監(jiān)視啟動速度和在啟動期間啟動的各種服務(wù),用戶可以使用下面的命令來安裝:
sudo apt-get install pybootchartgui
你每次啟動時(shí),啟動圖會在日志中保存一個(gè) png 文件,使用戶能夠查看該 png 文件來理解系統(tǒng)的啟動過程和服務(wù)。為此,使用下面的命令:
cd /var/log/bootchart
用戶可能需要一個(gè)應(yīng)用程序來查看 png 文件。Feh 是一個(gè)面向控制臺用戶的 X11 圖像查看器。不像大多數(shù)其它的圖像查看器,它沒有一個(gè)精致的圖形用戶界面,但它只用來顯示圖片。Feh 可以用于查看 png 文件。你可以使用下面的命令來安裝它:
sudo apt-get install feh
你可以使用 feh xxxx.png
來查看 png 文件。
圖 2:啟動圖
圖 2 顯示了一個(gè)正在查看的引導(dǎo)圖 png 文件。
但是,對于 Ubuntu 15.10 以后的版本不再需要引導(dǎo)圖。為獲取關(guān)于啟動速度的簡短信息,使用下面的命令:
systemd-analyze
圖 3:systemd-analyze 的輸出
圖表 3 顯示命令 systemd-analyze
的輸出。
命令 systemd-analyze blame
用于根據(jù)初始化所用的時(shí)間打印所有正在運(yùn)行的單元的列表。這個(gè)信息是非常有用的,可用于優(yōu)化啟動時(shí)間。systemd-analyze blame
不會顯示服務(wù)類型為簡單(Type=simple
)的服務(wù),因?yàn)?systemd 認(rèn)為這些服務(wù)應(yīng)是立即啟動的;因此,無法測量初始化的延遲。
圖 4:systemd-analyze blame 的輸出
圖 4 顯示 systemd-analyze blame
的輸出。
下面的命令打印時(shí)間關(guān)鍵的服務(wù)單元的樹形鏈條:
command systemd-analyze critical-chain
圖 5 顯示命令 systemd-analyze critical-chain
的輸出。
圖 5:systemd-analyze critical-chain 的輸出
下面顯示的是一些可以減少啟動時(shí)間的各種步驟。
BUM 是一個(gè)運(yùn)行級配置編輯器,允許在系統(tǒng)啟動或重啟時(shí)配置初始化服務(wù)。它顯示了可以在啟動時(shí)啟動的每個(gè)服務(wù)的列表。用戶可以打開和關(guān)閉各個(gè)服務(wù)。BUM 有一個(gè)非常清晰的圖形用戶界面,并且非常容易使用。
在 Ubuntu 14.04 中,BUM 可以使用下面的命令安裝:
sudo apt-get install bum
為在 15.10 以后的版本中安裝它,從鏈接 http://apt.ubuntu.com/p/bum 下載軟件包。
以基本的服務(wù)開始,禁用掃描儀和打印機(jī)相關(guān)的服務(wù)。如果你沒有使用藍(lán)牙和其它不想要的設(shè)備和服務(wù),你也可以禁用它們中一些。我強(qiáng)烈建議你在禁用相關(guān)的服務(wù)前學(xué)習(xí)服務(wù)的基礎(chǔ)知識,因?yàn)檫@可能會影響計(jì)算機(jī)或操作系統(tǒng)。圖 6 顯示 BUM 的圖形用戶界面。
圖 6:BUM
要編輯 rc 文件,你需要轉(zhuǎn)到 rc 目錄。這可以使用下面的命令來做到:
cd /etc/init.d
然而,訪問 init.d
需要 root 用戶權(quán)限,該目錄基本上包含的是開始/停止腳本,這些腳本用于在系統(tǒng)運(yùn)行時(shí)或啟動期間控制(開始、停止、重新加載、啟動啟動)守護(hù)進(jìn)程。
在 init.d
目錄中的 rc
文件被稱為運(yùn)行控制腳本。在啟動期間,init
執(zhí)行 rc
腳本并發(fā)揮它的作用。為改善啟動速度,我們可以更改 rc
文件。使用任意的文件編輯器打開 rc
文件(當(dāng)你在 init.d
目錄中時(shí))。
例如,通過輸入 vim rc
,你可以更改 CONCURRENCY=none
為 CONCURRENCY=shell
。后者允許某些啟動腳本同時(shí)執(zhí)行,而不是依序執(zhí)行。
在最新版本的內(nèi)核中,該值應(yīng)該被更改為 CONCURRENCY=make?le
。
圖 7 和圖 8 顯示編輯 rc
文件前后的啟動時(shí)間比較。可以注意到啟動速度有所提高。在編輯 rc
文件前的啟動時(shí)間是 50.98 秒,然而在對 rc
文件進(jìn)行更改后的啟動時(shí)間是 23.85 秒。
但是,上面提及的更改方法在 Ubuntu 15.10 以后的操作系統(tǒng)上不工作,因?yàn)槭褂米钚聝?nèi)核的操作系統(tǒng)使用 systemd 文件,而不再是 init.d
文件。
圖 7:對 rc 文件進(jìn)行更改之前的啟動速度
圖 8:對 rc 文件進(jìn)行更改之后的啟動速度
E4rat 代表 e4減少訪問時(shí)間(僅在 ext4 文件系統(tǒng)的情況下)。它是由 Andreas Rid 和 Gundolf Kiefer 開發(fā)的一個(gè)項(xiàng)目。E4rat 是一個(gè)通過碎片整理來幫助快速啟動的應(yīng)用程序。它還會加速應(yīng)用程序的啟動。E4rat 使用物理文件的重新分配來消除尋道時(shí)間和旋轉(zhuǎn)延遲,因而達(dá)到較高的磁盤傳輸速度。
E4rat 可以 .deb 軟件包形式獲得,你可以從它的官方網(wǎng)站 http://e4rat.sourceforge.net/ 下載。
Ubuntu 默認(rèn)安裝的 ureadahead 軟件包與 e4rat 沖突。因此必須使用下面的命令安裝這幾個(gè)軟件包:
sudo dpkg purge ureadahead ubuntu-minimal
現(xiàn)在使用下面的命令來安裝 e4rat 的依賴關(guān)系:
sudo apt-get install libblkid1 e2fslibs
打開下載的 .deb 文件,并安裝它。現(xiàn)在需要恰當(dāng)?shù)厥占瘑訑?shù)據(jù)來使 e4rat 工作。
遵循下面所給的步驟來使 e4rat 正確地運(yùn)行并提高啟動速度。
在啟動期間訪問 Grub 菜單。這可以在系統(tǒng)啟動時(shí)通過按住 shift
按鍵來完成。
選擇通常用于啟動的選項(xiàng)(內(nèi)核版本),并按 e
。
查找以 linux /boot/vmlinuz
開頭的行,并在該行的末尾添加下面的代碼(在句子的最后一個(gè)字母后按空格鍵):init=/sbin/e4rat-collect or try - quiet splash vt.handsoff =7 init=/sbin/e4rat-collect
。
現(xiàn)在,按 Ctrl+x
來繼續(xù)啟動。這可以讓 e4rat 在啟動后收集數(shù)據(jù)。在這臺機(jī)器上工作,并在接下來的兩分鐘時(shí)間內(nèi)打開并關(guān)閉應(yīng)用程序。
通過轉(zhuǎn)到 e4rat 文件夾,并使用下面的命令來訪問日志文件:cd /var/log/e4rat
。
如果你沒有找到任何日志文件,重復(fù)上面的過程。一旦日志文件就緒,再次訪問 Grub 菜單,并對你的選項(xiàng)按 e
。
在你之前已經(jīng)編輯過的同一行的末尾輸入 single
。這可以讓你訪問命令行。如果出現(xiàn)其它菜單,選擇恢復(fù)正常啟動(Resume normal boot)。如果你不知為何不能進(jìn)入命令提示符,按 Ctrl+Alt+F1
組合鍵。
在你看到登錄提示后,輸入你的登錄信息。
現(xiàn)在輸入下面的命令:sudo e4rat-realloc /var/lib/e4rat/startup.log
。此過程需要一段時(shí)間,具體取決于機(jī)器的磁盤速度。
現(xiàn)在使用下面的命令來重啟你的機(jī)器:sudo shutdown -r now
。
現(xiàn)在,我們需要配置 Grub 來在每次啟動時(shí)運(yùn)行 e4rat。
使用任意的編輯器訪問 grub 文件。例如,gksu gedit /etc/default/grub
。
查找以 GRUB CMDLINE LINUX DEFAULT=
開頭的一行,并在引號之間和任何選項(xiàng)之前添加下面的行:init=/sbin/e4rat-preload 18
。
它應(yīng)該看起來像這樣:GRUB CMDLINE LINUX DEFAULT = init=/sbin/e4rat- preload quiet splash
。
保存并關(guān)閉 Grub 菜單,并使用 sudo update-grub
更新 Grub 。
重啟系統(tǒng),你將發(fā)現(xiàn)啟動速度有明顯變化。
圖 9 和圖 10 顯示在安裝 e4rat 前后的啟動時(shí)間之間的差異??勺⒁獾絾铀俣鹊奶岣摺T谑褂?e4rat 前啟動所用時(shí)間是 22.32 秒,然而在使用 e4rat 后啟動所用時(shí)間是 9.065 秒。
圖 9:使用 e4rat 之前的啟動速度
圖 10:使用 e4rat 之后的啟動速度
使用很小的調(diào)整也可以達(dá)到良好的啟動速度,下面列出其中兩個(gè)。
使用固態(tài)設(shè)備而不是普通的硬盤或者其它的存儲設(shè)備將肯定會改善啟動速度。SSD 也有助于加快文件傳輸和運(yùn)行應(yīng)用程序方面的速度。
圖形用戶界面、桌面圖形和窗口動畫占用大量的資源。禁用圖形用戶界面是獲得良好的啟動速度的另一個(gè)好方法。
以上是“怎么進(jìn)行Linux啟動時(shí)間優(yōu)化”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!