云计算和虚拟机基础梳理
云計(jì)算介紹
云計(jì)算是一種按使用量付費(fèi)的模式,這種模式提供可用的、便捷的、按需的網(wǎng)絡(luò)訪問,進(jìn)入可配置的計(jì)算資源共享池,(資源包括網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用軟件、服務(wù)),這些資源能夠被快速提供,需要投入很少的管理工作,或與服務(wù)供應(yīng)商進(jìn)行很少的交互。
1)云計(jì)算之前的使用模式
IDC 托管
IDC 租用
虛擬主機(jī)(買空間)
VPS:虛擬專用主機(jī)
2)傳統(tǒng)數(shù)據(jù)中心面臨的問題
資源使用率低
資源分配不均
自動化能力差
3)云計(jì)算的優(yōu)勢
云計(jì)算是一種使用模式,不是一種技術(shù)
云計(jì)算的使用方式:通過網(wǎng)絡(luò)訪問
云計(jì)算的優(yōu)勢:彈性計(jì)算、按需計(jì)費(fèi)
4)云計(jì)算的特點(diǎn)
資源池化
無處不在的網(wǎng)絡(luò)訪問
可隨時(shí)調(diào)節(jié)的自助服務(wù)
可測量的服務(wù)量
快速的變化伸縮
5)云計(jì)算的服務(wù)模式
1--支撐服務(wù)
由支撐網(wǎng)絡(luò)來提供,云計(jì)算模式實(shí)現(xiàn)的使用的方式。
2--IaaS基礎(chǔ)設(shè)施即服務(wù)
消費(fèi)者通過支撐網(wǎng)絡(luò)可以從完善的計(jì)算機(jī)基礎(chǔ)設(shè)施獲得服務(wù)。這類服務(wù)稱為基礎(chǔ)設(shè)施即服務(wù),基于 Internet 的服務(wù)(如存儲和數(shù)據(jù)庫)是 IaaS的一部分。
3--PaaS平臺即服務(wù)
PaaS(Platform-as-a-Service:平臺即服務(wù))是指將軟件研發(fā)的平臺作為一種服務(wù),以SaaS的模式提交給用戶。因此,PaaS也是SaaS模式的一種應(yīng)用。
4--SaaS
它是一種通過Internet提供軟件的模式,廠商將應(yīng)用軟件統(tǒng)一部署在自己的服務(wù)器上,客戶可以根據(jù)自己實(shí)際需求,通過互聯(lián)網(wǎng)向廠商定購所需的應(yīng)用軟件服務(wù),按定購的服務(wù)多少和時(shí)間長短向廠商支付費(fèi)用,并通過互聯(lián)網(wǎng)獲得廠商提供的服務(wù)。用戶不用再購買軟件,而改用向提供商租用基于Web的軟件,來管理企業(yè)經(jīng)營活動,且無需對軟件進(jìn)行維護(hù),服務(wù)提供商會全權(quán)管理和維護(hù)軟件,軟件廠商在向客戶提供互聯(lián)網(wǎng)應(yīng)用的同時(shí),也提供軟件的離線操作和本地?cái)?shù)據(jù)存儲,讓用戶隨時(shí)隨地都可以使用其定購的軟件和服務(wù)。對于許多小型企業(yè)來說,SaaS是采用先進(jìn)技術(shù)的最好途徑,它消除了企業(yè)購買、構(gòu)建和維護(hù)基礎(chǔ)設(shè)施和應(yīng)用程序的需要。
6)云計(jì)算的類型
1--公有云
公有云通常指第三方提供商為用戶提供的能夠使用的云,公有云一般可通過 Internet 使用,可能是免費(fèi)或成本低廉的,公有云的核心屬性是共享資源服務(wù)。這種云有許多實(shí)例,可在當(dāng)今整個(gè)開放的公有網(wǎng)絡(luò)中提供服務(wù)。例如:阿里云、騰訊云、青云、百度云、盛大云、迅達(dá)云、等等。
2--私有云
私有云(Private Clouds)是為一個(gè)客戶單獨(dú)使用而構(gòu)建的,因而提供對數(shù)據(jù)、安全性和服務(wù)質(zhì)量的最有效控制。該公司擁有基礎(chǔ)設(shè)施,并可以控制在此基礎(chǔ)設(shè)施上部署應(yīng)用程序的方式。私有云可部署在企業(yè)數(shù)據(jù)中心的防火墻內(nèi),也可以將它們部署在一個(gè)安全的主機(jī)托管場所,私有云的核心屬性是專有資源。
3--混合云
混合云融合了公有云和私有云,是近年來云計(jì)算的主要模式和發(fā)展方向。我們已經(jīng)知道私企業(yè)主要是面向企業(yè)用戶,出于安全考慮,企業(yè)更愿意將數(shù)據(jù)存放在私有云中,但是同時(shí)又希望可以獲得公有云的計(jì)算資源,在這種情況下混合云被越來越多的采用,它將公有云和私有云進(jìn)行混合和匹配,以獲得最佳的效果,這種個(gè)性化的解決方案,達(dá)到了既省錢又安全的目的。
虛擬化介紹
擬化,是指通過虛擬化技術(shù)將一臺計(jì)算機(jī)虛擬為多臺邏輯計(jì)算機(jī)。在一臺計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)邏輯計(jì)算機(jī),每個(gè)邏輯計(jì)算機(jī)可運(yùn)行不同的操作系統(tǒng),并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率。
虛擬化使用軟件的方法重新定義劃分IT資源,可以實(shí)現(xiàn)IT資源的動態(tài)分配、靈活調(diào)度、跨域共享,提高IT資源利用率,使IT資源能夠真正成為社會基礎(chǔ)設(shè)施,服務(wù)于各行各業(yè)中靈活多變的應(yīng)用需求。
1)虛擬化的分類
全虛擬化:直接使用底層的硬件 比如:KVM
半虛擬化:通過一個(gè)中間件,來調(diào)用底層的硬件 比如:xen
平臺虛擬化
硬件虛擬化(Inter vt-x/EPT) (AMD AMD-v /RVI)
軟件虛擬化
桌面虛擬化
應(yīng)用虛擬化
存儲虛擬化
網(wǎng)絡(luò)虛擬化
2)虛擬化的優(yōu)勢
虛擬化可以虛擬出不同的虛擬操作系統(tǒng)。
虛擬機(jī)之間是相互獨(dú)立互不影響的。
支持異構(gòu)。
支持快照、克隆、還原等操作
云計(jì)算與虛擬化的區(qū)別與聯(lián)系
云計(jì)算與虛擬化的區(qū)別與聯(lián)系
1)虛擬化是一種技術(shù),云計(jì)算是一種使用模式。
2)虛擬化是指將物理的實(shí)體,通過軟件模式,形成若干虛擬存在的系統(tǒng),其實(shí)真是運(yùn)作還是在實(shí)體上,只是劃分了若干區(qū)域或者時(shí)域劃分。
3)云計(jì)算的基礎(chǔ)是虛擬化,但虛擬化只是云計(jì)算的一部分,云計(jì)算其實(shí)就是在虛擬化出若干資源池以后的應(yīng)用,但虛擬化并不是只對應(yīng)云計(jì)算的。
KVM虛擬化
KVM是開源軟件,全稱是kernel-based virtual machine(基于內(nèi)核的虛擬機(jī))。
KVM是x86架構(gòu)且硬件支持虛擬化技術(shù)(如 intel VT 或 AMD-V)的Linux全虛擬化解決方案。
它包含一個(gè)為處理器提供底層虛擬化 可加載的核心模塊kvm.ko(kvm-intel.ko或kvm-AMD.ko)。
KVM還需要一個(gè)經(jīng)過修改的QEMU軟件(qemu-kvm),作為虛擬機(jī)上層控制和界面。
KVM能在不改變linux或windows鏡像的情況下同時(shí)運(yùn)行多個(gè)虛擬機(jī),(它的意思是多個(gè)虛擬機(jī)使用同一鏡像)并為每一個(gè)虛擬機(jī)配置個(gè)性化硬件環(huán)境(網(wǎng)卡、磁盤、圖形適配器……)。
1)KVM的優(yōu)勢
嵌入到Linux的Kernel中 (提高兼容性)
代碼級資源調(diào)用(提高性能)
虛擬機(jī)就是一個(gè)進(jìn)程
直接支持MUMA技術(shù)(NUMA(Non Uniform Memory Access Architecture)技術(shù)可以使眾多服務(wù)器像單一系統(tǒng)那樣運(yùn)轉(zhuǎn),同時(shí)保留小系統(tǒng)便于編程和管理的優(yōu)點(diǎn)。
2)KVM安裝前提
CPU要支持虛擬化,服務(wù)器上默認(rèn)一般是開啟的,虛擬機(jī)要自己啟動VT-EPT技術(shù)
[root@oldboy-node1 ~]# grep -E "(vmx|svm)" /proc/cpuinfo
Inter處理器對應(yīng):VMX
AMD處理器對應(yīng):SVM
3)KVM虛擬機(jī)安裝
查看系統(tǒng)版本
[root@linux-node1~]# cat /etc/redhat-release
CentOSLinux release 7.1.1503 (Core)
安裝KVM相關(guān)的組件
[root@oldboy-node1 ~]# yum -y install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install
kvm:linux內(nèi)核中的一個(gè)模塊,不需要安裝只要加載就行,通過用戶態(tài)進(jìn)程來管理。
qemu:虛擬化軟件,支持多種架構(gòu),可擴(kuò)展,可移植
qemu-kvm:用戶態(tài)管理KVM,網(wǎng)卡、聲卡、PCI設(shè)備等的管理
libvirt:是一個(gè)虛擬化 API 和虛擬機(jī)(VMs)管理后臺,支持遠(yuǎn)程或本地訪問,支持多種虛擬化后端 (QEMU/KVM, VirtualBox, Xen,等等) 。
檢查KVM是否加載
[root@oldboy-node1 ~]# lsmod | grep kvm
kvm_intel 148081 0
kvm 461126 1 kvm_intel
啟動并設(shè)置開機(jī)啟動libvirt
[root@linux-node1~]# systemctl enable libvirtd.service
[root@linux-node1~]# systemctl start libvirtd.service
[root@oldboy-node1 ~]# systemctl status libvirtd.service
創(chuàng)建虛擬機(jī)
1--虛擬機(jī)的創(chuàng)建命令
–virt-type:指定虛擬機(jī)類型(kvm、qemu、xen)
–name:指定虛擬機(jī)的名稱
–raw:指定內(nèi)存大小
–cpu:指定cpu的核數(shù)(默認(rèn)為1)
–cdrom:指定鏡像
–disk:指定磁盤路徑(即上文創(chuàng)建的虛擬磁盤)
–network:指定網(wǎng)絡(luò)類
2--創(chuàng)建硬盤(創(chuàng)建虛擬磁盤,-f指定格式,路徑/opt/CentOS-7.1-x86_64.raw,大小10G)
[root@oldboy-node1 ~]# qemu-img create -f raw /opt/CentOS-7.1-x86_64.raw 10G
Formatting '/opt/CentOS-7.1-x86_64.raw', fmt=raw size=10737418240
3--鏡像的拷貝
[root@oldboy-node1 ~]# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso
4--虛擬機(jī)的創(chuàng)建
[root@oldboy-node1 ~]# virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/opt/CentOS-7.1-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
5--使用VNC連接虛擬機(jī)
使用VNC客戶端連接虛擬機(jī) 物理機(jī)的地址:5900 默認(rèn)是從5900開始,以此類推。也可以通過端口grep vnc查看。
6--修改網(wǎng)卡的名稱
因?yàn)镃entOS7以后,網(wǎng)卡的命名發(fā)生改變。可以在安裝的時(shí)候就做出修改
按下Tab鍵,然后在quiet后面添加 net.ifnames=0 biosdevname=0
至此,一臺KVM虛擬機(jī)安裝成功。
KVM的日常應(yīng)用管理
1--虛擬機(jī)的查看
# 當(dāng)前正在運(yùn)行中的虛擬機(jī)
[root@linux-node1 opt]# virsh list
Id Name State
—————————————————-
1 CentOS-7-x86_64running
# 當(dāng)前物理機(jī)中的所有的虛擬機(jī)
[root@linux-node1 opt]# virsh list --all
也可以在物理機(jī)進(jìn)程中查看,KVM虛擬機(jī)就是一個(gè)KVM進(jìn)程在運(yùn)行
2--虛擬機(jī)的開關(guān)
關(guān)閉虛擬機(jī)
[root@oldboy-node1 ~]# virsh shudown CentOS-7.1-x86_64(主機(jī)名)
[root@oldboy-node1 ~]# virsh destroy CentOS-7.1-x86_64(主機(jī)名)
打開虛擬機(jī)
[root@oldboy-node1 ~]# virsh start CentOS-7.1-x86_64
刪除虛擬機(jī)
[root@oldboy-node1 ~]# virsh undefine CentOS-7.1-x86_64
掛起
[root@oldboy-node1 ~]# virsh suspended CentOS-7.1-x86_64
恢復(fù)
[root@oldboy-node1 ~]# virsh resume CentOS-7.1-x86_64
3--虛擬機(jī)CPU的擴(kuò)容
編輯虛擬機(jī)
virsh edit CentOS-7.1-x86_64
# 為了實(shí)現(xiàn)CPU的熱添加,就需要更改Cpu的最大值,當(dāng)然熱添加值不能超過最大值
# 當(dāng)前為1,自動擴(kuò)容最大為4
[root@linux-node1 opt]# virsh edit CentOS-7-x86_64
<vcpu placement=’auto’ current=”1″>4</vcpu>
# 熱修改為2個(gè)cpu(不知減少),高版本自動激活
[root@linux-node1 opt]# virsh setvcpus CentOS-7-x86_64 2 –live
# 通過vnc登錄KVM虛擬機(jī)查看是否擴(kuò)容成功
[root@KVM]# grep processor /proc/cpuinfo |wc -l
# 在創(chuàng)建虛擬機(jī)時(shí)指定cpu
[root@linux-node1 ~]# virt-install –help|grep vcpus
–vcpus VCPUS
"""
為虛擬機(jī)配置的 vcpus 數(shù)。
例如:
–vcpus 5
–vcpus 5,maxcpus=10,cpuset=1-4,6,8
–vcpus sockets=2,cores=4,threads=2,
"""
4--內(nèi)存熱膨脹和壓縮
# 查看當(dāng)前KVM內(nèi)存大小
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7-x86_64 –hmp –cmd info balloon
balloon: actual=1024
# 熱添加600M
[root@linux-node1 ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 –hmp –cmd balloon 600
# 在配置文件中修改
[root@linux-node1 network-scripts]# virsh edit CentOS-7.1-1-x86_64
最大內(nèi)存<memory unit='KiB'>4048576</memory>
當(dāng)前內(nèi)存<currentMemory unit='KiB'>1048576</currentMemory>
5--硬盤的模式
生產(chǎn)中不建議對線上的服務(wù)器的硬盤進(jìn)行更改,因此直接不對此贅述。
硬盤格式:
RAW:全鏡像格式:設(shè)置多大就是多大,寫入速度快,可以隨便轉(zhuǎn)換成其他的格式。性能最優(yōu)。但是占用空間大。
QCOW2:稀疏格式:支持寫時(shí)拷貝(Cow,copy-on-write)壓縮,快照,鏡像,更小的存儲空間。(用多少給多少)可選擇基于Zlib的壓縮方式,可以選擇AES加密
創(chuàng)建qcow2和raw文件
[root@linux-node1 ~]# qemu-img create -f qcow2 test.qcow2 10G
Formatting 'test.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
[root@linux-node1 ~]# qemu-img create -f raw test.raw 10G
Formatting 'test.raw', fmt=raw size=10737418240
空間使用情況對比
[root@linux-node1 ~]# ll -sh test.*
200K -rw-r--r-- 1 qiaoliyong qiaoliyong 193K 5 月 6 10:29 test.qcow2
0 -rw-r--r-- 1 qiaoliyong qiaoliyong 10G 5 月 6 10:28 test.raw
[root@linux-node1 ~]# stat test.raw
文件:"test.raw"
大小:10737418240 塊:0 IO 塊:4096 普通文件
[root@linux-node1 ~]# stat test.qcow2
文件:"test.qcow2"
大小:197120 塊:400 IO 塊:4096 普通文件
6--網(wǎng)卡的配置
# 先建立一個(gè)虛擬網(wǎng)卡,名稱為br0(可以看做是一個(gè)邏輯網(wǎng)段,也可以看做是一個(gè)VLAN名稱)
[root@linux-node1~]# brctl addbr br0
# 查看網(wǎng)卡信息
[root@linux-node1 ~]# brctl show
bridge
name bridge id STP enabled interfaces
br0 8000.000000000000 no
virbr0 8000.5254009f0311 yes virbr0-nic
# 把eth0加入網(wǎng)橋,使用橋接模式,給br0設(shè)置ip段,添加路由網(wǎng)關(guān),關(guān)閉防火墻
[root@linux-node1 ~]# brctl addif br0 eth0 && ip addr del dev eth0 192.168.56.111/24 && ifconfig br0 192.168.56.111/24 up && route add default gw192.168.56.2 && iptables -F
# 查看網(wǎng)橋的IP
[root@linux-node1~]# ifconfig br0
br0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.111 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::20c:29ff:fe5d:cc27 prefixlen 64scopeid 0x20<link>
ether 00:0c:29:5d:cc:27 txqueuelen 0(Ethernet)
RX packets 4813 bytes 472527 (461.4 KiB)
RX errors 0 dropped 0overruns 0 frame 0
TX packets 2705 bytes 510369 (498.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0collisions 0
# 編輯虛擬機(jī)的網(wǎng)絡(luò)配置使用br0網(wǎng)橋模式
[root@linux-node1 ~]# virsh edit CentOS-7-x86_64
<interface type=’bridge’> #虛擬機(jī)網(wǎng)絡(luò)連接方式
<mac address=’52:54:00:22:04:0f’/> #為虛擬機(jī)分配MAC地址,務(wù)必唯一,如果是dhcp獲得同樣IP會引起沖突
<source bridge=’br0’/> #當(dāng)前主機(jī)網(wǎng)橋名稱
# 重啟虛擬機(jī)
# 關(guān)閉KVM虛擬機(jī)
[root@linux-node1 opt]# virsh shutdown CentOS-7-x86_64
Domain CentOS-7-x86_64 is being shutdown
# 啟動KVM虛擬機(jī)
[root@linux-node1 opt]# virsh start CentOS-7-x86_64
Domain CentOS-7-x86_64 started
# 然后配置靜態(tài)IP地址,重啟網(wǎng)卡,即可以通過xshell連接上KVM虛擬機(jī)了。
KVM性能優(yōu)化
1)CPU的優(yōu)化
Inter的cpu運(yùn)行級別,按權(quán)限級別高低Ring3->Ring1->Ring0(Ring2和Ring1暫時(shí)不使用)Ring3為用戶態(tài);Ring0為內(nèi)核態(tài)
Ring3的用戶態(tài)是沒有權(quán)限管理硬件的,需要切換到內(nèi)核態(tài)Ring0,這樣的切換(系統(tǒng)調(diào)用)稱為上下文切換,物理機(jī)到虛擬機(jī)多次的上下文切換,勢必會導(dǎo)致性能出現(xiàn)問題。對于全虛擬化,inter實(shí)現(xiàn)了技術(shù)VT-x,在CPU硬件上實(shí)現(xiàn)了加速轉(zhuǎn)換,CentOS7默認(rèn)是不需要開啟的。
2)CPU緩存綁定
[root@linux-node1 ~]# lscpu|grep cache
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
L1是靜態(tài)緩存,造價(jià)高。
L2,L3是動態(tài)緩存,通過脈沖的方式寫入0和1,造價(jià)較低。
cache解決了cpu處理快,內(nèi)存處理慢的問題,類似于memcaced和數(shù)據(jù)庫。
如果cpu調(diào)度器把進(jìn)程隨便調(diào)度到其他cpu上,而不是當(dāng)前L1,L2,L3的緩存cpu上,緩存就不生效了,就會產(chǎn)生miss,為了減少cache miss,需要把KVM進(jìn)程綁定到固定的cpu上。
可以使用taskset把某一個(gè)進(jìn)程綁定(cpu親和力綁定,可以提高20%的性能)在某一個(gè)cpu上,例如:taskset -cp 125718(1指的是cpu1,也可以綁定到多個(gè)cpu上,25718是指的pid).
cpu綁定的優(yōu)點(diǎn):提高性能,20%以上
cpu綁定的缺點(diǎn):不方便遷移,靈活性差
3)內(nèi)存優(yōu)化
原本實(shí)現(xiàn)方式:
虛擬機(jī)的虛擬內(nèi)存===>虛擬機(jī)的物理內(nèi)存
宿主機(jī)的虛擬內(nèi)存===>宿主機(jī)的物理內(nèi)存
現(xiàn)在實(shí)現(xiàn)方式:EPT(inter)
虛擬機(jī)的虛擬內(nèi)存=====EPT=====宿主機(jī)的物理內(nèi)存
VMM通過采用影子列表解決內(nèi)存轉(zhuǎn)換的問題,影子頁表是一種比較成熟的純軟件的內(nèi)存虛擬化方式,但影子頁表固有的局限性,影響了VMM的性能,例如,客戶機(jī)中有多個(gè)CPU,多個(gè)虛擬CPU之間同步頁面數(shù)據(jù)將導(dǎo)致影子頁表更新次數(shù)幅度增加,測試頁表將帶來異常嚴(yán)重的性能損失。如下圖1-1為影子頁表的原理圖:
在此之際,Inter在最新的Core I7系列處理器上集成了EPT技術(shù)(對應(yīng)AMD的為RVI技術(shù)),以硬件輔助的方式完成客戶物理內(nèi)存到機(jī)器物理內(nèi)存的轉(zhuǎn)換,完成內(nèi)存虛擬化,并以有效的方式彌補(bǔ)了影子頁表的缺陷,該技術(shù)默認(rèn)是開啟的,如下圖1-2為EPT技術(shù)的原理。
KSM內(nèi)存合并
宿主機(jī)上默認(rèn)會開啟ksmd進(jìn)程,該進(jìn)程作為內(nèi)核中的守護(hù)進(jìn)程存在,它定期執(zhí)行頁面掃描,識別副本頁面并合并副本,釋放這些頁面以供它用,CentOS7默認(rèn)是開啟狀態(tài)
[root@linux-node1 ~]# ps aux |grep ksmd
root 280 0.0 0.0 0 0 ? SN 20:37 0:00 [ksmd]
大頁內(nèi)存
Linux默認(rèn)的內(nèi)存頁面大小都是4K,HugePage進(jìn)程會將默認(rèn)的每個(gè)內(nèi)存頁面可以調(diào)整為2M,CentOS7默認(rèn)開啟的
[root@linux-node1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@linux-node1 ~]# ps aux|grep hugepage|grep -v grep
root 2810.0 0.0 00 ? SN 04:220:03 [khugepaged]
4)磁盤IO優(yōu)化
IO調(diào)度算法,也叫電梯算法,詳情請看趙班長博客:http://www.unixhot.com/article/4
1--Noop Scheduler:簡單的FIFO隊(duì)列,最簡單的調(diào)度算法,由于會產(chǎn)生讀IO的阻塞,一般使用在SSD硬盤,此時(shí)不需要調(diào)度,IO效果非常好
2--Anticipatory IO Scheduler(as scheduler)適合大數(shù)據(jù)順序順序存儲的文件服務(wù)器,如ftp server和web server,不適合數(shù)據(jù)庫環(huán)境,DB服務(wù)器不要使用這種算法。
3--Deadline Schedler:按照截止時(shí)間的調(diào)度算法,為了防止出現(xiàn)讀取被餓死的現(xiàn)象,按照截止時(shí)間進(jìn)行調(diào)整,默認(rèn)的是讀期限短于寫期限,就不會產(chǎn)生餓死的狀況,一般應(yīng)用在數(shù)據(jù)庫
4--Complete Fair Queueing Schedule:完全公平的排隊(duì)的IO調(diào)度算法,保證每個(gè)進(jìn)程相對特別公平的使用IO
# 查看本機(jī)Centos7默認(rèn)所支持的調(diào)度算法
[root@linux-node1 ~]# dmesg|grep -i “scheduler”
[ 1.332147] io scheduler noop registered
[ 1.332151] io scheduler deadline registered (default)
[ 1.332190] io scheduler cfq registered
# 臨時(shí)更改某個(gè)磁盤的IO調(diào)度算法,將deadling模式改為cfq模式
[root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
[root@linux-node1 ~]# echo cfq >/sys/block/sda/queue/scheduler
[root@linux-node1 ~]# cat /sys/block/sda/queue/scheduler
noop deadline [cfq]
# 使更改的IO調(diào)度算法永久生效,需要更改內(nèi)核參數(shù)
[root@linux-node1 ~]# vim /boot/grub/menu.lst
kernel /boot/vmlinuz-3.10.0-229.el7 ro root=LABEL=/ elevator=deadline rhgb quiet
***************當(dāng)你發(fā)現(xiàn)自己的才華撐不起野心時(shí),就請安靜下來學(xué)習(xí)吧***************
總結(jié)
以上是生活随笔為你收集整理的云计算和虚拟机基础梳理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Fail2ban 命令详解 fail2b
- 下一篇: 多文件,多目录下查询关键字脚本
