新聞中心
用 systemd-analyze 洞悉并解決 linux 啟動(dòng)性能問(wèn)題。

創(chuàng)新互聯(lián)建站一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、成都網(wǎng)頁(yè)設(shè)計(jì)、微信小程序開(kāi)發(fā)、成都網(wǎng)站開(kāi)發(fā)、成都網(wǎng)站制作、成都軟件開(kāi)發(fā)、手機(jī)APP定制開(kāi)發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來(lái)見(jiàn)證!
系統(tǒng)管理員的一部分工作就是分析系統(tǒng)性能,發(fā)現(xiàn)并解決引起性能不佳、啟動(dòng)時(shí)間長(zhǎng)的問(wèn)題。系統(tǒng)管理員也需要去檢查 systemd 的配置和使用的其它方面。
systemd 初始化系統(tǒng)提供了 systemd-analyze 工具,可以幫助發(fā)現(xiàn)性能問(wèn)題和其他重要的 systemd 信息。在以前的文章《分析 systemd 日歷和時(shí)間跨度》里,我用了 systemd-analyze 去分析 systemd 里的時(shí)間戳和時(shí)間跨度,但是這個(gè)工具還有很多其他用法,這個(gè)文章里我將再揭示一些。
(LCTT 譯注:systemd 是目前主流 Linux 發(fā)行版采用的系統(tǒng)管理系統(tǒng))
(LCTT 譯注:為了區(qū)分英文的 “boot” 和 “startup” 的不同涵義,此處將 “boot” 翻譯為“引導(dǎo)”,“startup” 翻譯為“啟動(dòng)”。)
概述啟動(dòng)
Linux 啟動(dòng)過(guò)程是值得學(xué)習(xí)關(guān)注的地方,因?yàn)?nbsp;systemd-analyze 工具很多功能聚焦在啟動(dòng)startup過(guò)程。但是首先,要理解引導(dǎo)boot和啟動(dòng)startup。引導(dǎo)階段從 BIOS 加電自檢(POST)開(kāi)始,結(jié)束于內(nèi)核完成加載并控制主機(jī)系統(tǒng),然后是開(kāi)始了啟動(dòng)過(guò)程,也是 systemd 日志的開(kāi)始點(diǎn)。
這個(gè)系列的第二篇文章《理解 Linux 啟動(dòng)時(shí)的 systemd》中,我詳細(xì)討論了啟動(dòng)階段的內(nèi)容和過(guò)程。在這篇文章里,我想研究一下啟動(dòng)過(guò)程,看看需要多少時(shí)間和大部分時(shí)間花費(fèi)在哪里。
下面我將展示的結(jié)果來(lái)自我的主要工作站,這比虛擬機(jī)的結(jié)果要有趣得多。這個(gè)工作站包括一塊 華碩 TUF X299 Mark 2 主板、一個(gè)英特爾 i9-7960X CPU(16 核 32 線程),64 G 內(nèi)存。下面的一些命令非 root 用戶也可以使用,但是我在這篇文章里使用了 root 用戶,以避免在用戶之間切換。
檢查啟動(dòng)過(guò)程有幾種方法,最簡(jiǎn)單的 systemd-analyze 命令顯示了啟動(dòng)的幾個(gè)主要部分耗費(fèi)的時(shí)間,包括內(nèi)核啟動(dòng)、裝載運(yùn)行 initrd(即初始 ramdisk,這是一個(gè)用來(lái)初始化一些硬件、掛載 / 根文件系統(tǒng)的臨時(shí)系統(tǒng)鏡像),還有用戶空間(加載所有使主機(jī)達(dá)到可用狀態(tài)的程序和守護(hù)程序)。如果沒(méi)有像該命令傳遞子命令,默認(rèn)是 systemd-analyze time:
[root@david ~]$ systemd-analyze
Startup finished in 53.921s (firmware) + 2.643s (loader) + 2.236s (kernel) + 4.348s (initrd) + 10.082s (userspace) = 1min 13.233s
graphical.target reached after 10.071s in userspace
[root@david ~]#
這個(gè)輸出中最值得注意的數(shù)據(jù)是在固件(BIOS)中花費(fèi)的時(shí)間:幾乎 54 秒。這是一個(gè)不太正常的時(shí)間,我的其他物理系統(tǒng)都沒(méi)有花費(fèi)這么長(zhǎng)的時(shí)間來(lái)通過(guò) BIOS。
我的 System76 Oryx Pro 筆記本在 BIOS 階段只花了 8.506 秒,我家里所有的系統(tǒng)都在 10 秒以內(nèi)。在線搜索一陣之后,我發(fā)現(xiàn)這塊主板以其超長(zhǎng)的 BIOS 引導(dǎo)時(shí)間而聞名。我的主板從不“馬上啟動(dòng)”,總是掛起,我需要關(guān)機(jī)再開(kāi)機(jī),BIOS 報(bào)錯(cuò),按 F1 進(jìn)入 BIOS 設(shè)置,選擇要引導(dǎo)的驅(qū)動(dòng)器完成引導(dǎo),多花費(fèi)的時(shí)間就是這樣用掉的。
不是所有主機(jī)都會(huì)顯示固件數(shù)據(jù)(LCTT 譯注:固件引導(dǎo)中不涉及 systemd)。我的不科學(xué)的實(shí)驗(yàn)使我相信,這個(gè)數(shù)據(jù)只顯示給英特爾 9 代或以上的處理器。但這可能是不正確的。
這個(gè)關(guān)于引導(dǎo)、啟動(dòng)的概述提供了很好的(雖然有限)的信息,但是還有很多關(guān)于啟動(dòng)的信息,我將在下面描述。
分配責(zé)任
你可以用 systemd-analyze blame 來(lái)發(fā)現(xiàn)哪個(gè) systemd 單元的初始化時(shí)間最長(zhǎng)。其結(jié)果按照初始化時(shí)間長(zhǎng)短排序,從多到少:
[root@david ~]$ systemd-analyze blame
5.417s NetworkManager-wait-online.service
3.423s dracut-initqueue.service
2.715s systemd-udev-settle.service
2.519s fstrim.service
1.275s udisks2.service
1.271s smartd.service
996ms upower.service
637ms lvm2-monitor.service
533ms lvm2-pvscan@8:17.service
520ms dmraid-activation.service
460ms vboxdrv.service
396ms initrd-switch-root.service
<截?cái)啵簞h去了好多時(shí)間不長(zhǎng)的條目>
因?yàn)楹芏喾?wù)是并行開(kāi)始的,在 BIOS 之后所有單元加在一起的總數(shù)大大超過(guò)了 systemd-analyze time 匯總數(shù)。很多都是小數(shù),不能顯著的節(jié)省時(shí)間。
這個(gè)命令提供的數(shù)據(jù)指明了改善啟動(dòng)時(shí)間的辦法。無(wú)用的服務(wù)可以禁用(disable)。在這個(gè)啟動(dòng)過(guò)程中,似乎沒(méi)有任何一個(gè)服務(wù)需要花費(fèi)過(guò)長(zhǎng)的時(shí)間。你可能會(huì)在每次啟動(dòng)時(shí)看到不同的結(jié)果。(LCTT 譯注:并行啟動(dòng)服務(wù)的原因)
關(guān)鍵鏈
就像項(xiàng)目管理中的關(guān)鍵路徑一樣,關(guān)鍵鏈顯示了在啟動(dòng)過(guò)程中發(fā)生的時(shí)間關(guān)鍵的事件鏈(LCTT 譯注:systemd 可以定義服務(wù)間的依賴,構(gòu)成關(guān)鍵鏈)。如果啟動(dòng)緩慢,這些是你想查看的 systemd 單元,因?yàn)樗鼈兪菍?dǎo)致延遲的單元。這個(gè)工具不會(huì)顯示所有啟動(dòng)的單元,只顯示這個(gè)關(guān)鍵事件鏈中的單元。(LCTT 譯注:相當(dāng)于最短路徑。并不顯示依賴不在關(guān)鍵鏈上的服務(wù)單元)
[root@david ~]# systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.
graphical.target @10.071s
└─lxdm.service @10.071s
└─plymouth-quit.service @10.047s +22ms
└─systemd-user-sessions.service @10.031s +7ms
└─remote-fs.target @10.026s
└─remote-fs-pre.target @10.025s
└─nfs-client.target @4.636s
└─gssproxy.service @4.607s +28ms
└─network.target @4.604s
└─NetworkManager.service @4.383s +219ms
└─dbus-broker.service @4.434s +136ms
└─dbus.socket @4.369s
└─sysinit.target @4.354s
└─systemd-update-utmp.service @4.345s +9ms
└─auditd.service @4.301s +42ms
└─systemd-tmpfiles-setup.service @4.254s +42ms
└─import-state.service @4.233s +19ms
└─local-fs.target @4.229s
└─Virtual.mount @4.019s +209ms
└─systemd-fsck@dev-mapper-vg_david2\x2dVirtual.service @3.742s +274ms
└─local-fs-pre.target @3.726s
└─lvm2-monitor.service @356ms +637ms
└─dm-event.socket @319ms
└─-.mount
└─system.slice
└─-.slice
[root@david ~]#
前面有 @ 的數(shù)字表示單元激活開(kāi)始啟動(dòng)所使用的絕對(duì)秒數(shù)。前面有 + 的數(shù)字顯示單元啟動(dòng)所需的時(shí)間。
系統(tǒng)狀態(tài)
有時(shí)候你需要確定系統(tǒng)的當(dāng)前狀態(tài),systemd-analyze dump 命令轉(zhuǎn)儲(chǔ)了當(dāng)前系統(tǒng)狀態(tài)的大量數(shù)據(jù)。有主要的啟動(dòng)時(shí)間戳,一個(gè)每個(gè) systemd 單元的列表,并對(duì)每個(gè)單元狀態(tài)進(jìn)行了完整描述:
[root@david ~]# systemd-analyze dump
Timestamp firmware: 1min 7.983523s
Timestamp loader: 3.872325s
Timestamp kernel: Wed 2020-08-26 12:33:35 EDT
Timestamp initrd: Wed 2020-08-26 12:33:38 EDT
Timestamp userspace: Wed 2020-08-26 12:33:42 EDT
Timestamp finish: Wed 2020-08-26 16:33:56 EDT
Timestamp security-start: Wed 2020-08-26 12:33:42 EDT
Timestamp security-finish: Wed 2020-08-26 12:33:42 EDT
Timestamp generators-start: Wed 2020-08-26 16:33:42 EDT
Timestamp generators-finish: Wed 2020-08-26 16:33:43 EDT
Timestamp units-load-start: Wed 2020-08-26 16:33:43 EDT
Timestamp units-load-finish: Wed 2020-08-26 16:33:43 EDT
Timestamp initrd-security-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-security-finish: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-generators-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-generators-finish: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-units-load-start: Wed 2020-08-26 12:33:38 EDT
Timestamp initrd-units-load-finish: Wed 2020-08-26 12:33:38 EDT
-> Unit system.slice:
Description: System Slice
Instance: n/a
Unit Load State: loaded
Unit Active State: active
State Change Timestamp: Wed 2020-08-26 12:33:38 EDT
Inactive Exit Timestamp: Wed 2020-08-26 12:33:38 EDT
Active Enter Timestamp: Wed 2020-08-26 12:33:38 EDT
Active Exit Timestamp: n/a
Inactive Enter Timestamp: n/a
May GC: no
<截?cái)啵簞h除了大量的輸出行>
在我的主工作站上,這個(gè)命令生成了 49680 行輸出,大概 1.66MB,這個(gè)命令非常快,不需要等待。
我很喜歡為各種連接設(shè)備(如存儲(chǔ)設(shè)備)提供的大量細(xì)節(jié)。每個(gè) systemd 單元有一個(gè)部分,包括各種運(yùn)行時(shí)、緩存、日志目錄的模式、啟動(dòng)單元的命令行、PID、開(kāi)始時(shí)間戳,以及內(nèi)存和文件限制等細(xì)節(jié)。
systemd-analyze 的手冊(cè)頁(yè)里展示了 systemd-analyze --user dump 選項(xiàng),目的是顯示用戶管理器的內(nèi)部狀態(tài)。但這個(gè)選項(xiàng)對(duì)我來(lái)說(shuō)是失敗的,互聯(lián)網(wǎng)搜索之后表明它可能有一些問(wèn)題。在 systemd 里,--user 實(shí)例用來(lái)管理和控制處理器給每個(gè)用戶的進(jìn)程資源。處理能力按分給每個(gè)用戶的進(jìn)程都屬于一個(gè)控制組,我將在以后的文章中介紹。
分析圖表
大多數(shù)啥都不懂的猥瑣老板(PHB)和許多優(yōu)秀的管理者都發(fā)現(xiàn)漂亮的圖表比我通常喜歡的基于文本的系統(tǒng)性能數(shù)據(jù)更容易閱讀和理解。但有時(shí),即使是我也喜歡一個(gè)好的圖表,systemd-analyze 提供了顯示引導(dǎo)/啟動(dòng)數(shù)據(jù)的 SVG 矢量圖表。
下面的命令生成一個(gè)矢量圖文件,來(lái)顯示在引導(dǎo)和啟動(dòng)過(guò)程發(fā)生的事件。生成這個(gè)文件只需要幾秒:
[root@david ~]# systemd-analyze plot > /tmp/bootup.svg
這個(gè)命令創(chuàng)建了一個(gè) SVG 文件,SVG 是一個(gè)定義了一系列圖形矢量的文本文件,包括 Image Viewer、Ristretto、Okular、Eye of Mate、LibreOffice Draw 在內(nèi)的這些可以生成圖形的應(yīng)用,可以用 SVG 來(lái)創(chuàng)建圖像。
我用 LibreOffice Draw(LCTT 譯注:一個(gè)辦公文檔軟件)來(lái)渲染一幅圖形。這張圖形很大,你需要放到很大才能看清細(xì)節(jié)。這里是它的一小部分:
圖中時(shí)間軸上零點(diǎn)(0)的左邊是引導(dǎo)階段,零點(diǎn)的右邊是啟動(dòng)階段。這一小部分顯示了內(nèi)核、initrd 和 initrd 啟動(dòng)的進(jìn)程。
這張圖一目了然地顯示了什么時(shí)候啟動(dòng),啟動(dòng)需要多少時(shí)間,以及主要的依賴項(xiàng)。關(guān)鍵路徑用紅色高亮顯示。
另外一個(gè)生成圖形輸出的命令是 systemd-analyze plot,它生成了 DOT 格式的文本依賴圖。產(chǎn)生的數(shù)據(jù)流通過(guò) dot 工具進(jìn)行處理,這是一組用來(lái)從多種類型數(shù)據(jù)中生成矢量圖文件的程序。這些 SVG 文件也能被上面列出的工具處理。
首先,生成文件,在我的主工作站花了 9 分鐘:
[root@david ~]# time systemd-analyze dot | dot -Tsvg > /tmp/test.svg
Color legend: black = Requires
dark blue = Requisite
dark grey = Wants
red = Conflicts
green = After
real 8m37.544s
user 8m35.375s
sys 0m0.070s
[root@david ~]#
我不會(huì)在這里重現(xiàn)輸出,因?yàn)楫a(chǎn)生的圖形就像一大堆意大利面條。但是你應(yīng)該試試,看看我想讓你看到的結(jié)果。
條件
在閱讀 systemd-analyze(1) 的手冊(cè)頁(yè)時(shí),我發(fā)現(xiàn)了一個(gè)更有趣的功能,但又有點(diǎn)通用,就是條件子命令。(是的,我確實(shí)在讀手冊(cè)頁(yè),而且我神奇地通過(guò)這種方式學(xué)到了很多東西?。?。這個(gè) condition 子命令能用來(lái)測(cè)試 systemd 單元文件中的條件和斷言。
它也可以在腳本中用來(lái)評(píng)估一個(gè)或多個(gè)條件 —— 如果所有條件都滿足,則返回 0;如果有條件不滿足,則返回 1。在其它情況下,它都會(huì)輸出其結(jié)果文本。
下面的例子來(lái)自手冊(cè)頁(yè),稍微有點(diǎn)復(fù)雜。它測(cè)試了內(nèi)核版本是否在 4.0 和 5.1 之間,主機(jī)是否使用交流電供電,系統(tǒng)結(jié)構(gòu)是否是 ARM,以及 /etc/os-release 目錄是否存在。我添加了 echo $? 來(lái)打印返回值。
[root@david ~]# systemd-analyze condition 'ConditionKernelVersion = ! <4.0' \
'ConditionKernelVersion = >=5.1' \
'ConditionACPower=|false' \
'ConditionArchitecture=|!arm' \
'AssertPathExists=/etc/os-release' ; \
echo $?
test.service: AssertPathExists=/etc/os-release succeeded.
Asserts succeeded.
test.service: ConditionArchitecture=|!arm succeeded.
test.service: ConditionACPower=|false failed.
test.service: ConditionKernelVersion=>=5.1 succeeded.
test.service: ConditionKernelVersion=!<4.0 succeeded.
Conditions succeeded.
0
[root@david ~]#
條件和斷言的列表大約從 systemd.unit(5) 手冊(cè)頁(yè)的第 600 行左右開(kāi)始。
列出配置文件
systemd-analyze 工具提供了一種將各種配置文件的內(nèi)容發(fā)送到 STDOUT 的方法,如圖所示。其基本目錄是 /etc/。
[root@david ~]# systemd-analyze cat-config systemd/system/display-manager.service
# /etc/systemd/system/display-manager.service
[Unit]
Description=LXDM (Lightweight X11 Display Manager)
#Documentation=man:lxdm(8)
[email protected]
After=systemd-user-sessions.service [email protected] plymouth-quit.service livesys-late.service
#Conflicts=plymouth-quit.service
[Service]
ExecStart=/usr/sbin/lxdm
Restart=always
IgnoreSIGPIPE=no
#BusName=org.freedesktop.lxdm
[Install]
Alias=display-manager.service
[root@david ~]#
打了這么多字卻和標(biāo)準(zhǔn)的 cat 命令做的差不多。我發(fā)現(xiàn)下一條命令小有幫助,它能在標(biāo)準(zhǔn)的 systemd 所在的位置搜索具有指定模式的內(nèi)容:
[root@david ~]# systemctl cat backup*
# /etc/systemd/system/backup.timer
# This timer unit runs the local backup program
# (C) David Both
# Licensed under GPL V2
#
[Unit]
Description=Perform system backups
Requires=backup.service
[Timer]
Unit=backup.service
OnCalendar=*-*-* 00:15:30
[Install]
WantedBy=timers.target
# /etc/systemd/system/backup.service
# This service unit runs the rsbu backup program
# By David Both
# Licensed under GPL V2
#
[Unit]
Description=Backup services using rsbu
Wants=backup.timer
[Service]
Type=oneshot
Environment="HOME=/root"
ExecStart=/usr/local/bin/rsbu -bvd1
ExecStart=/usr/local/bin/rsbu -buvd2
[Install]
WantedBy=multi-user.target
[root@david ~]#
這兩個(gè)命令在每個(gè)文件的內(nèi)容前面都有一個(gè)注釋行,包含文件的完整路徑和名稱。
單元文件檢查
當(dāng)創(chuàng)建了一個(gè)新的單元文件,可以利用 verify 子命令幫助檢查語(yǔ)法是否正確。它能指出來(lái)不正確的拼寫,并列出缺失的服務(wù)單元。
[root@david ~]# systemd-analyze verify /etc/systemd/system/backup.service
秉承 Unix/Linux 的“沉默是金”的宗旨,沒(méi)有輸出意味著掃描的文件中沒(méi)有錯(cuò)誤。
安全性
security 子命令檢查指定服務(wù)的安全級(jí)別。它只能針對(duì)服務(wù)單元,其他類型的單元文件不起作用:
[root@david ~]# systemd-analyze security display-manager
NAME DESCRIPTION >
PrivateNetwork= Service has access to the host's network >
User=/DynamicUser= Service runs as root user >
CapabilityBoundingSet=~CAP_SET(UID|GID|PCAP) Service may change UID/GID identities/capabilities >
CapabilityBoundingSet=~CAP_SYS_ADMIN Service has administrator privileges >
CapabilityBoundingSet=~CAP_SYS_PTRACE Service has ptrace() debugging abilities >
RestrictAddressFamilies=~AF_(INET|INET6) Service may allocate Internet sockets >
RestrictNamespaces=~CLONE_NEWUSER Service may create user namespaces >
RestrictAddressFamilies=~… Service may allocate exotic sockets >
CapabilityBoundingSet=~CAP_(CHOWN|FSETID|SETFCAP) Service may change file ownership/access mode/capabilities unres>
CapabilityBoundingSet=~CAP_(DAC_*|FOWNER|IPC_OWNER) Service may override UNIX file/IPC permission checks >
CapabilityBoundingSet=~CAP_NET_ADMIN Service has network configuration privileges >
CapabilityBoundingSet=~CAP_SYS_MODULE Service may load kernel modules
<截?cái)?
CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG Service may issue vhangup() >
CapabilityBoundingSet=~CAP_WAKE_ALARM Service may program timers that wake up the system >
RestrictAddressFamilies=~AF_UNIX Service may allocate local sockets >
→ Overall exposure level for backup.service: 9.6 UNSAFE ?
lines 34-81/81 (END)
是的,表情符是輸出的一部分。但是,當(dāng)然,許多服務(wù)需要幾乎完全訪問(wèn)所有的東西,以便完成它們的工作。我針對(duì)幾個(gè)服務(wù)運(yùn)行了這個(gè)程序,包括我自己的備份服務(wù);結(jié)果可能有所不同,但最底下一行似乎大多是一樣的。
這個(gè)工具對(duì)于在嚴(yán)格的安全環(huán)境檢查和修復(fù)用戶空間的服務(wù)單元是很有用的。我不認(rèn)為我們的大多數(shù)都能用到它。
最后總結(jié)
這個(gè)強(qiáng)力的工具提供了一些有趣而驚人的有用選項(xiàng)。本文探討的大部分內(nèi)容是關(guān)于使用 systemd-analyze 來(lái)深入了解 Linux 使用 systemd 的啟動(dòng)性能。它還可以分析 systemd 的其他方面。
其中有些工具的作用有限,有幾個(gè)應(yīng)該完全忘記。但在解決啟動(dòng)和其他 systemd 功能的問(wèn)題時(shí),大多數(shù)都能起到很好的作用。
資源
互聯(lián)網(wǎng)上關(guān)于 systemd 有很多信息,但是很多過(guò)于簡(jiǎn)略、晦澀,甚至是誤導(dǎo)。除了這篇文章中提到的資源外,以下網(wǎng)頁(yè)提供了關(guān)于systemd啟動(dòng)的更詳細(xì)和可靠的信息。這個(gè)列表在我開(kāi)始寫這一系列文章后有所增長(zhǎng),以反映我所做的研究。
- systemd.unit(5) 手冊(cè)頁(yè) 包含了一份單元文件部分及其配置選項(xiàng)的清單,并對(duì)每個(gè)部分進(jìn)行了簡(jiǎn)明的描述。
- Fedora 項(xiàng)目有一個(gè)很好的實(shí)用 systemd 指南。它包含了配置、管理和維護(hù)使用 systemd 的 Fedora 計(jì)算機(jī)所需的幾乎所有知識(shí)。
- Fedora 項(xiàng)目還有一份很好的 備忘錄,將舊的 SystemV 命令與 systemd 命令進(jìn)行了對(duì)照。
- Red Hat 文檔包含了對(duì) 單元文件結(jié)構(gòu) 的詳細(xì)描述和其他重要的信息。
- 關(guān)于 systemd 技術(shù)的細(xì)節(jié)和創(chuàng)建它的原因,可以去看 Freedesktop.org systemd 詳述。
- Linux.com 的“更多 systemd 樂(lè)趣”提供了很多高級(jí)的 systemd 信息和技巧。
此外,systemd 設(shè)計(jì)者和主要開(kāi)發(fā)者 Lennart Poettering 也為 Linux 系統(tǒng)管理員撰寫了一系列深度技術(shù)文檔,盡管這些文章寫于 2010 年 4 月到 2011 年 9 月,現(xiàn)在看也是非常適應(yīng)時(shí)宜。關(guān)于 systemd 及其生態(tài)系統(tǒng)的其他好文章,大部分都是基于這些文章的。
- Rethinking PID 1
- systemd for Administrators, Part I
- systemd for Administrators, Part II
- systemd for Administrators, Part III
- systemd for Administrators, Part IV
- systemd for Administrators, Part V
- systemd for Administrators, Part VI
- systemd for Administrators, Part VII
- systemd for Administrators, Part VIII
- systemd for Administrators, Part IX
- systemd for Administrators, Part X
- systemd for Administrators, Part XI
分享文章:Linux啟動(dòng)性能分析
鏈接分享:http://m.fisionsoft.com.cn/article/coeoogg.html


咨詢
建站咨詢
