iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

行程運作與硬體資源

作業系統運作時有很多層面要考量,在 Linux 核心中它用來負責進行硬體資源的調度,把合適的資源提供給行程使用。運作時涉及的層面眾多,對於 Linux 管理者來說,理解其內部運作能夠在維運時更能全面性的評估系統狀態。

在現今的基礎架構中,很多中小企業已轉為虛擬化機制,雖然這是一個趨勢,但是仍有不變的重點項目必須瞭解。首先我們要知道一個應用系統在運作時要滿足哪些需求,這些項目可能從端使用者或是其它主機來,以 Web 應用程式來說不見得只有應用程式本身,可能還包含了資料庫、網路或儲存等需求。每個資訊系統之所以能夠正常運作都是由基礎建設提供必要的實體資源,就算在虛擬化架構中,虛擬主機的規格也應視為基礎建設資源概念的一種,所以透過需求的產生,我們會評估該使用什麼樣的資源讓應用系統可以順利運作。

應用系統程式如何運作,這就要依賴作業系統核心來處理了,所以我們在管理 Linux 系統時就想常常聽到要觀查硬體資源的使用量,以確保有足夠的資源讓程式運作與提供服務。由於基礎建設需要投入一定的成本,所以企業營運時就會對此錙銖必較,當我們瞭解了這些運作原理後,也能夠在需求產生時能夠評估出可應付的資源規格,避免產出現低估或高估實際使用量的機率。

我們會在此針對幾個一般應用系統維運時的需求進行瞭解,然而關於 Linux 核心在系統資源的分配作業所要處理的範圍很廣,基本上可以獨出來成為一門學科,也超出了本書設定的內容,在此僅針對大方向廣義性的探討。

系統運作與硬體資源

現今的企業環境和高效能計算中,對硬體資源的需求日益複雜和精密。以下是一些重要的硬體組件和考量因素:

  • 處理器(CPU)

    • 單核心與多核心:多核心處理器可以同時處理多個行程,大大提高系統的並行處理能力。
    • 處理速度:CPU 的時鐘速度和架構決定了處理能力,是影響整體系統性能的重要因素。
  • 記憶體(RAM)

    • 容量:足夠的記憶體容量可以確保行程快速讀取和寫入數據,避免使用虛擬記憶體造成系統負載。
    • ECC RAM:錯誤校正碼記憶體可以自動更正數據錯誤,增強了系統的穩定性和可靠性,尤其適用於資料庫等重要應用。
  • 存儲設備

    • HDD 與 SSD:傳統硬碟(HDD)提供大容量存儲,但速度較慢;固態硬碟(SSD)則提供更快的讀寫速度,但成本較高。合理配置可平衡性能和成本。
    • I/O性能:存儲設備的讀寫速度直接影響到檔案操作和系統開機時間等,是系統效能的關鍵因素。
  • 網絡介面

    • 1G/10G 等網絡速度:不同的網路速度選擇符合不同的需求,如 10G 網路為數據中心和高頻寬需求提供了強大支援。
  • 輸入/輸出設備:考量使用者交互和操作效率,選擇合適的輸入/輸出設備。

了解和選擇適當的硬體資源是構建和維護高效、可靠和安全的 Linux 系統的基石。在企業和高性能計算環境中,這些選擇更是關係到整個組織的生產力和業務連續性。

行程運作與使用資源

在 Linux 作業系統中,行程是作業系統資源分配的基本單位。這些項目包含:

  • CPU 時間與多核心應用

    • CPU 時間分配:作業系統會依據優先級和公平性原則,分配每個行程在 CPU 上運行的時間。適當的分配策略可以提高系統的回應速度和效率。
    • 多核心利用:多核心處理器允許多個行程同時執行。作業系統的調度器必須考慮如何在多個核心之間分配行程,以實現最佳的負載平衡和資源利用。
  • 記憶體空間的使用與管理

    • 記憶體分配:每個行程需要一定的記憶體空間來存放指令和數據。作業系統必須確保這些空間的合理分配,避免記憶體的浪費或不足。
    • 虛擬記憶體機制:當實體記憶體不足時,作業系統可以利用硬碟空間作為虛擬記憶體,確保行程的繼續運作,但可能會降低性能。
  • I/O 操作與管理

    • 同步與非同步 I/O:同步 I/O 表示行程必需等 I/O 完成作業時才會繼續執行;非同步 I/O 則允許行程在等待 I/O 操作期間繼續執行其他任務。
    • I/O 緩衝與排隊:作業系統可能會使用緩衝區來暫存I/O數據,以便有效地安排和優化I/O操作。
    • I/O 裝置控制:作業系統需要處理行程對各種 I/O 裝置(例如硬碟、網路接口等)的訪問請求,協調共享資源,並處理可能的衝突。

這些資源的管理需要作業系統有高度的協調和調度能力。透過精確的資源控制,可以確保系統的穩定性、回應速度和效能。瞭解這些機制有助於我們在開發和維護系統時做出合適的解決方式。

作業系統核心工作

核心作為作業系統的心臟,負責管理和調度所有的硬體和軟體資源。以下為核心在行程運作時要處理的主要工作:

  • 行程調度

    • 多核心調度:核心必須妥善分配行程至多個核心上運行,確保資源的最佳利用,並避免某一核心過載而其他核心閒置。
    • 公平與效率:通過合理的調度策略,核心需要平衡每個行程的運行時間,確保整體效能的同時也保持系統的公平性和響應性。
  • 記憶體管理

    • 分配與回收:核心負責記憶體空間的分配和回收,避免行程之間的干擾,並確保記憶體的高效使用。
    • 虛擬記憶體管理:核心使用分頁或分段等機制來虛擬化記憶體,允許行程使用超出物理記憶體大小的地址空間。
  • I/O操作的控制與優化

    • I/O 調度:核心對 I/O 請求進行排序和優化,減少裝置的尋道時間,提高 I/O 效能。
    • 裝置驅動管理:核心通過驅動程式與硬體進行交互,為行程提供統一的 I/O 接口,隱藏硬體的具體細節。
  • 資源分配與監控

    • 資源限制與配額:核心可以設定各個行程的資源使用限制,例如 CPU 使用率、記憶體容量等,以防止單一行程耗盡系統資源。
    • 效能監測:核心需要持續監控行程的資源使用情況,並根據需要進行調整和優化,以確保系統的穩定運作。
  • 安全和隔離

    • 權限管理:核心通過存取控制列表等機制,控制行程對系統資源的存取權限,確保安全。
    • 行程隔離:透過記憶體保護和命名空間隔離等技術,核心可以阻止行程之間的未授權存取,保護系統的完整性。

我們可以看到核心在行程運作時的需要處理資源的複雜性和多樣性。它不僅要協調硬體資源的分配和使用,還要考慮效能、安全和穩定性等多方面的需求。這些核心工作是支撐 Linux 作業系統功能和性能的基石,也是系統管理和開發人員必須概括性理解的重要知識。


上一篇
Day 14: 管線應用
下一篇
Day 16: 系統資源使用情況
系列文
Linux 升華:初學者的探索到專家的洞察30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言