1.cpu的繫結配置
程序的處理器親和性(process affinity):指將程序繫結到特定的乙個或多個cpu上去執行,而不允許將程序排程到其他cpu上。
物理cpu:表示真實的cpu個數
邏輯cpu:表示所有擁有乙個完整真實cpu功能的單元,一般等於所有真實cpu的核心或超執行緒數(ht技術)之和
例子:乙個主機板有cpu1,cpu2,cpu1雙核不開超執行緒,cpu2四核其中某個核心開兩個超執行緒,那麼它有2個真實cpu,和2+(2*1+3)=7個邏輯cpu
實現:
(1)在grub.conf上使用」isolcpus=[num1],[num2]... 「引數,進行cpu的隔離,使得系統啟動後普通程序預設不會排程到被隔離的cpu上執行。(注:num表示邏輯cpu號碼)
例子:
initrd /initramfs-3.2.84.img
(2)檢視是否隔離成功:
[root@localhost ~]# ps -elo psr,args|awk ''
3 [kworker/u:0]
3 [migration/3]
3 [kworker/3:0]
3 [ksoftirqd/3]
3 [watchdog/3]
3 [kworker/3:1]
3 auditd
3 rpcbind
3 [flush-253:0]
3 /usr/sbin/modem-manager
3 hald-runner
3 /usr/libexec/postfix/master
[root@localhost ~]# ps -elo psr,args|awk ''
4 [migration/4]
4 [kworker/4:0]
4 [ksoftirqd/4]
4 [watchdog/4]
4 [kworker/4:1]
[root@localhost ~]# ps -elo psr,args|awk ''
5 [migration/5]
5 [kworker/5:0]
5 [ksoftirqd/5]
5 [watchdog/5]
5 [kworker/5:1]
[root@localhost ~]# ps -elo psr,args|awk ''
2 [kthreadd]
2 [migration/2]
2 [kworker/2:0]
2 [ksoftirqd/2]
2 [watchdog/2]
2 [khubd]
2 [kworker/2:1]
2 [kworker/2:2]
2 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
2 pcscd
2 /sbin/mingetty /dev/tty6
ps(process status):
這裡我們看到程序編號2、3都有很多程序,而4、5都只有5個帶號的系統程序,所以隔離成功。
(3)啟動客戶機
(4)檢視vcpu執行緒
[root@localhost kvm_vhost]# ps -elo pid,lwp,psr,args|grep qemu|grep -v grep
1612 1612 6 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1614 1 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1615 6 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1617 11 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
(5)繫結代表整個客戶機的程序,使其執行在cpu4上
[root@localhost kvm_vhost]# taskset -p 0x10 1612
pid 1612's current affinity mask: ffcf
pid 1612's new affinity mask: 10
[root@localhost kvm_vhost]# ps -elo pid,lwp,psr,args|grep qemu|grep -v grep
1612 1612 4 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1614 3 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1615 6 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1617 11 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
(6)繫結第乙個vcpu執行緒,使其執行在cpu5上
[root@localhost kvm_vhost]# taskset -p 0x20 1614
pid 1614's current affinity mask: ffcf
pid 1614's new affinity mask: 10
[root@localhost kvm_vhost]# ps -elo pid,lwp,psr,args|grep qemu|grep -v grep
1612 1612 4 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1614 5 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
1612 1615 6 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
同理繫結另外乙個vcpu,這裡taskset的語法是taskset -p [mask] pid
(7)繫結後檢視在cpu4上執行的執行緒
[root@localhost kvm_vhost]# ps -elo psr,args|awk ''
4 [migration/4]
4 [kworker/4:0]
4 [ksoftirqd/4]
4 [watchdog/4]
4 [kworker/4:1]
4 qemu-system-x86_64 -m 2048 -smp 2 rhel6u5.img
kvm cpu的親和性繫結配置
1.cpu的繫結配置 程序的處理器親和性 process affinity 指將程序繫結到特定的乙個或多個cpu上去執行,而不允許將程序排程到其他cpu上。物理cpu 表示真實的cpu個數 邏輯cpu 表示所有擁有乙個完整真實cpu功能的單元,一般等於所有真實cpu的核心或超執行緒數 ht技術 之和...
親和性 反親和性 汙點 容忍
在預設的k8s排程中,一般經過預選和優選即可完成排程,但是生產的實際使用中,考慮到部分業務的特殊性,一般會手動進行一些 指定 k8s 把這些 指定 分為nodeaffinity 節點親和性 podaffinity pod 親和性 以及 podantiaffinity pod 反親和性 這在排程過程中...
pod 的親和性,反親和性 實驗
pod 的親和性,反親和性 實驗 目錄 設定node01和node02節點,擁有標籤 test a root master demo kubectl label nodes node test a overwrite node node01 labeled node node02 labeled 檢...