精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

記一次虛擬化環境下Windows IO性能的解析

企業動態
本文主要介紹利用perf、systemtap等工具,幫助一位托管云客戶調試IO性能問題,來分析虛擬環境下Windows IO的性能。

記一次虛擬化環境下Windows IO性能的解析

一、前言

隨著云計算技術與服務的發展和進步,越來越多的客戶選擇將業務部署到云端。但由于引入了虛擬化層,在業務部署過程中經常會遇到IO問題,通常也不易調試。本文主要介紹利用perf、systemtap等工具,幫助一位托管云客戶調試IO性能問題,來分析虛擬環境下Windows IO的性能。

二、問題出現

有一次,托管云客戶自己搭建了虛擬化環境,在同一臺宿主機上創建windows 2008 R2 和 Centos6.5虛擬機,用fio分別測試其隨機讀性能,windows 2008 R2的IOPS大約在18K,而Linux的IOPS卻可以達到100K左右。

• 客戶測試用的fio 配置

  1. [global] 
  2.  
  3. ioengine=windowsaio 
  4.  
  5. direct=1 
  6.  
  7. iodepth=64 
  8.  
  9. thread=1 
  10.  
  11. size=20g 
  12.  
  13. numjobs=1 
  14.  
  15. [4k] 
  16.  
  17. bs=4k 
  18.  
  19. filename=d:test.img 
  20.  
  21. rw=randread 

三、測試結果

  1. win_fio1 

云主機IO棧

云主機IO棧

  1. io stack 

云主機環境下,整個IO棧相對較長,涉及到Guest OS中的應用層/文件系統/Block層以及驅動層,虛擬化層,宿主機OS文件系統/Block層以及驅動層。因為涉及面多,所以其中任何一個環節出現問題都會造成性能下降,也為做IO的Tracing增加了難度。

從這次得到的信息來看,首先排除了宿主機文件系統和Block層以及驅動層的問題,因為同樣情況的配置,Linux系統并沒有問題。

所以目前主要集中于兩點

  • Guest OS(Windows系統)
  • fio程序
  • 文件系統/Block layer
  • VirtIO Block驅動 虛擬機為Guest OS提供的是Virtio Block設備
  • QEMU

如何排除QEMU的嫌疑?

對于IOPS的性能問題,很容易想到兩種可能性:

  • IO延時過高
  • 設備支持IO隊列太短

在隊列的問題方面,Linux和Windows虛擬機對應的Virtio Block設備都是一樣的,那么就需要確認延時問題。

QEMU 完成Block IO花了多長時間?

幸運的是,Stefan Hajnoczi已經為QEMU添加了Tracing的特性,因此可以很方便的統計出QEMU從接收到一個IO請求到完成所用的具體時長。

QEMU 完成Block IO花了多長時間?

從上述統計來看,平均IO完成時間在130us,由此暫時排除QEMU 層造成太高延時的影響。另外,如果關注這種動態Tracing的overhead,從測試觀察上大致接近20%。

排除隊列和延時問題,可能造成影響的也只有Guest OS了。

VirtIO Block驅動的問題?

至少更新到***穩定版本的Virtio-Win驅動,仍然存在同樣的問題。

Windows 文件系統/Block層的問題?

原生Windows系統在確認后并沒有做任何配置上的修改。

fio測試程序的問題

為什么Linux上fio沒有問題呢?

四、兩種可能性

在性能排查過程中,總是很容易陷入死局,經常會問到底是哪兒出了問題?因此一切可能影響的因素似乎都沒有做任何變動。從經驗來看,大部分性能問題都可以分成兩種可能:

  • on cpu
  • off cpu

重新來看這個問題 ,在基本排除IO延時問題后,對應的問題還有兩種可能性:

  • CPU極其忙碌,但是大部分時間并不是在做IO處理;
  • CPU經常處于空閑狀態,那相應的也沒有主要在處理IO。

注:之所以說到目前為止并不能排除IO延時的影響,是因為只排除了QEMU Block層可能的影響,但是還有Guest OS(這次暫時忽略Guest OS)。

先看測試過程中,虛擬機的CPU消耗情況。

  1. top -H -p 36256 

  1. win_fio1 

從上圖來看,QEMU主線程的cpu負載已經達到90%以上,似乎符合on cpu類問題。通常來說,解決這類問題***的辦法就是用perf進程采樣,然后生成火焰圖,因為首先查看CPU具體消耗在什么地方是一個不錯的選擇。

  1. perf record -a -g -p 36256 sleep 20 

生成火焰圖:

生成火焰圖

  1. win2008-bad 

可以清楚的看到,cpu大部分消耗都是KVM的操作,其中最主要的消耗是vmx_handle_exit。(真實的火焰圖是一個矢量圖,用瀏覽器查看很容易確認)。這里引起vmx_handle_exit主要有兩點:

  • 訪問IO Port(handle_pio)
  • 訪問 MMIO(handle_apic_access)

既然KVM模塊占了大部分,那就更希望了解測試時KVM的真實行為,通過另一個工具(kvm_stat)可以達到。

  1. kvm_pio 

除VM Entry和VM Exit事件外,***的就是kvm_pio和 kvm_mmio,說明Windows確實有大量IO Port和MMIO操作,這也驗證了在火焰圖上所得出的結論。

在虛擬化里,IO Port或者MMIO都可能引起VM Exit,甚至是Heavy Exit。如果需要改善性能,一般都會盡量避免這種情況,至少避免Heavy Exit.

具體訪問哪些IO Port和MMIO導致的VM Exit?

對于這個問題,KVM模塊已經加了很多trace event,上面的kvm_stat也是利用這些trace event,只是并沒有把具體trace event信息打印出來。為了獲取trace-event的信息,有很多前端工具,如trace-cmd、perf,都是不錯的選擇。

• 查看所有kvm模塊的trace event

  1. [xs3c@devhost1 ]# trace-cmd list -e | grep kvm 
  2.  
  3. kvmmmu:kvm_mmu_pagetable_walk 
  4.  
  5. kvmmmu:kvm_mmu_paging_element 
  6.  
  7. kvmmmu:kvm_mmu_set_accessed_bit 
  8.  
  9. kvmmmu:kvm_mmu_set_dirty_bit 
  10.  
  11. kvmmmu:kvm_mmu_walker_error 
  12.  
  13. kvmmmu:kvm_mmu_get_page 
  14.  
  15. kvmmmu:kvm_mmu_sync_page 
  16.  
  17. kvmmmu:kvm_mmu_unsync_page 
  18.  
  19. kvmmmu:kvm_mmu_zap_page 
  20.  
  21. kvm:kvm_entry 
  22.  
  23. kvm:kvm_hypercall 
  24.  
  25. kvm:kvm_pio 
  26.  
  27. kvm:kvm_cpuid 
  28.  
  29. kvm:kvm_apic 
  30.  
  31. kvm:kvm_exit 
  32.  
  33. kvm:kvm_inj_virq 
  34.  
  35. kvm:kvm_inj_exception 
  36.  
  37. kvm:kvm_page_fault 
  38.  
  39. kvm:kvm_msr 
  40.  
  41. kvm:kvm_cr 
  42.  
  43. kvm:kvm_pic_set_irq 
  44.  
  45. kvm:kvm_apic_ipi 
  46.  
  47. kvm:kvm_apic_accept_irq 
  48.  
  49. kvm:kvm_eoi 
  50.  
  51. kvm:kvm_pv_eoi 
  52.  
  53. kvm:kvm_write_tsc_offset 
  54.  
  55. kvm:kvm_ple_window 
  56.  
  57. kvm:kvm_vcpu_wakeup 
  58.  
  59. kvm:kvm_set_irq 
  60.  
  61. kvm:kvm_ioapic_set_irq 
  62.  
  63. kvm:kvm_ioapic_delayed_eoi_inj 
  64.  
  65. kvm:kvm_msi_set_irq 
  66.  
  67. kvm:kvm_ack_irq 
  68.  
  69. kvm:kvm_mmio 

KVM模塊添加了許多trace event的點,這里只抓起其中兩個——kvm:kvm_pio和kvm:kvm_mmio。

  1. trace-cmd-pio-mmio 

通過統計發現主要訪問的:

  • IO Port是0x608和0xc050;
  • MMIO是0xFEE003xx

經由qemu info mtree命令,可以查看IO Port 608、c050以及FEE003xx分別對應的具體設備。

IO Port

  1. 0000000000000608-000000000000060b (prio 0, RW): acpi-tmr 000000000000c040-000000000000c07f (prio 1, RW): virtio-pci 

MMIO

  1. 00000000fee00000-00000000feefffff (prio 4096, RW): icc-apic-container 

c050可以忽略,這個被Virtio Block來做VM Exit。

到目前為止,可以判斷出wnidows大量讀取ACPI Power Manager Timer以及訪問APIC寄存器,進而導致過多vm exit產生,消耗大量CPU資源,因此就可以具體討論兩個問題:

  • 如何減少讀取ACPI PM Timer寄存器而引起的VM Exit;
  • 如何減少訪問APIC MMIO導致的VM Exit。

如何減少讀取ACPI PM Timer而引起的VM Exit?

從虛擬化層優化的思路來說,減少IO Port引發的VM Exit通常會考慮是否可以利用Paravirtulization替換Full-virtualization 以達到目的,來看Windows在這方面是如何做的。

從Windows 7開始,微軟為了使Windows 操作系統能夠在HyperV得到更好性能,特意為Windows系統做了很多虛擬化方面的增強工作,其中就包括這里可以利用到的HyperV Timer,這個特性類似于Linux中的kvmclock。

從當前的支持情況來看:

  • Windows 7
  • Windows 7 SP1
  • Windows Server 2008 R2
  • Windows Server 2008 R2 SP1/SP2
  • Windows 8/8.1/10
  • Windows Server 2012
  • Windows Server 2012 R2

這些Windows系統都包含虛擬化增強功能,更多的信息在微軟官方網站。

2014年,RedHat工程師Vadim Rozenfeld和Peter Krempa 分別為qemu和libvirt添加了HyperV Timer的支持,所以可以直接通過libvirt使能HyperV Timer。

  1. <clock ...>   
  2.      
  3.     <timer name='hypervclock' present='yes'/>   
  4.  
  5. </clock> 

 

另外,KVM里很早也支持了HyperV Timer,只是客戶的宿主機內核版本并不支持該功能,所以需要為客戶升級UCloud自己維護的內核版本。

如何減少APIC ACCESS而引起 VM Exit?

Intel CPU也已經支持apic-v,同樣升級到UCloud自己維護的內核版本來解決。

五、最終效果

  1. win-fio-good 

  1. win-good 

六、總結

從這個案例可以看出,跟物理環境相比,在虛擬化環境下,Windows IO性能較差時,并不一定真正是IO路徑出現問題,可能是一些虛擬化性能的問題對IO性能造成了很大影響。

【本文是51CTO專欄機構作者“大U的技術課堂”的原創文章,轉載請通過微信公眾號(ucloud2012)聯系作者】

 戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-06-16 15:18:15

虛擬化WindowsIO

2011-08-12 09:30:02

MongoDB

2023-01-05 11:44:43

性能HTTPS

2023-12-13 09:01:40

2023-04-26 12:48:58

.NET程序類型

2021-11-11 16:14:04

Kubernetes

2020-08-10 11:00:02

Python優化代碼

2021-03-01 06:14:50

環境高并發延遲

2013-01-17 10:31:13

JavaScriptWeb開發firebug

2021-05-13 08:51:20

GC問題排查

2011-02-22 09:29:23

jQueryJavaScript

2019-03-15 16:20:45

MySQL死鎖排查命令

2013-04-01 10:27:37

程序員失業

2023-06-07 07:31:04

PC端app脫殼技巧

2021-12-20 10:15:16

zip密碼命令網絡安全

2011-09-27 10:35:44

2023-04-06 07:53:56

Redis連接問題K8s

2017-07-07 16:07:41

2014-08-11 09:31:52

2022-01-07 11:48:59

RabbitMQGolang 項目
點贊
收藏

51CTO技術棧公眾號

久久久久久久9| 亚洲手机视频| 日本欧洲一区二区| 欧美日韩精品一区二区三区| 欧美国产中文字幕| 性欧美极品xxxx欧美一区二区| 国产裸体永久免费无遮挡| 久久国产精品色av免费看| 亚洲欧洲国产专区| 国产成人在线精品| 国产精品久久AV无码| 免费a在线看| 自拍自偷一区二区三区| 亚洲免费三区一区二区| 国产精品夜间视频香蕉| 国产精品探花一区二区在线观看| a视频在线免费看| 蜜桃视频一区二区三区| 亚洲色图激情小说| 国产白丝袜美女久久久久| 亚洲AV无码一区二区三区性| 国产精品久久久乱弄| 欧美日韩三级一区二区| 欧洲一区二区日韩在线视频观看免费| 激情视频在线播放| 成人亚洲精品| 亚洲人精品一区| 亚洲va电影大全| 欧美性x x x| 国产一区高清| 国产精品免费视频观看| 国产精品黄色av| 影音先锋男人看片资源| 欧美日韩五码| 国产精品进线69影院| 国产久一一精品| 日韩欧美国产亚洲| 清纯唯美亚洲经典中文字幕| 天天综合色天天综合| 精品伊人久久大线蕉色首页| 国产成人精品片| 亚洲网色网站| 亚洲а∨天堂久久精品9966| www污在线观看| 日本视频在线观看一区二区三区| 日韩网站在线| 亚洲图片在区色| 亚洲一级片网站| 综合图区亚洲| 91免费看片在线观看| 日韩av男人的天堂| 国产黄色小视频网站| 郴州新闻综合频道在线直播| 555夜色666亚洲国产免| 久久亚洲精品无码va白人极品| 在线免费观看的av网站| 激情成人综合网| 欧美猛男性生活免费| 天天插天天射天天干| 国内毛片久久| 欧美老人xxxx18| 欧美网站免费观看| 中文字幕成在线观看| 亚洲欧洲在线观看av| 青青草成人激情在线| 精品福利视频导航大全| 国产高清不卡二三区| 欧美在线播放视频| 国产又黄又粗又猛又爽的| 澳门成人av| 精品视频在线视频| 国产3p在线播放| 黄色在线网站噜噜噜| 国产精品色呦呦| 宅男在线精品国产免费观看| 手机看片福利永久| 久久精品国产精品亚洲综合| 98精品在线视频| 成人在线观看小视频| 综合久久十次| 91精品国产91久久久久久久久| 国产无人区码熟妇毛片多| 亚洲成人tv| 国产亚洲美女精品久久久| 黄色av免费播放| 激情小说一区| 国产一区二区三区在线播放免费观看| 国产又粗又猛又爽又黄的视频小说| 久久中文字幕二区| 亚洲女成人图区| 在线中文字日产幕| **国产精品| 欧美色区777第一页| 天天综合成人网| 国产精品久久久久久吹潮| 精品久久久久久国产| 欧美午夜性生活| 日韩综合一区二区三区| 欧美日韩国产一级二级| 年下总裁被打光屁股sp| 经典一区二区| 日韩一区二区在线观看视频播放| 亚洲77777| 免费福利视频一区二区三区| 亚洲6080在线| 国产精品69久久久| 精品裸体bbb| 欧美视频完全免费看| 国产免费成人在线| 韩国成人动漫| 日韩欧美区一区二| 亚洲国产欧美日韩在线| 亚洲午夜国产成人| 精品五月天久久| 国产精品无码一区二区三| 日韩av免费大片| 日韩中文字幕亚洲| 男人天堂资源网| 国产日韩欧美一区在线| 欧美亚洲一级片| 精品国产亚洲av麻豆| 国产乱妇无码大片在线观看| 亚洲精品免费一区二区三区| 青青草娱乐在线| 亚洲愉拍自拍另类高清精品| 少妇人妻大乳在线视频| 精精国产xxxx视频在线野外| 欧美三级电影在线看| 大地资源二中文在线影视观看| 亚洲精品小说| 91精品国产自产在线老师啪| 91亚洲国产成人精品一区| 精品在线一区二区三区| 91在线色戒在线| 国产小视频免费观看| 成人午夜激情影院| 久久涩涩网站| 99se视频在线观看| 日本精品一区二区三区高清 | 色综合咪咪久久网| 日韩美女av在线免费观看| 免费观看国产视频| 91视频观看视频| 成年人午夜视频在线观看| 欧美日韩国产v| 欧美日韩成人激情| 91社区视频在线观看| 日韩国产欧美在线观看| 91精品入口蜜桃| 日本福利片在线| 午夜精品久久久久久久| 天天躁日日躁狠狠躁av| 免费黄色成人| 日韩中文字幕免费视频| 国产无遮挡又黄又爽又色视频| 久久精品免费看| 亚洲成人18| 免费电影视频在线看| 日韩欧美国产免费播放| 国产永久免费网站| 亚洲性视频大全| 日韩av电影在线免费播放| 欧美伦理影视网| 亚洲欧美日韩电影| 国产亚洲色婷婷久久| 久操国产精品| 国产精品高清免费在线观看| 三区四区在线视频| 香蕉影视欧美成人| theav精尽人亡av| 日本三级亚洲精品| 亚洲av首页在线| 中文字幕在线看片| 亚洲深夜福利网站| 在线观看国产一区二区三区| 99免费精品视频| 精品少妇人妻av一区二区| av日韩电影| 中文字幕在线精品| 老熟妇仑乱一区二区av| 风间由美性色一区二区三区| 一区二区三区的久久的视频| 在线中文字幕播放| 色综久久综合桃花网| 精品国产xxx| 国产精品理论片| 俄罗斯黄色录像| 日韩av一区二区在线影视| 男人j进女人j| 久久精品国产福利| 久久久久久国产精品| 一级淫片免费看| 亚洲福利视频三区| 波多野结衣电影免费观看| 99这里有精品| 在线视频不卡一区二区三区| 国产图片一区| 成人国产精品色哟哟| 香蕉视频国产在线观看| 精品区一区二区| 久久久久免费看| 国产中文字幕精品| 在线天堂一区av电影| 国产劲爆久久| 国产中文字幕日韩| www.精品| 久久露脸国产精品| 国产18精品乱码免费看| 91黄色免费观看| 国产网址在线观看| 成人av电影在线播放| 国产精品国产对白熟妇| 日韩亚洲一区在线| 欧美日本亚洲| 国产精品久久久久77777丨| 97精品国产97久久久久久| 日韩专区第一页| 91麻豆精品国产91久久久使用方法| 青青青国产在线| 久久视频一区二区| 激情五月亚洲色图| 日本不卡二三区| 久久精品99久久| 国产精品视屏| 岛国视频一区免费观看| 97人澡人人添人人爽欧美| 日韩av最新在线| 欧产日产国产69| 午夜精品久久久久| 久草视频免费播放| 一区二区三区四区av| 男人的天堂影院| 久久中文在线| 中文精品视频一区二区在线观看| 丝袜连裤袜欧美激情日韩| 国产精品99导航| 在线播放高清视频www| 久久久这里只有精品视频| 在线欧美三级| 欧美第一淫aaasss性| 操你啦在线视频| 毛片精品免费在线观看| 色窝窝无码一区二区三区成人网站 | 多野结衣av一区| 国内外成人免费激情在线视频网站| 中文字幕有码在线视频| 久久久久www| 熟妇人妻系列aⅴ无码专区友真希| 日韩一区二区三区电影| 国产免费一区二区三区最新不卡| 欧美精品v日韩精品v韩国精品v| 亚洲一区 中文字幕| 欧美日韩免费在线视频| 在线免费看av片| 3atv在线一区二区三区| a级片在线播放| 日韩欧美在线视频免费观看| 性无码专区无码| 91福利社在线观看| 中文字幕一二区| 亚洲国产成人av网| 久久露脸国语精品国产91| 午夜激情一区二区| 日韩电影在线观看一区二区| 亚洲精品免费视频| 久久久久成人网站| 岛国精品视频在线播放| 国产第一页浮力| 一区二区三区成人| 中文字幕在线观看免费视频| 在线亚洲欧美专区二区| 国产精品 欧美 日韩| 污片在线观看一区二区 | 欧洲精品一区二区| 国产免费av电影| 亚洲国产另类久久精品| 在线视频播放大全| 日韩欧美国产精品一区| 亚洲av毛片成人精品| 日韩欧美精品在线视频| 色婷婷av一区二区三区之红樱桃| 亚洲欧美日韩精品| 国产福利视频在线| 91国产视频在线| 日韩欧国产精品一区综合无码| 1769国产精品| 黄色成人在线观看网站| 成人午夜电影免费在线观看| 蜜桃一区二区三区| 国产一级黄色录像片| 国产精品美女久久久| 国产无遮挡猛进猛出免费软件| 国产91丝袜在线播放九色| 老熟妇一区二区| 久久亚洲一级片| 老熟妻内射精品一区| 动漫精品一区二区| 国产av一区二区三区精品| 精品一区二区三区四区| 在线播放蜜桃麻豆| 国产精品精品视频一区二区三区| 一区三区自拍| av免费精品一区二区三区| www.久久久.com| 蜜桃av噜噜一区二区三| 色婷婷精品视频| 男插女免费视频| 久久亚洲精品伦理| 亚洲av无码专区在线播放中文| 亚洲国产电影在线观看| 毛片aaaaaa| 婷婷丁香激情综合| 国产chinasex对白videos麻豆| 亚洲欧洲日产国产网站| 国精一区二区三区| 97精品伊人久久久大香线蕉| 欧美风情在线视频| 日韩久久不卡| 天天综合一区| 99免费视频观看| 99re8在线精品视频免费播放| 久久久久国产精品区片区无码| 综合欧美亚洲日本| 成人黄色片在线观看| 欧美日韩色综合| 成人在线免费看| 久久精品国产精品亚洲| 欧美日韩在线精品一区二区三区激情综合| 国产精品一区二区三区精品| 青青久久av| av免费观看国产| 成人性生交大片免费| 中文字幕亚洲欧美日韩| 亚洲国产视频一区二区| 日本一级淫片免费放| 色婷婷精品大在线视频| 在线视频欧美亚洲| 伊人久久久久久久久久久| 巨大荫蒂视频欧美大片| 欧美裸身视频免费观看| 婷婷激情成人| 在线免费观看成人| 狠狠色狠狠色综合系列| 久草福利资源在线| 亚洲午夜一二三区视频| 亚洲精品国产av| 欧美激情小视频| 天堂精品久久久久| 99国产精品白浆在线观看免费| 国产成人在线免费观看| 九九视频在线免费观看| 精品久久免费看| 麻豆理论在线观看| 国产在线一区二区三区| 97精品视频| 在线播放黄色av| 亚洲综合一区二区精品导航| 国精产品乱码一区一区三区四区| 久久久久五月天| 婷婷成人影院| 婷婷六月天在线| 综合精品久久久| 丰满人妻熟女aⅴ一区| 97精品在线视频| 成人嫩草影院| 下面一进一出好爽视频| 午夜电影网一区| 国产粉嫩一区二区三区在线观看| 欧美激情精品在线| 超碰成人在线观看| 免费无码国产v片在线观看| 精品一区二区免费视频| 在线观看成人毛片| 91久久香蕉国产日韩欧美9色| 国产乱理伦片a级在线观看| 国产日韩换脸av一区在线观看| 中文无码久久精品| 中文成人无字幕乱码精品区| 一本色道a无线码一区v| 日本中文字幕视频在线| 成人自拍偷拍| 喷水一区二区三区| 精品小视频在线观看| 亚洲性69xxxbbb| 亚洲精品黑牛一区二区三区| 欧美 激情 在线| 亚洲色图欧美激情| 日韩在线免费看| 亚洲一区二区三区在线免费观看| 一本综合久久| 91视频青青草| 亚洲美女又黄又爽在线观看| 婷婷久久免费视频| 国产女女做受ⅹxx高潮| 亚洲免费色视频| 韩日在线视频| 国产精品久久久久久久久久直播| 日韩av电影天堂| 日韩毛片在线播放| 久久夜精品va视频免费观看|