『壹』 pve半虛擬化網卡性能
pve半虛擬化網卡性能pve半虛擬化網卡性能
容易被忽略的PVE細節—PVE的tips
cosz 22-02-15關注
PVE的教程一搜一大把,站內也有很好的PVE入門教程,大家跟著一步一步走基本上都不會出問題。但是前幾天發了一篇x86小主機評測後發現,PVE有一些細節部分很多教程沒有說清楚,我盡可能的將在這篇文章中說清楚。
註:為了保證專業性,我會盡力找到官方的一些解釋,附在各個部分下面。
一、虛擬機和CT模板
ct和虛擬機
ct和虛擬機
vm是完全虛擬出來一整個主機,而ct是進程隔離。簡單來說就是賓館和青年旅社的關系,vm虛擬化隔離更徹底,但是資源佔用也較大,ct進程隔離,所以不能任意沖橋模擬出任何系統,但是資源利用率最高。如果你使用linux,ct一般能滿足你的需求。
二、CPU分配
很多時候,家用小主機是4核、雙核,但是我們往往創建了不止一個虛擬機,可能有小夥伴有疑問:是不是要按照物理核心數分配給各個虛擬機?CPU模式選哪個更好?
那我們就來說說PVE中cpu分配頁的各個選項。
cpu
cpu
插槽數:
雖然家用主板大部分都是1板1cpu,但是存在一個主板可以搭載多顆cpu的情況。這里的插槽數就是你想給你創建的這個虛擬機分配的cpu數量。家用一般選1就可以了。
核心數:
關於cpu核心數的分配,更像是docker中的limit。我們給虛擬機A分配了2核,那麼他最多隻能使用2核,但不代表這兩顆核心完全保留給了虛擬機A。如果你有過esxi的使用經驗,esxi中內存有一個「完全預留」,這里的cpu分配就和完全預留是截然不同的概念。所以不需要有負擔,放開手每個核心設置滿核心都可以。有人要問那分配的意義在哪裡?我下面說到權重的時候詳細說。
It is perfectly safe if the overall number of cores of all your VMs is greater than the number of cores on the server (e.g., 4 VMs with each 4 cores on a machine with only 8 cores).
類別:
這是絕大多數教程都沒說的東西。默認可以看到是kvm64,我們拉到最底下還可以看到host。兩個的區別用一句概括就是:kvm64具有最好的遷移性,host具有最好的性能。所謂遷移性,就是你將一個虛擬機從宿主機A遷移到宿主機B,如果你沒有這樣的需求,選host就好了。引用官方的話說就是:
If you don』t care about live migration or have a homogeneous cluster where all nodes have the same CPU, set the CPU type to host, as in theory this will give your guests maximum performance.
權重:困判鬧
就像上面說的,如果我們給每個虛擬機都分配了相同的核心數,那該如何調度呢?均衡分配。那如果我的虛擬機A很重要,一般需要更多的資源,不想被均衡分配搶資源怎麼辦呢?將權重調高。比如A是2048,B是1024,那麼在調度上A就是B的兩倍優先。
NUMA:
一種將內存分散到每個cpu的本地儲存池的技術。就像過去是市中心大商場,你每次買東西都要去大商場,路途遠耗時長,現在各個地方開了便利店,你就可以更快的拿到資源。但是這一切的前提是你有多個cpu。如過你只有一個,開和不開區別不大
三、內存
內存
內存
內存只需要說一個,ballooning。它是一種動態調節宿主機和虛擬機之間內存的技術,但是前提是你的虛汪罩擬機能夠使用ballooning。例如一些人在pve下安裝ikuai總是莫名重啟,可以試試關掉ballooning,情況會有改善(我不是說開了就一定重啟)
四、網路
如果你需要在pve下虛擬路由(例如openwrt),建議進行直通網卡。直通網卡教程一搜一大把,我就不贅述。如果一不小心直通了管理口,無論如何進不去pve管理頁面了,可以將hdmi顯示輸出連接到一個顯示器上,在顯示出的pve管理命令行下輸入
qm stop 「你的虛擬機id(例如101)」
之後正常進入管理頁面刪除直通設備就可以了。
有人會說半虛擬化已經很好了為什麼要直通。誠然,對於性能比較好的主機,半年虛擬化也可以跑滿帶寬,但是如果有直通的條件,為什麼不直通將更多的資源留給其他項目呢?如果網口不夠另說。
虛擬化網卡
虛擬化網卡
另外選項中的e1000是歷史比較悠久的虛擬化技術了,後來有e1000e(esxi),對於pve來說,選半虛擬化最穩妥。
五、概要中的溫度顯示
有很多人需要隨時看到溫度情況,但是通過sensor命令不夠直觀,而且每次要進命令行。可以用一個小插件來實現溫度、去掉訂閱提示、換源等操作。
https://github.com/ivanhao/pvetools
使用方法README介紹的很詳細,我就指個路就行了。效果如圖
溫度顯示
溫度顯示
六、PVE下虛擬機無法關閉問題
有時候要重啟pve,但是發現其中一個虛擬機無論如何都關不掉,不停顯示停止錯誤。這時候可以如下操作
1. 進入pve命令行使用如下命令
qm stop 「你的虛擬機id」
如果顯示無法停止,由於無法unlockxxxx,進行第二步
2. 刪除conf
輸入如下命令後再次執行第一步
rm /var/lock/qemu-server/lock-103.conf
七、pve掛載nas存儲問題
我看很多人都是通過linux的方式進行掛載,但是對於nas用戶來說,有現成的ftp、nfs等服務時,就無須再用繁瑣的掛載到mnt下等等操作。下面以nfs為例
開啟你nas的nfs服務,例如威聯通在共享文件夾下對你想要掛載的文件夾進行nfs賦權,之後進入pve
按照如圖路徑進入nfs掛載設置
nfs掛載
nfs掛載
之後填入你nfs伺服器地址即可,名稱什麼的看你喜好。
如圖我的設置
『貳』 kvm虛擬機存儲速度
kvm性能優化,主要集中在cpu、內存、磁森巧盤、網路,4個方面,當然對於這裡面的優化,也是要分場景的,不同的場景其優化方向也是不同的,下面具體聊聊這4個方面的優化細節。
1. CPU
cpu優化需要搞清楚node、socket、core、logic processor的關系,知道內存、l3-cache、l2-cache、l1-cache和cpu的關系。
針對kvm的優化,一般情況,都是通過pin,將答鍵vm上的cpu綁定到某一個node上,讓其共享l3-cache,優先選擇node上的內存,bind方法可以通過此舉鍵virt-manage processor裡面的pinning動態綁定。這個綁定是實時生效的。
由於沒有下載到speccpu2005,所以寫了個大量消費cpu和內存的程序,來檢驗綁定cpu所帶來的性能提升,程序如下:
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#define BUF_SIZE 512*1024*1024
#define MAX 512*1024
#define COUNT 16*1024*1024
char * buf_1 = NULL;
char * buf_2 = NULL;
void *pth_1(void *data)
{
char * p1 = NULL;
char * p2 = NULL;
int value1 = 0;
int value2 = 0;
int value_total = 0;
int i = 0;
int j = 0;
for (i = 0; i <=COUNT; i++) {
value1 = rand() % (MAX + 1);
value2 = rand() % (MAX + 1);
p1 = buf_1 + value1*1024;
p2 = buf_2 + value2*1024;
for (j = 0; j < 1024; j++) {
value_total += p1[j];
value_total += p2[j];
}
}
return NULL;
}
void *pth_2(void *data)
{
char * p1 = NULL;
char * p2 = NULL;
int value1 = 0;
int value2 = 0;
int value_total = 0;
int i = 0;
int j = 0;
for (i = 0; i <=COUNT; i++) {
value1 = rand() % (MAX + 1);
value2 = rand() % (MAX + 1);
p1 = buf_1 + value1*1024;
p2 = buf_2 + value2*1024;
for (j = 0; j < 1024; j++) {
value_total += p1[j];
value_total += p2[j];
}
}
return NULL;
}
int main(void)
{
buf_1 = (char *)calloc(1, BUF_SIZE);
buf_2 = (char *)calloc(1, BUF_SIZE);
memset(buf_1, 0, BUF_SIZE);
memset(buf_2, 0, BUF_SIZE);
pthread_t th_a, th_b;
void *retval;
pthread_create(&th_a, NULL, pth_1, 0);
pthread_create(&th_b, NULL, pth_2, 0);
pthread_join(th_a, &retval);
pthread_join(th_b, &retval);
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
偶數cpu在node 0 上,奇數cpu在node 1上,vm有2個cpu,程序有2個線程,分別將vm綁定到8,9和10,12,通過time命令運行程序,time ./test,測試結果如下
8,9
real 1m53.999s
user 3m34.377s
sys 0m3.020s
10,12
real 1m25.706s
user 2m49.497s
sys 0m0.699s
可以看出,綁定到同一個node上,比綁到不同node上其消耗時間小不少。測試過程中,也發現如果提供8、9、10、11的cpu,系統會在大部分時間選擇8、10和9、11,所以猜測,kvm在cpu bind上,可能已經做了優化,會盡可能的往同一個node上綁定。
這里需要注意的一點是,通過virt-manage pin cpu,僅僅進行cpu bind,會共享l3-cache,並沒有限制一定用某一個node上的內存,所以仍然會出現跨node使用內存的情況
2. 內存
優化項包括EPT、透明大頁、內存碎片整理、ksm,下面一個一個來介紹
2.1 EPT
針對內存的使用,存在邏輯地址和物理地址的轉換,這個轉換時通過page table來進行的,並且轉換過程由cpu vmm硬體加速,速度是很塊的。
但是引入vm之後,vm vaddr----->vm padddr--------->host paddr,首先vm需要進行邏輯地址和物理地址的轉換,但是vm的物理地址還是host機的邏輯地址,需要再進行一次邏輯地址到物理地址的轉換,所以這個過程有2次地址轉換,效率非常低。
幸虧intel提供了EPT技術,將兩次地址轉換變成了一次。這個EPT技術是在bios中,隨著VT技術開啟一起開啟的。
2.2 透明大頁
邏輯地址向物理地址的轉換,在做轉換時,cpu保持一個翻譯後備緩沖器TLB,用來緩存轉換結果,而TLB容量很小,所以如果page很小,TLB很容易就充滿,這樣就很容易導致cache miss,相反page變大,TLB需要保存的緩存項就變少,減少cache miss。
透明大頁的開啟:echo always > /sys/kernel/mm/transparent_hugepage/enabled
內存碎片整理的開啟:echo always> /sys/kernel/mm/transparent_hugepage/defrag
2.3 KSM
簡單理解就是可以將host機內容相同的內存合並,節省內存的使用,特別是當vm操作系統都一樣的情況,肯定會有很多內容相同的內存,開啟了KSM,則會將這些內存合並為一個,當然這個過程會有性能損耗,所以開啟與否,需要考慮使用場景,如果不注重vm性能,而注重host內存使用率,可以考慮開啟,反之則關閉,在/etc/init.d/下,會有兩個服務,服務名稱為ksm和ksmtuned,都需要關閉
3. 磁碟
磁碟的優化包括:virtio-blk、緩存模式、aio、塊設備io調度器
3.1 virtio
半虛擬化io設備,針對cpu和內存,kvm全是全虛擬化設備,而針對磁碟和網路,則出現了半虛擬化io設備,目的是標准化guest和host之間數據交換介面,減少交互流程和內存拷貝,提升vm io效率,可以在libvirt xml中設置,disk中加入<target dev='vda' bus='virtio'/>
3.2 緩存模式
從vm寫磁碟,有3個緩沖區,guest fs page cache、Brk Driver writeback cache(qemu的cache)、Host FS page cache,在host上的設置,無法改變guest fs page cache,但是可以改變後面2個cache,緩存模式有如下5種,當採用Host FS page cache,會有一個寫同步,會實時將host cache中的數據flush到磁碟上,當然這樣做比較安全,不會丟失數據,但寫性能會受到影響。
writeback mode在mail server這種小文件 高io的伺服器上,其性能是很差的,none模式大部分情況要比writethrough性能稍好一點,所以選擇none。
啟用方式在libvirt xml disk中加入<driver name='qemu' type='qcow2' cache='none'/>
3.3 aio
非同步讀寫,分別包括Native aio: kernel AIO 和 threaded aio: user space AIO emulated by posix thread workers,內核方式要比用戶態的方式性能稍好一點,所以一般情況都選擇native,開啟方式<driver name='qemu' type='qcow2' cache='none' aio='native'/>
3.4 塊設備調度器
cfq:perprocess IO queue,較好公平性,較低aggregate throughput
deadline:per-device IO queue,較好實時性,較好aggregate throughput,不夠公平,當某些vm有大量io操作,佔用了大量io資源時,其它後加入的vm很有可能搶占不到io資源。
這個目前筆者還沒有做過測試,但是查看網易和美團雲的方案,都將其設置為cfq。
開啟方式:echo cfq > /sys/block/sdb/queue/scheler
4. 網路
優化項包括virtio、vhost、macvtap、vepa、SRIOV 網卡,下面有幾篇文章寫的非常好
http://www.ibm.com/developerworks/cn/linux/1312_xiawc_linuxvirtnet/
http://xiaoli110.blog.51cto.com/1724/1558984
4.1 virtio
更改虛擬網卡的類型,由全虛擬化網卡e1000、rtl8139,轉變成半虛擬化網卡virtio,virtio需要qemu和vm內核virtio驅動的支持,這個原理和磁碟virtio原理一樣,不再贅述。
4.2 vhost_net
vhost_net將virtiobackend處理程序由user space轉入kernel space,將減少兩個空間內存拷貝和cpu的切換,降低延時和提高cpu使用率
4.3 macvtap
代替傳統的tap+bridge,有4中模式,bridge、vepa、private、passthrough
1 Bridge
完成與 Bridge 設備類似功能,數據可以在屬於同一個母設備的子設備間交換轉發. 當前的Linux實現有一個缺陷,此模式下MACVTAP子設備無法和Linux Host通訊,即虛擬機無法和Host通訊,而使用傳統的Bridge設備,通過給Bridge設置IP可以完成。但使用VEPA模式可以去除這一限制. macvtap的這種bridge模式等同於傳統的tap+bridge的模式.
2 VEPA
是對802.1Qbg標准中的VEPA機制的部分軟體實現,工作在此模式下的MACVTAP設備簡單的將數據轉發到母設備中,完成數據匯聚功能,通常需要外部交換機支持Hairpin模式才能正常工作。
3 Private
Private模式和VEPA模式類似,區別是子 MACVTAP之間相互隔離。
4 Passthrough
可以配合直接使用SRIOV網卡, 內核的macvtap數據處理邏輯被跳過,硬體決定數據如何處理,從而釋放了Host CPU資源。MACVTAP Passthrough 概念與PCI Passthrough概念不同,PCI Passthrough針對的是任意PCI設備,不一定是網路設備,目的是讓Guest OS直接使用Host上的 PCI 硬體以提高效率。MACVTAP Passthrough僅僅針對 MACVTAP網路設備,目的是饒過內核里MACVTAP的部分軟體處理過程,轉而交給硬體處理。綜上所述,對於一個 SRIOV 網路設備,可以用兩種模式使用它:MACVTAP Passthrough 與 PCI Passthrough
4.4 PCI pass-through
直通,設備獨享。
4.5 SO-IOV
優點是虛擬網卡的工作由host cpu交給了物理網卡來實現,降低了host cpu的使用率,缺點是,需要網卡、主板、hypervisor的支持。
測試結果,在實驗室2台host,分別起1台vm(vm1、vm2),用iperf測試vm1和vm2之間的吞吐量,用ping測試2者之間的響應時間,host機為百兆網卡,結果如下表所示,可以看出隨著優化的深入,其吞吐量和響應時間都有所改善,由於暫時沒有硬體的支持,macvtap vepa和SR-IOV沒有得到測試。
測試工具 Iperf(ping)
rtl8139
87Mb/s(1.239ms)
virtio
89Mb/s(1.140ms)
Virtio + host_net
92Mb/s(1.014ms)
Macvtap(bridge) + virtio + host_net
94Mb/s(0.989ms)
host
95Mb/s(0.698ms)
總結來看網路虛擬化具有三個層次:
1, 0成本,通過純軟體virtio、vhost、macvtap提升網路性能;
2, 也可以用非常低的成本按照802.1Qbg中的VEPA模型創建升級版的虛擬網路,引出虛擬機網路流量,減少Host cpu負載,但需要物理交換機的配合;
3, 如果網路性能還是達不到要求,可以嘗試SR-IOV技術,不過需要SR-IOV網卡的支持。
總結:文章總共闡述了cpu、內存、磁碟、網路的性能優化方案,大部分都是通過kvm參數和系統內核參數的修改來實現。
內核及虛擬化漫談
微信公眾號
分享linux開發技術及新聞熱點
點擊閱讀全文
打開CSDN APP,看更多技術內容
【實操干貨】KVM命令管理虛擬機與性能優化_weixin_34059951的博客-CSDN...
簡要介紹KVM中經常使用的基本功能管理命令(CentOS7.4是宿主機中安裝的虛擬機); 1)、virsh -h #查看命令幫助 2)、ls /etc/libvirt/qemu #查看KVM的配置文件存放目錄(虛擬機系統實例配置文件的文件名為.xml) 3)、virsh list #查看...
繼續訪問
python虛擬機優化_KVM虛擬機管理及性能優化_weixin_39559804的博客-CSDN...
KVM採用全虛擬化技術,全虛擬化要由一個軟體來模擬硬體層,故有一定的損耗,特別是I/O,因此需要優化。 1:CPU優化 所有guestcpu 不要超過物理機的CPU總數,建議復制主機CPU配置。 2:內存優化 1) :KSM(相同頁合並)開啟KSM會將相同的內...
繼續訪問
kvm虛擬機性能優化方案
kvm性能優化方案
KVM總結-KVM性能優化之CPU優化
任何平台根據場景的不同,都有相應的優化。不一樣的硬體環境、網路環境,同樣的一個平台,它跑出的效果也肯定不一樣。就好比一輛法拉利,在高速公路里跑跟鄉村街道跑,速度和激情肯定不同…
繼續訪問
KVM虛擬機的優化歷程---按需優化_weixin_33778544的博客
一、KVM為什麼要調優 性能的損耗是矛盾的根源,KVM採用全虛擬化技術,全虛擬化要由一個軟體來模擬硬體層,故有一定的損耗,特別是I/O輸入輸出。 KVM性能優化主要在CPU、內存、I/O這幾方面,當然在這幾方面也是要分場景的,不同場景優化...
繼續訪問
qemu-kvm虛擬機性能優化_li_Jiejun的博客_qemu虛擬機...
在KVM虛擬機中運行mysql,發現與ESX虛擬機中比較,性能有些差。用sysbench測試KVM虛擬機中的mysql,TPS剛剛到1500級別。性能如圖:使用perf命令跟蹤KVM虛擬機對應的進程,情況如下:從圖中可以看出,這台虛擬機的page_fault佔比較高,其次是__...
繼續訪問
最新發布 KVM 虛擬化詳解
伺服器虛擬化是雲計算最核心的技術,而KVM是當前最主流的開源的伺服器虛擬化技術。從Linux2.6.20起,KVM作為內核的一個模塊 集成到Linux主要發行版本中。從技術架構(代碼量、功能特性、調度管理、性能等)、社區活躍度,以及應用廣泛度來看,KVM顯現出明顯優勢,已逐漸替換另一開源虛擬化技術Xen。在公有雲領域,2017年之後AWS、阿里雲、華為雲等廠商都逐漸從Xen轉向KVM,而Google、騰訊雲、網路雲等也使用KVM。在私有雲領域,目前VMware ESXi是領導者,微軟Hyper-V不少應用,
繼續訪問
恆天雲技術分享系列3 – KVM性能調優
恆天雲技術分享:http://www.hengtianyun.com/download-show-id-11.html KVM是什麼 KVM 是 kernel-based Virtual Machine 的簡稱,是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對於Xen,其核心源碼很少...
繼續訪問
KVM優化_笛香幽谷(歐銳)的博客
KVM優化 第1章 KVM 1.1 架構 圖表1 1 KVM基本架構圖 1. kvm 驅動:主要負責虛擬機創建,虛擬內存分配,VCPU寄存器讀寫以及VCPU運行; 2. Qemu:用於模擬虛擬機的用戶空間組件,提供I/O設備模型,訪問外設的途徑。
繼續訪問
KVM虛擬化性能優化_weixin_34133829的博客
KVM虛擬化性能優化 可從以下幾個方面優化KVM虛擬機,提高虛擬機的性能。 1、全虛擬化使用半虛擬化驅動(virtio) virtio是KVM的半虛擬化機制,可提高IO性能,使用virtio可心顯著提高KVM性能。virtio包括磁碟驅動和網卡驅動,下面是在XML文件中...
繼續訪問
KVM 性能優化之內存優化
二、KVM 內存性能調優 我們說完CPU方面的優化,接著我們繼續第二塊內容,也就是內存方面的優化。內存方面有以下四個方向去著手: 1. EPT 技術 2. 大頁和透明大頁 3. KSM 技術 4. 內存限制 2.1. EPT技術 EPT也就是擴展頁表,這是intel開創的硬體輔...
繼續訪問
KVM學習(二十一)性能監視與優化
為什麼要監視性能? 第一、了解伺服器的工作負荷以及對伺服器資源的影響 第二、了解性能的改變和性能趨勢以便及採取措施 第三、診斷系統問題並確認優化措施 建立性能基線 性能基線是在一段時間中在典型的工作負荷和用戶連接數量的情況下收集的伺服器性能數據。 在確定性能基線時,應當了解伺服器所執行的任務,以及執行任務的時間和日期。 在部署階段建立性能基線,然後和實際性能進行比較。 及早建立性能基線有助於快速發...
繼續訪問
kvm 虛擬機的性能調優_weixin_30512785的博客
2、kvm 自帶優化。大多數的優化都是默認配置的,只是通過了解這些優化項來進一步了解linux 及kvm虛擬化 CPU優化 場景1: 上下文切換: 宿主機 ring 0 ring 3 虛擬機 ring 0 ring 3 解決:vmware虛擬機編輯處理器--虛擬化引擎--勾選 ...
繼續訪問
KVM性能優化--CPU篇_Shawn.Hu的博客_kvm cpu toplogy
可以使用以下命令來設置將虛擬機綁定到指定node。 virsh numatune domain --nodeset 'string' 復制代碼 舉個列子:將上面的虛擬機test(6核),限定在Node0和1中,使用物理機六個CPU1,2,3,4,6,7。 (注:本例中由於一個socket...
繼續訪問
Neutron中的網路I/O虛擬化(by quqi99)
作者:張華 發表於:2014-04-03 版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本版權聲明 (http://blog.csdn.net/quqi99 ) 為了提升網路I/O性能,虛擬化的網路I/O模型也在不斷的演化: 1,全虛擬化網卡(emulation),如VMware中的E1000用來模擬intel 82545千兆網卡,
繼續訪問
熱門推薦 kvm性能優化方案---cpu/內存/磁碟/網路
kvm性能優化 kvm性能優化,主要集中在cpu、內存、磁碟、網路,4個方面,當然對於這裡面的優化,也是要分場景的,不同的場景其優化方向也是不同的,下面具體聊聊這4個方面的優化細節。 cpu 在介紹cpu之前,必須要講清楚numa的概念,建議先參考如下兩篇文章 CPU Topology 玩轉cpu-topology 查看cpu信息腳本: #!/bin/bash # Simple p
繼續訪問
KVM性能優化
一、KVM為什麼要調優 性能的損耗是關鍵。KVM採用全虛擬化技術,全虛擬化要由一個軟體來模擬硬體,故有一定的損耗,特別是I/O,因此需要優化。KVM性能優化主要在CPU、內存、I/O這幾方面。當然對於這幾方面的優化,也是要分場景的,不同的場景其優化方向也是不同的。 二、KVM優化思路及步驟 KVM的性能已經很不錯了,但還有一些微調措施可以進一步提高KVM的性能1、CPU的優化要考慮CPU的數量問題...
繼續訪問
KVM 虛擬化的功能特性
虛擬化指創建某事物的虛擬(而非實際)版本,包括虛擬的計算機硬體平台、存儲設備,以及計算機網路資源),虛擬化是一種資源管理技術,它將計算機的各種實體資源(CPU、內存、存儲、網路等)予以抽象和轉化出來,並提供分割、重新組合,以達到最大化利用物理資源的目的。 KVM 全稱是 Kernel-based Virtual Machine,即基於內核的虛擬機,是採用硬體虛擬化技術的全虛擬化解決方案。KVM 從誕生開始就定位於基於硬體虛擬化支持的全虛擬化實現。它以內核模塊的形式載入之後,就將 Linux 內核變成了一個
繼續訪問
KVM虛擬機管理及性能優化
KVM虛擬機管理及性能優化 上一章給大家介紹了KVM虛擬化的部署安裝本章接上一篇文章繼續為大家講解,如何使用KVM的操作命令,對虛擬機進行管理(虛擬機開啟關閉、掛起恢復、刪除虛擬機、通過備份配置文件重新恢復刪除的虛擬機)、KVM文件管理(磁碟格式轉換、對磁碟文件查看、修改等)、虛擬機的克隆、虛擬機快照。以及最後給大家介紹 KVM性能優化的三個調優思路、和系統調優工具 使用KVM命令集管理虛擬機...
繼續訪問
KVM 性能調優與限制
kvm內存優化: 調高內存回收水位值echo 10 > /proc/sys/vm/swappinessecho 1024000 > /proc/sys/vm/min_free_kbytes 在文件/etc/sysctl.conf中加入 vm.dirty_ratio=10原理:linux會設置40%的可用內存用來做系統cache,當flus...
繼續訪問
KVM latency優化點分析
kvm latency tunning 註:參考tencent-cloud的wangpengli的報告 報告的目標是優化kvm hypervisor的latency性能,主要有以下幾點。 TLB Shootdown TLB:Translation Lookaside Buffer,轉譯後備緩沖區(頁表緩存),存放虛擬地址映射物理地址。 TLB shootdown一般通過IPI方式實現。 問題 TBL shootdown preemption問題。 在裸金屬架構(bare-metal)上,遠程TLB刷新導致發
繼續訪問
高性能kvm伺服器,KVM進階之(一)KVM性能監視與優化
為什麼要性能監視通過性能監視,你可以1:了解伺服器的工作負荷以及對伺服器資源的影響2:了解性能的改變和性能趨勢以便及採取措施3:測試調整結果4:診斷系統問題並確定優化措施分析性能數據確定系統瓶頸建立性能基線伺服器性能監視的最佳策略建立性能日誌盡量減少性能監視本身對伺服器所造成的影響分析監視結果,建立性能基線創建警報調整系統scale Upscale Out分析性能趨勢,提前採取措施監視工具你熟悉的...
繼續訪問
KVM虛擬化(一)
一、KVM虛擬化架構 1、主流虛擬機架構 圖中對比了幾種主流虛擬化技術架構:ESXi、Xen與KVM,其主要差別在與各組件(CPU、內存、磁碟與網路IO)的虛擬化與調度管理實現組件有所不同。在ESXi中,所有虛擬化功能都在內核實現。Xen內核僅實現CPU與內存虛擬化, IO虛擬化與調度管理由Domain0(主機上啟動的第一個管理VM)實現。KVM內核實現CPU與內存虛擬化,QEMU實現IO虛擬化...
繼續訪問
KVM虛擬化的優化
KVM調優 思路 性能的損耗是矛盾的根源,KVM採用全虛擬化技術,全虛擬化要由一個軟體來模擬硬體層,故有一定的損耗,特別是I/O輸入輸出。KVM性能優化主要在CPU、內存、I/O這幾方面,當然在這幾方面也是要分場景的,不同場景優化方向也是不同的。 CPU優化 要考慮CPU的數量問題,所有guestCPU的總數目不要超過物理機CPU的總數目。如果超過,則將對性能帶來嚴重影響,建議選擇復制主機CPU配...
繼續訪問
windows虛擬機qemu進程cpu佔有率很高問題解決
1.1 現象 在公有雲平台,openstack計算節點上,如圖Figure-1所示,一台windows虛擬機的qemu-kvm進程116%的佔用cpu資源,如圖Figure-2所示,該虛擬機僅有一個vcpu。 Figure-1: Figure-2: 1.2 分析步驟 通過下面步驟的分析,了解qemu-kvm進程在忙什麼,為什麼這么忙? 1.2.1 查看進程、線程的狀態 通過top -d 3 -Hp 5180查看進程,以及該進程的相關線程的狀態,分析出哪個線程在忙。如圖Figure-3所示: 線程51
繼續訪問
啟用 SR-IOV 解決 Neutron 網路 I/O 性能瓶頸
目錄: 目錄 目錄: 前文列表 前言 Neutron 的網路實現模型 基於虛擬網路設備的虛擬機流量走向 基於虛擬網路設備的性能瓶頸 在 Neutron 中引入 SR-IOV 技術 基於 SR-IOV 技術的虛擬機流量走向編輯 Neutron 配置啟用 SR-IOV SR-IOV 與 NUMA 親和 SR-IOV 與 VLAN tag SR-IOV 與安全組 前文列表 《SR-IOV 網卡虛擬化技術》 前言 該文章是基於「計算機系統應用」月刊文章《SR-I...
繼續訪問
KVM總結-KVM性能優化之磁碟IO優化
介紹KVM磁碟性能方面的調優。磁碟IO我們可以從以下四個方面去著手優化: 1)磁碟類型選擇2)緩存模式選擇3)AIO 非同步讀寫方式選擇4)磁碟IO調度器選擇。
『叄』 提高伺服器效率和利用率的三種方法
本文編輯:富哥
專業指導:葵芳一凡
伴隨經濟全球化趨勢的深入,越來越多企業使用香港伺服器租用服務來搭建外貿網站,拓展海外市場。企業IT部門一直在尋求提高香港伺服器效率的方法,最大限度地提高利用率以實現利益最大化。管理者在維護伺服器段配安全性的同時提高效率的方式包括虛擬化、監控工具和更新伺服器。
一、虛擬化
如果您不想投資額外的伺服器租用服務,而是希望充分利用現有伺服器,那麼虛擬化就是一個合適的解決方案。一個虛擬伺服器的作用就像許多台畝燃帶計算機。通過管理工具可幫助您優化每台伺服器的性能,並最大限度地延長伺服器的正常運行時間。您可以利用虛擬化軟體將計算機的硬碟分成幾個部分,使每個部分充當單獨的硬碟。虛擬化允許您在同一台計算機上使用多個操作系統。它還可以降低開支並節省空間。
二、管理工具
如果您擁有一定規模的伺服器、交換機和IP資源,您可以採用DCIM(數據中心基礎設施管理)軟體來提升伺服器管理效率。例如,簡單的DCIM管理工具可以通過自動化腳本和工具來實現高效的伺服器管理,例如自動分配IP地址、自動安裝系統、埠監控等。此外,管理工具可輕松查看您的伺服器在整個數據中心的物理位置和運行狀況,從而決定跨各種伺服器規劃工作迅蘆負載分配。
三、投資最新的伺服器技術
更新伺服器是提高伺服器效率的另一種好方法。投資最新的伺服器技術,為您提供更高的能源效率和更好的I/ O和CPU性能提升。建議每3年更新一次伺服器,以確保您的企業具有高效的伺服器。通過更新香港伺服器租用服務,您可以為您的IT部門提供面向未來的機會,以保障您的企業未來的發展方向。您應該投資滿足企業需求的伺服器,包括針對客戶應用程序進行優化的伺服器。
感謝葵芳IDC技術員一凡對本文專業指導,本文僅代表個人觀點,感謝閱讀。
專業的服務,來自專業的態度。
『肆』 伺服器虛擬化有什麼好處
從基本伺服器整合開始,伺服器虛擬化的好處很多。您可以在單個硬體上組合多個應用程序,從而減少數據中心所需的伺服器總數。伺服器更少,機架更少,網路設備更少;
從物理空間到維護成本再到空調,這一切都可以節省金錢。
伺服器虛擬化減少了對新硬體的資本支出需求,使您無需通過硬體刷新旋轉木馬。您可以重新部署那些突然釋放的伺服器。
還記得數據中心管理員必須手動配置伺服器嗎?隨著伺服器虛擬化的發展,自動化的發展使您可以在幾秒鍾內啟動VM,並通過觸摸按鈕移動多個工作負載以響應不斷變化的業務需求。
伺服器虛擬化還可提供當今基於Web的高度連接的企業所需的高可用性,故障轉移,速度,可擴展性,靈活性,性能和靈活性。伺服器虛擬化是使雲計算供應商能夠提供服務的基礎技術。當客戶從雲服務提供商訂購基礎架構即服務(IaaS)時,他們從VM開始,並添加完成手頭任務所需的相關存儲,管理和安全功能。
『伍』 什麼是虛擬化
虛擬化是資源的一種邏輯表示,並不會受限於物理資源。運行的環境不在真實的硬體上,而是硬體之上的虛擬內存中的一段,或者說是虛擬的環境中。
虛擬化為數據、計算能力、存儲資源等提供了一個邏輯視圖,而不是物理視圖。虛擬化的發展,大幅降低了IT硬體成本,減少了資源的浪費,並且提升了系統的穩定性和安全性。
1、全虛擬化
全虛擬化(FullVirtualization)也稱為原始虛擬化技術,該模型使用虛擬機協調Guest操作系統和原始硬體,VMM在Guest操作系統和裸硬體之間用於工作協調,一些受保護指令必須由Hypervisor(虛擬機管理程序)來捕獲處理。全虛擬化的運行速度要快於硬體模擬,但是性能方面不如裸機,因為Hypervisor需要佔用一些資源。
2、半虛擬化
半虛擬化(ParaVirtualization)是另一種類似於全虛擬化的技術,它使用Hypervisor分享存取底層的硬體,但是它的Guest操作系統集成了虛擬化方面的代碼。該方法無需重新編譯或引起陷阱,因為操作系統自身能夠與虛擬進程進行很好的協作。半虛擬化需要Guest操作系統做一些修改,使Guest操作系統意識到自己是處於虛擬化環境的,但是半虛擬化提供了與原操作系統相近的性能。
(5)半虛擬化怎麼提高伺服器性能擴展閱讀:
虛擬機設備隊列(VMDq):最大限度提高I/O吞吐率。在傳統伺服器虛擬化環境中,VMM必須對每個單獨的數據包進行分類,並將其發送到相應的虛擬機。這樣會佔用大量的處理器周期。而藉助VMDq,該分類功能可由英特爾伺服器網卡內的專用硬體來執行,VMM只需負責將預分類的數據包組發送到相應的虛擬機。這將降低I/O延遲,使處理器獲得更多的可用周期來處理業務應用。IntelVT-c可將I/O吞吐量提高一倍以上,使虛擬化應用達到接近物理伺服器的吞吐率。
虛擬機直接互連(VMDc):大幅提升虛擬化性能。VMDc支持虛擬機直接訪問網路I/O硬體,從而顯著提升虛擬機性能。如:通過單個英特爾萬兆伺服器網卡,可為10個虛擬機中的每個虛擬機分配一個受保護的、1Gb/s的專用鏈路。這些通信鏈路直接繞過了VMM交換機,進一步提升了I/O性能並減少伺服器處理器的負載。
『陸』 如何提高伺服器利用率
其實,根據調查只有約25%的虛擬伺服器處理性能能夠被部署虛擬化項目的企業所充分利用。幾乎有超過半數的客戶面臨此類狀況。事實上,利用率數字應該更高,也就是說應達到55%至60%的水平,這樣才能使虛擬化應用的運行真正帶來經濟效益。 這種實際效率與預期效率間的差距,主要來自於企業的虛擬化管理思路。他們往往更樂於添置新的虛擬伺服器,而非在現有的虛擬伺服器上配置更多工作負荷。而這種做法,Cappuccio說,會造成經濟層面上的巨大浪費。 原因何在?因為一套物理伺服器即使只有25%的處理能力在發揮作用,其能源消耗率仍然會達到其額定運轉功率的80%。如果我們將其處理能力的利用率提高一倍,達到前面所說的55%至60%,其所帶來的能源消耗提升相對而言卻微不足道——大約達到額定運轉功率的85%。這意味0.10.N著企業在處理能力方面收獲頗豐,付出的能源消耗成本則只有一小部分。而且提升執行效率的做法,正是當初我們熱衷於引入虛擬化技術的重要原因之一。 別執著於你的伺服器到底有多少資源被用於虛擬化,相反,我們要把注意力集中到資源的利用率方面。許多企業樂於宣稱其數據中心內部的伺服器資源虛擬化比例已達到70%或80%,但當談及其伺服器的實際平均運轉水平時,得到的結論仍然可謂慘不忍睹——只有約25%至30%。這意味著,系統整體的虛擬化縱然做得再好,事實上多數企業仍然在浪費資源。要讓你的每千瓦能源都物有所值,將自己設備的計算利用率提高到55%至60%才是正道。 上述情況作為常見而典型的反面教材,廣泛存在於各大沉醉於自身虛擬化方案的企業當中。也可以充分調動更多的伺服器性能,與此同時,通過在少的物理伺服器上運行更多的應用程序實體,我們可以節約自己數據中心的佔地面積,這也是縮減開支的好辦法。 IT行業的歷史頑疾正是原因之一。在過去,由於分布式計算是由規模相對較小的計算機實現的,而大多數數據中心管理員們往往不願意使用這些性能較差的0.10.N設備而更偏好將真正的業務計算需求通過大型機實現。所以,當有客戶要求將某個應用程序加入分布式系統當中時,管理員們的建議往往是添加額外的對應設備用於0.10.N專門處理。這就是一台計算機對應一個應用程序的不良風氣成為主流模式的原因所在 不過硬體利用率配置過高也會引發新的問題,在未引入虛擬化技術的企業中,管理員們往往會發現其物理伺服器的實際利用率只有7%到0.10.N12%,Cappuccio根據調查結果提到。「這正是鞏固資源管理體系的起點,因為顯然我們必須找出能讓這些計算機設備的運轉更加高效的方法。0.10.N「如今的問題是我們發現處於虛擬環境下的計算機,其運行效率依然只有可憐的25%。這比起過去的確有些進步,但距離我們的目標還差得很遠。 通過切實發掘現有伺服器的全部潛在性能,企業能夠從長遠角度節約大量投入,對於大多數情況來說,提高利用率可以避免無謂的數據中心擴張方案,並在很長一段時間內從各個角度幫助用戶節省資金。 在過去,企業總是讓自己租下的大型機以90%的性能負荷不停運轉,因為這類設備的使用成本實在不低,企業希望能盡量充分發揮它的能力。 這種情況下,你會做何決斷呢?1、如果還沒做過相關工作,馬上對自己的虛擬伺服器進行整編並列出清單。 3、如果實際利用率很低,大家可以立即著手進行調查,例如有針對性地做出變更、將一部分虛擬化應用程序轉移到另一台伺服器上以迅速提高運行效率等等。 效率低下問題的症結所在,正是由於IT管理者們將多年來固有的使用習慣帶入數據中心、硬體及應用程序的現代化管理之中。而這種落後的模式往往很難在短時間內徹底消除。但隨著企業IT的演變及發展,我們能夠探索新的途徑並獲取新的見解,進而在指導實踐的過程中產生出乎預料之外的重大革新。只要時刻立足於IT行業的前沿、關注來自各方面的經驗教訓,這種變革之美就會為企業提供實實在在的經濟回報。 這個夏天,不要虛度——認真思考提高虛擬化利用率所能帶來的好處吧: 為企業節約資金、提高生產率、減少員工的工作量,並能夠從自己的IT體系中發現更多有助於提高效率的真知灼見。
『柒』 全虛擬化&半虛擬化&硬體輔助虛擬化關系是什麼
全虛擬化(Full Virtulization)
簡介:主要是在客戶操作系統和硬體之間捕捉和處理那些對虛擬化敏感的特權指令,使客戶操作系統無需修改就能運行,速度會根據不同的實現而不同,但哪派大致能滿足用戶的需求。這種方式是業界現今最成熟和最常見的,而且屬於 Hosted 模式和 Hypervisor 模式的都有,知名的產品有IBM CP/CMS,VirtualBox,KVM,VMware Workstation和VMware ESX(它在其4.0版,被改名為VMware vSphere)。
優點:Guest OS無需修改,速度和功能都非常不錯,更重要的是使用非常簡單,不論是 VMware 的產品,還是Sun(Oracle?)的 VirtualBox。
缺點:基於Hosted模式的全虛擬產品性能方面不是特別優異,特別是I/O方面。
未來:因為使用這種模式,不僅Guest OS免於修改,而且將通過引入硬體輔助虛擬化技術來提高其性能,我個人判斷,在未來全虛擬化還是主流。
半虛擬化(Parairtulization)
簡介:它與完全虛擬化有一些類似,它也利用Hypervisor來實現對底層硬體的共享訪問,但是由於在Hypervisor 上面運行的Guest OS已經集成與半虛擬化有關的代碼,使得Guest OS能夠非常好地配合李基賀Hyperivosr來實現虛擬化。通過這種方法將無需重新編譯或捕獲特權指令,使其性能非常接近物理機,其最經典的產品就是Xen,而且因為微軟的Hyper-V所採用技術和Xen類似,所以也可以把Hyper-V歸屬於半虛擬化。
優點:這種模式和全虛擬化相比,架構更精簡,而且在整體速度上有一定的優勢。
缺點:需要對Guest OS進行修改,所以在用戶體驗方面比較麻煩。
未來:我覺得其將來應該和現在的情況比較類似,在公有雲(比如Amazon EC2)平台上應該繼續佔有一席之地,但是很難在其他方面和類似VMware vSphere這樣的全虛擬化產品競爭,同時它也將會利用硬體輔助虛擬化技術來提高速度,並簡化架構。
硬體輔助虛擬化(Hardware Assisted Virtualization)
簡介:Intel/AMD等硬體廠商通過對部分全虛擬化和半虛擬化使用到的軟體技術進行硬體化(具體將在下文詳述)來提高性能。硬體輔助虛擬化技術常用於優化全虛擬化和半虛擬化產品,而不是獨創一派,最出名的例子莫過於VMware Workstation,它雖然屬於全虛擬化,但是在它的6.0版本中引入了硬體輔助虛擬化技術,比如Intel的VT-x和AMD的AMD-V。現在市面上的主流全虛擬化和半虛擬化產品都支持硬體輔助虛擬化,包括VirtualBox,KVM,VMware ESX和Xen。
優點:通過引入硬體技術,將使虛擬化技術更接近物理機的速度。
缺點:現有的硬體實現不夠優化,還有進一步提高的空間。
未來:因為通過使用硬體技術不僅能提高速度,而且能簡化虛擬化技術的架構,所以預見硬體技術將會被大多數虛擬化產品所採用。
操作系統級虛擬化(Operating System Level Virtualization)
簡介:這種技術通過對伺服器操作系統進行簡單地隔離來實現虛擬化,主要用於VPS。主要的技術有Parallels Virtuozzo Containers,Unix-like系統上的chroot和Solaris上的Zone等。
優點:因為它是對操作系統進行直接的修改,所以實現成本低而且性能不錯。
缺點:在資源隔離方面表現不佳,而且對Guest OS的型號和版本有限定。
未來:不明朗,我覺得除非有革命性技術誕生,否則還應該屬於小眾,比如VPS。
更多的雲計算知識可以參鋒隱考IT號外雲計算全知道,站內提供更多雲計算專業知識交流。
我也是從這裡面找的。
『捌』 雲計算虛擬化四個表現方式
一、全虛擬化,主要是在客戶操作系統和硬體之間捕捉和處理那些對虛擬化敏感的特權指令,使客戶操作系統無需修改就能運行,速度會根據不同的實現而不同,但大致能滿足用戶的需求。
二、半虛擬化,它與完全虛擬化有一些類似,它也利用Hypervisor來實現對底層硬體的共享訪問,但是由於在Hypervisor上面運行的Guest OS已經集成與半虛擬化有關的代碼,使得Guest OS能夠非常好地配合Hyperivosr來實現虛擬化。
三、硬體輔助虛擬化,Intel/AMD等硬體廠商通過對部分全虛擬化和半虛擬化使用到的軟體技術進行硬體化來提高性能。硬體輔助虛擬化技術常用於優化全虛擬化和半虛擬化產品,而不是獨創一派。
四、操作系統級虛擬化,這種技術通過對伺服器操作系統進行簡單地隔離來實現虛擬化,主要用於VPS。主要的技術有Parallels Virtuozzo Containers,Unix-like系統上的chroot和Solaris上的Zone等。
產生背景
互聯網自1960年開始興起,主要用於軍方、大型企業等之間的純文字電子郵件或新聞集群組服務。直到1990年才開始進入普通家庭,隨著web網站與電子商務的發展,網路已經成為了目前人們離不開的生活必需品之一。
以上內容參考網路-雲計算
『玖』 如何提高VMware虛擬化的性能
1.硬碟驅動器對於升級硬碟驅動器能顯著改善虛擬機性能的說法,大家幾乎歷游沒有異議。如果現有環境不是把存儲網路作為工作負荷的中心,可以考慮用多個高速硬碟來實現升級。對於小型公司,由於不需使用集中存儲排列,通常是升級物理硬體內置容量。也就是說,通過更新性能更好的驅動來升級RAID排列,整個運行環境會有很大提高,冗餘也會增加。
對於已有存儲區域網的較大規模環境,考慮利用現有的技術。存儲區域網老化了嗎?依附在存儲區域網上的驅動是否運行得夠快,能夠快速和無縫地訪問一項工作負荷嗎?IT工程師考慮這個問題時,經常會跳過更換存儲區域網這個想法,而讓他們感到疑惑的是盡管有了新伺服器和新虛擬化軟體,他們的虛擬基礎設施為何運行緩慢。
2.CPU虛擬機裝到物理機上時,機載處理器利用率更高了。
從IT工程師的角度看,更快的CPU總能提供更快的處理速度。物理主機有空間允許CPU升級甚至是增加。許多機器配置了開放性CPU槽,以備擴肢源銷容之需。
3.RAM升級RAM可能是挖掘虛擬主機性能最經濟有效的辦法。
通過在裂數主機上升級內存,能夠給每台虛擬機分配更多的RAM。任何一台伺服器都能承載比平常更多的RAM。增加RAM之後,工程師就能再次檢查虛擬機是如何利用資源的。從而,可以根據實際需要,額外分配內存給特定機器以提高效率。