導航:首頁 > 源碼編譯 > 如何查看集群默認編譯器

如何查看集群默認編譯器

發布時間:2025-01-25 13:38:30

㈠ 了解Kubernetes資源類型

在深入研究Kubernetes資源之前,讓我們先澄清一下「資源」一詞在這里指的是什麼。我們在Kubernetes集群中創建的任何東西都被視為一種資源:部署、pod、服務等。在本文中,我們將重點介紹CPU和內存等主要資源,以及暫態存儲和擴展資源等其他資源類型。


集群管理的一個方面是將這些資源自動分配給在pod中運行的容器,這樣,理想情況下,每個容器都有它所需的資源(但沒有更多)。


在本文中,我們將重點介紹集群上運行的容器的邏輯資源。我們將分析開發人員每天使用的四種常見Kubernetes資源:CPU、內存、暫態存儲和擴展資源。對於每種資源,我們將 探索 如何在Kubernetes中衡量它,回顧如何監控每種特定資源,並強調優化資源使用的一些最佳實踐。


CPU


Kubernetes集群通常運行在多台機器上,每台機器都有多個CPU核。它們加起來就是可用內核的總數。


我們不需要使用所有的內核。我們可以以1/1000的增量指定CPU核心的任何部分(例如,半個核心或500百萬CPU)。


Kubernetes容器在Linux內核上運行,這允許指定cGroup來限制資源。Linux調度器將使用的CPU時間(由內部時間片定義)與定義的限制進行比較,以決定是否在下一個時間片中運行容器。我們可以使用kubectl top命令查詢CPU資源,為pod或節點調用它。


我們可以通過改進演算法和編碼,或者通過編譯器優化,使程序在容器中運行更加高效,從而優化處理器時間的使用。集群用戶對預編譯容器的速度或效率沒有太大影響。


內存


Kubernetes集群中的每台機器也都有內存,加起來就是集群的總數。內核級控制主內存,類似於使用cGroup的CPU時間。如果容器中的常式請求的內存分配超出了硬限制,則表示內存不足錯誤。


優化資源使用在很大程度上取決於應用程序的開發工作。一個步驟是提高垃圾收集頻率,以防止基於堆的鏡像分配的內存超過硬限制。同樣,kubectl top命令可以提供有關內存使用的信息。


探索 CPU和內存


作為我們的第一個深入示例,讓我們將流行web伺服器NGINX的三個復制容器部署到本地Kubernetes安裝中。我們在筆記本電腦上運行一個單節點「集群」,它只有兩個內核和2 GiB的內存。


下面的代碼定義了這種pod部署,並將十分之一的核心(100 milli-CPU)和100 MiB的主內存授予三個NGINX容器中的每一個。下面的代碼還將它們的使用限制為請求值的兩倍。

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

labels:

app: nginx

spec:

replicas: 3

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx

resources:

requests:

cpu: "100m"

memory: "100Mi"

limits:

cpu: "200m"

memory: "200Mi"

ports:

- containerPort: 80


我們可以這樣部署到默認命名空間:

kubectl apply -f nginx.yaml


本地集群只有一個節點。使用此命令可返回有關它的詳細信息:

kubectl describe nodes docker-desktop


在剪切大部分輸出後,我們可以檢查一些有關資源使用的信息:

[...]

Namespace Name CPU. Requests CPU Limits Memory Requests Memory Limits Age

--------- ---- ------------ ---------- --------------- ------------- ---

default nginx-deployment-585bd9cc5f-djql8 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

default nginx-deployment-585bd9cc5f-gz98r 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

default nginx-deployment-585bd9cc5f-vmdnc 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

[...]

Resource Requests Limits

-------- -------- ------

cpu 1150m (57%) 600m (30%)

memory 540Mi (28%) 940Mi (49%)

ephemeral-storage 0 (0%) 0 (0%)

hugepages-1Gi 0 (0%) 0 (0%)

hugepages-2Mi 0 (0%) 0 (0%)

[...]


此信息顯示CPU和內存使用請求和限制,就像我們的部署對象指定的那樣。它還將值顯示為最大可能分配的百分比。


接下來是該節點的當前總數,再次以絕對值和百分比列出。這些數字包括在kube系統命名空間中運行的一些其他容器,我們在這里沒有顯示這些容器,因此上面的輸出中沒有包含差異。


上面代碼段的最後三行表示CPU和內存之外的其他類型的資源,在本例中,這些資源沒有設置請求或限制。


暫態存儲


另外一種Kubernetes資源類型是暫態存儲。這是在pod生命周期內無法存活的掛載式存儲。Kubernetes經常使用暫態存儲來緩存或日誌,但從不將其用於重要數據,如用戶記錄。我們可以請求或限制暫態存儲,比如主內存,但它通常不是一種有限的資源。


那麼,在上面的代碼片段中,hugepages-1Gi和hugepages-2Mi是什麼意思呢?巨頁面是Linux內核的一種現代內存功能,用於為進程分配可配置大小的大型主內存頁面。為了提高效率,我們可以這樣做。


Kubernetes支持將如此大的頁面分配給容器。這些構成了我們可以單獨請求的每個頁面大小的資源類型。


在指定請求或限制時,我們設置的是內存總量,而不是頁數。

limits:

hugepages-2Mi: "100Mi"

hugepages-1Gi: "2Gi"Here, we limit the number of 2 MiB pages to 50 and the number of 1 GiB pages to 2.


擴展資源


集群用戶還可以使用擴展資源類型定義自己的資源類型(每個集群或節點)。一旦定義了類型並指定了可用單元,我們就可以使用請求和限制,就像我們目前使用的內置資源一樣。


例如:

limits:

cpu: "200m"

myproject.com/handles: 100


此設置將容器限制為核心的20%和項目句柄的100%。


資源請求和限制


請注意,資源請求和限制是我們討論暫態存儲和擴展資源的關鍵。這是因為最終用戶可以在應用程序的部署清單中指定資源請求和限制,這對Kubernetes應該如何處理容器或pod施加了一些規則。


請求指示容器應該擁有多少資源。它們幫助調度器根據請求的資源量和節點上的可用資源量將pod分配給節點。


限制用於指示容器可以使用多少資源的硬上限,在操作系統級別強制執行。請求和限制是可選的,但如果我們不指定限制,容器可以使用節點的大部分資源,這可能會帶來負面的成本或性能影響。因此,我們必須謹慎行事。


請記住,雖然一個pod可以包含多個容器,但通常每個pod只有一個容器。我們將資源分配給容器,但pod的所有容器都來自節點級別的公共資源池。


考慮服務質量


到目前為止,我們描述的資源系統是管理計算資源的一種相當簡單的方法。Kubernetes提供了一個簡單的服務質量(QoS)系統。


QoS描述了一個技術系統在硬體有限的情況下,在保持最佳總體質量的同時提供不同服務級別的方法。Kubernetes QoS系統為pod分配三個級別中的一個:Guaranteed、Burstable和BestEffort。


在pod的生命周期內,Guaranteed級別提供了所需且有限的資源,適合在恆定負載下運行的監控系統等應用。


Burstable服務級別適用於具有基本使用模式的pod,由於需求增加,這些pod的使用模式有時會超過基線。這個級別非常適合資料庫或web伺服器,它們的負載取決於傳入請求的數量。


BestEffort不保證資源可用性。因此,它最適合於批處理作業之類的應用程序,它們可以在需要時重復,或者適合於非任務關鍵型的暫存環境。


結論


Kubernetes集群維護CPU時間、內存、暫態存儲和擴展資源等硬體資源,並將它們分配給正在運行的容器。通過一個請求和限制系統,運維人員可以根據單個容器定製資源分配,然後讓Kubernetes系統將它們適當地分配給節點。


擴展資源使我們能夠定義自己的資源類型,並以類似的方式使用它們。Kubernetes還根據請求和限制將服務質量指定給pod。然後,它使用這些名稱來制定計劃和終止決策。


Kubernetes資源優化對於平衡成本和最終用戶體驗至關重要。然而,使用本文的方法手動分配參數可能會非常耗時、昂貴,而且難以擴展。



原文鏈接:

https://thenewstack.io/understanding-kubernetes-resource-types/

㈡ 如何在LINUX伺服器上搭建群集

1.2.並行技術
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.使用MPICH構建一個四節點的集群系統
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.1
所需設備
1).4台採用Pentium
II處理器的PC機,每台配
置64M內存,2GB以上的硬碟,和EIDE介面的光碟驅動器。
2).5塊100M快速乙太網卡,如SMC
9332
EtherPower
10/100(其中四塊卡用於連接集群中的結點,另外一塊用於將集群中的其中的一個節點與其它網路連接。)
3).5根足夠連接集群系統中每個節點的,使用5類非屏蔽雙絞線製作的RJ45纜線
4).1個快速乙太網(100BASE-Tx)的集線器或交換機
5).1張Linux安裝盤
2.2
構建說明
對計算機硬體不熟的人,實施以下這些構建步驟會感到吃力。如果是這樣,請找一些有經驗的專業人士尋求幫助。
1.
准備好要使用的採用Pentium
II處理器的PC機。確信所有的PC機都還沒有接上電源,打開PC機的機箱,在准備與網路上的其它設備連接的PC機上安裝上兩塊快速乙太網卡,在其它的
PC機上安裝上一塊快速乙太網卡。當然別忘了要加上附加的內存。確定完成後蓋上機箱,接上電源。
2.
使用4根RJ45線纜將四台PC機連到快速乙太網的集線器或交換機上。使用剩下的1根RJ45線將額外的乙太網卡(用於與其它網路相連的那塊,這樣機構就可以用上集群)連接到機構的區域網上(假定你的機構區域網也是快速乙太網),然後打開電源。
3.
使用LINUX安裝盤在每一台PC機上安裝。請確信在LINUX系統中安裝了C編譯器和C的LIB庫。當你配置TCP/IP時,建議你為四台PC分別指定為192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC為你的伺服器節點(擁有兩塊網卡的那台)。在這個伺服器節點上的那塊與機構區域網相連的網卡,你應該為其指定一個與機構區域網吻合的IP地址。
4.當所有PC都裝好Linux系統後,編輯每台機器的/etc/hosts文件,讓其包含以下幾行:
192.168.1.1
node1
server
192.168.1.2
node2
192.168.1.3
node3
192.168.1.4
node4
編輯每台機器的/etc/hosts.equiv文件,使其包含以下幾行:
node1
node2
node3
node4
$p#
以下的這些配置是為了讓其能使用MPICH』s
p4策略去執行分布式的並行處理應用。
1.
在伺服器節點
,建一個/mirror目錄,並將其配置成為NFS伺服器,並在/etc/exports文件中增加一行:
/mirror
node1(rw)
node2(rw)
node3(rw)
node4(rw)
2.
在其他節點上,也建一個/mirror目錄,關在/etc/fstab文件中增加一行:
server:/mirror
/mirror
nfs
rw,bg,soft
0
0
3.
/mirror這個目錄從伺服器上輸出,裝載在各個客戶端,以便在各個節點間進行軟體任務的分發。
4.
在伺服器節點上,安裝MPICH。MPICH的文檔可在
5.任何一個集群用戶(你必須在每一個節點新建一個相同的用戶),必須在/mirror目錄下建一個屬於它的子目錄,如
/mirror/username,用來存放MPI程序和共享數據文件。這種情況,用戶僅僅需要在伺服器節點上編譯MPI程序,然後將編譯後的程序拷貝到在/mirror目錄下屬於它的的子目錄中,然後從他在/mirror目錄下屬於它的的子目錄下使用p4
MPI策略運行MPI程序。

㈢ 從0到1教你如何在Linux系統部署VASP,親測有效

VASP全稱為Vienna Ab-initio Simulation Package,是Hafner小組在維也納大學開發的電子結構計算和量子力學-分子動力學模擬軟體包。VASP是當前主流的第一性原理計算軟體,以贗勢和平面波基函數為基礎,適用於計算周期性結構材料的結構參數、力學性質、電子結構、光學磁學性質等,也可進行從頭算分子動力學模擬等計算。近年來,引用量高達800+。

多數科研機構與學校通過購買線上超算資源使用VASP進行計算,但對於常使用Windows系統的初學者,部署和使用軟體可能不太友好。本指南將詳細闡述在Linux系統中部署VASP的基本方法。後續計劃持續發布計算軟體相關教程以及Linux系統下使用科學計算軟體的常見實踐,歡迎對此感興趣的讀者關注公眾號《集群計算技術》以獲取最新內容。

首先,安裝編譯環境Intel oneAPI。訪問intel.cn官網,下載安裝包含Base Toolkit和HPC Toolkit的工具包。選擇對應系統版本後,執行安裝腳本。推薦先安裝Base Toolkit,再安裝HPC Toolkit,如無需自定義配置,則遵循默認選項。安裝後,路徑默認在/opt/intel/oneapi/xxx。

接著,檢查必要的編譯環境。

安裝部署VASP。載入編譯依賴環境,解壓VASP源碼包,進入主目錄。准備makefile.include文件(根據系統和編譯需求調整對應的編譯配置文件),並修改編譯選項。使用intel-oneAPI編譯器+MKL數學庫+intelmpi實現MPI+openmp支持多線程,特別注意注釋部分的內容。並行編譯gam、std、ncl三個版本。對於非Intel平台,可優化和注意以下事項。完成編譯後,生成的可執行文件位於特定目錄。

參考以下資源:

1. vasp.at/wiki/index.php/...

2. intel.cn/content/www/cn...

閱讀全文

與如何查看集群默認編譯器相關的資料

熱點內容
正在發送信息的文件夾 瀏覽:86
怎麼發命令觸發攝像槍拍照 瀏覽:835
php薪資與java 瀏覽:348
9代思域壓縮比 瀏覽:407
單片機編程可以嗎 瀏覽:353
香港程序員待遇 瀏覽:87
修改d盤文件夾名字 瀏覽:8
linux的命令行參數 瀏覽:680
賣伺服器有什麼賺錢的 瀏覽:584
戰爭雷霆伺服器怎麼這么卡 瀏覽:611
如何自己設置伺服器 瀏覽:172
京東購物app哪裡看 瀏覽:61
隱私與應用加密的密保忘了怎麼辦 瀏覽:489
國家反詐中心app怎麼收不到驗證碼 瀏覽:73
手機怎麼解壓文件失敗 瀏覽:366
歡樂頌程序員好找嗎 瀏覽:29
緩解壓力除了吸煙 瀏覽:101
宿遷陽光配送app怎麼下載 瀏覽:134
armc匯編混合編程 瀏覽:774
達編程 瀏覽:229