云計算加強計算能力的優化技術有以下這些:
實時性內核技術:標準的操作系統內核是通過時間片輪詢的方法為多個任務分配CPU,并通過搶占的機制來確保高優先級的任務能夠優先獲得CPU資源,但是不是所有的請求都能夠搶占資源,如中斷請求。一般情況下,標準的Linux內核能夠提供幾到幾十微秒級別的中斷響應時延,但是具體時延具有不確定性。當數據平面網元對性能要求比較苛刻時,這個不確定性可能會導致嚴重后果。通過對內核的實時性補丁,可以使其滿足硬實時系統的要求。
硬件輔助虛擬化技術:CPU工作模式存在不同的特權級別。宿主OS工作在Ring0,擁有對CPU的完全權限,而客戶OS一般工作在Ring1~Ring3,無權執行部分特權指令。早期的虛擬化技術需要通過宿主OS來實時監控并截獲客戶OS產生的特權指令,由宿主OS執行后再將結果返回給客戶OS,這種由客戶OS純軟件模擬的工作模式效率極低,無法勝任數據面網元的性能要求。打開CPU的硬件輔助虛擬化功能,利用CPU已有的虛擬化技術,消除宿主OS代替客戶OS來聽取、中斷與執行特定指令的需要,不僅能夠有效減少宿主OS干預,還為宿主OS與客戶OS之間的傳輸平臺控制提供有力的硬件支持,這樣在需要宿主OS干預時,將實現更加快速、可靠和安全的切換。
CPU核心綁定技術:在多路多核處理器的服務器環境下,操作系統進行多任務處理時,傳統的做法是將服務器CPU劃分成時間片,并將任務按不同優先級進行調度,為每個任務分配一個或多個時間片,在每個時間片內由對應的CPU處理任務。但同一個任務在不同時間可能會被調度給不同CPU核來處理,這就導致緩存的命中率過低,從而降低CPU性能。
非均勻存儲器訪問親和技術:目前主流的服務器均采用NUMA架構,一顆物理CPU就是一個NUMA節點,每個NUMA節點都有各自的本地內存,CPU既可訪問本地內存,也可以訪問其他NUMA節點的內存,但遠程內存訪問的性能遠低于本地內存訪問。而數據平面網元虛擬機一般是多線程的,每個線程的計算由不同的CPU核來完成,當這些線程被調度到位于不同NUMA節點的CPU核時,不可避免地會出現遠程內存訪問的情況,從而降低CPU性能。可以用Hypervisor的NUMA親和性技術,將數據平面網元的線程調度到同一個NUMA節點的多個核心來處理。但是,一旦虛擬機遷移后,需要有其他的機制來保證數據平面網元遷移后的NUMA親和性。
巨頁內存技術:操作系統對內存的管理是通過分頁來實現的,一個標準的內存頁大小是4KB,每個內存頁操作系統都會為其分配一個物理地址,而數據平面網元虛擬機是通過虛擬地址來訪問為其分配的內存頁的。宿主OS負責完成虛擬地址到物理地址的映射。虛擬地址到物理地址的映射關系保存在內存頁表中,同時CPU的快表可保存經常訪問的地址映射。由于TLB具備比內存高得多的性能,使得TLB快表的命中率成了提升內存性能的關鍵。但是,NFV場景下服務器的內存容量一般都比較大,而TLB可以保存的地址數量有限,造成TLB命中率比較低。
回答所涉及的環境:聯想天逸510S、Windows 10。
云計算加強計算能力的優化技術有以下這些:
實時性內核技術:標準的操作系統內核是通過時間片輪詢的方法為多個任務分配CPU,并通過搶占的機制來確保高優先級的任務能夠優先獲得CPU資源,但是不是所有的請求都能夠搶占資源,如中斷請求。一般情況下,標準的Linux內核能夠提供幾到幾十微秒級別的中斷響應時延,但是具體時延具有不確定性。當數據平面網元對性能要求比較苛刻時,這個不確定性可能會導致嚴重后果。通過對內核的實時性補丁,可以使其滿足硬實時系統的要求。
硬件輔助虛擬化技術:CPU工作模式存在不同的特權級別。宿主OS工作在Ring0,擁有對CPU的完全權限,而客戶OS一般工作在Ring1~Ring3,無權執行部分特權指令。早期的虛擬化技術需要通過宿主OS來實時監控并截獲客戶OS產生的特權指令,由宿主OS執行后再將結果返回給客戶OS,這種由客戶OS純軟件模擬的工作模式效率極低,無法勝任數據面網元的性能要求。打開CPU的硬件輔助虛擬化功能,利用CPU已有的虛擬化技術,消除宿主OS代替客戶OS來聽取、中斷與執行特定指令的需要,不僅能夠有效減少宿主OS干預,還為宿主OS與客戶OS之間的傳輸平臺控制提供有力的硬件支持,這樣在需要宿主OS干預時,將實現更加快速、可靠和安全的切換。
CPU核心綁定技術:在多路多核處理器的服務器環境下,操作系統進行多任務處理時,傳統的做法是將服務器CPU劃分成時間片,并將任務按不同優先級進行調度,為每個任務分配一個或多個時間片,在每個時間片內由對應的CPU處理任務。但同一個任務在不同時間可能會被調度給不同CPU核來處理,這就導致緩存的命中率過低,從而降低CPU性能。
非均勻存儲器訪問親和技術:目前主流的服務器均采用NUMA架構,一顆物理CPU就是一個NUMA節點,每個NUMA節點都有各自的本地內存,CPU既可訪問本地內存,也可以訪問其他NUMA節點的內存,但遠程內存訪問的性能遠低于本地內存訪問。而數據平面網元虛擬機一般是多線程的,每個線程的計算由不同的CPU核來完成,當這些線程被調度到位于不同NUMA節點的CPU核時,不可避免地會出現遠程內存訪問的情況,從而降低CPU性能。可以用Hypervisor的NUMA親和性技術,將數據平面網元的線程調度到同一個NUMA節點的多個核心來處理。但是,一旦虛擬機遷移后,需要有其他的機制來保證數據平面網元遷移后的NUMA親和性。
巨頁內存技術:操作系統對內存的管理是通過分頁來實現的,一個標準的內存頁大小是4KB,每個內存頁操作系統都會為其分配一個物理地址,而數據平面網元虛擬機是通過虛擬地址來訪問為其分配的內存頁的。宿主OS負責完成虛擬地址到物理地址的映射。虛擬地址到物理地址的映射關系保存在內存頁表中,同時CPU的快表可保存經常訪問的地址映射。由于TLB具備比內存高得多的性能,使得TLB快表的命中率成了提升內存性能的關鍵。但是,NFV場景下服務器的內存容量一般都比較大,而TLB可以保存的地址數量有限,造成TLB命中率比較低。
回答所涉及的環境:聯想天逸510S、Windows 10。