找回密码
 注册
查看: 4607|回复: 3

openstack cpu、内存超分设置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-10-9 12:29:12 | 显示全部楼层 |阅读模式
配置文件nova.conf中修改控制节点$ y: J8 D! \7 b
  ]- k3 f3 F) k' g, T. E2 c. \
systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service
) E1 e- }) Z' E. Q6 z% o默认OpenStack的CPU超配比例是1:16,内存超配比例是1:1.5。下面配置的就是这个比例,你可以自己算一下,cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的。内存也是类似。
0 q2 i0 L. j* u! d7 f6 W
" p1 v7 T3 D2 Q; c/ @不过一般不建议超分太多,对于私有云来说,意义不大。对于公有云那就是黑心商家了。。。
) |' S3 c2 Z1 J3 _, P, p9 B+ `4 h9 {- H
#cpu_allocation_ratio=16.0
/ W% I  P3 l4 B( Y# D2 f6 S$ z! }% `- D8 L; ~1 J
#ram_allocation_ratio=1.5
# r+ d1 I# I' B2 c! Q( ~. c* `$ M. _/ L. d, k3 o( w  D- U
当然了,这个值其实是给nova-scheduler看的,人家来决定,你有没有资源创建虚拟机,以及创建在哪个节点上。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-11-26 17:34:50 | 显示全部楼层
内存和磁盘超配虽然能提供更多数量的虚拟机,当该宿主机上大量虚拟机的负载都很高时,轻着影响虚拟机性能,重则引起 qemu-kvm 相关进程被杀,即虚拟机被关机。因此对于线上稳定性要求高的业务,建议不要超配 RAM 和 DISK,但可适当超配 CPU。建议这几个参数设置为:
CPU: CONF.cpu_allocation_ratio = 4RAM: CONF.ram_allocation_ratio = 1.0DISK: CONF.disk_allocation_ratio = 1.0RAM-Reserve: CONF.reserved_host_memory_mb = 2048DISK-Reserve: CONF.reserved_host_disk_mb = 20480
在OpenStack中,默认的CPU超配比例是1:16,内存超配比例是1:1.5。当宿主机使用swap交换分区来为虚拟机分配内存的时候,则虚拟机的性能将急速下降。生产环境上不建议开启内存超售(建议配置比例1:1)。另外,建议设置nova.conf文件中的reserved_host_memory_mb 参数,即内存预留量(建议至少预留4GB),保证该部分内存不能被虚拟机使用。
vim /etc/nova/nova.conf
[DEFAULT]reserved_host_memory_mb=4096#磁盘预留空间,这部分空间不能被虚拟机使用reserved_host_disk_mb= 10240
默认OpenStack的CPU超配比例是1:16,内存超配比例是1:1.5。下面配置的就是这个比例,你可以自己算一下,cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的。内存也是类似。
物理cpu数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
单块cpu核数
cat /proc/cpuinfo| grep "cpu cores"|wc -l
总核数 = 物理CPU个数 × 每颗物理CPU的核数
cpu和内存的超售目的就是为了资源利用的最大化
配置文件nova.conf中修改了如下参数
[DEFAULT]cpu_allocation_ratio=16.0ram_allocation_ratio=1.5
想要让超算生效还需要修改一个配置core filter 核心过滤器
6 f( `7 z5 h! x# i2 inova.conf配置文件添加超算配置以后,还需要在schler调度原则上加一条规则:corefilter ,然后重启nova-schelder服务生效。
8 i: V8 V3 t2 G" `3 g% [8 PCPU超售的详细说明与使用方法
这个值其实是给nova-scheduler看的,scheduler来决定,你有没有资源创建虚拟机,以及创建在哪个节点上。
9 E9 L' b+ R3 \4 w- {+ w

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-11-26 17:35:07 | 显示全部楼层
内存和磁盘超配虽然能提供更多数量的虚拟机,当该宿主机上大量虚拟机的负载都很高时,轻着影响虚拟机性能,重则引起 qemu-kvm 相关进程被杀,即虚拟机被关机。因此对于线上稳定性要求高的业务,建议不要超配 RAM 和 DISK,但可适当超配 CPU。建议这几个参数设置为:2 q* ^  i5 k" j

# W" s4 C6 k' z. |1 I9 xCPU: CONF.cpu_allocation_ratio = 44 i+ ~/ ~3 q4 l8 y( B) [
RAM: CONF.ram_allocation_ratio = 1.0
/ ^1 A, K8 I  u# ]DISK: CONF.disk_allocation_ratio = 1.0* f5 b% a" L; A+ S9 s. @
RAM-Reserve: CONF.reserved_host_memory_mb = 2048( N4 V0 W. K2 s5 P$ F# ?% E
DISK-Reserve: CONF.reserved_host_disk_mb = 20480+ r4 W0 X) u) x$ O9 @
在OpenStack中,默认的CPU超配比例是1:16,内存超配比例是1:1.5。当宿主机使用swap交换分区来为虚拟机分配内存的时候,则虚拟机的性能将急速下降。生产环境上不建议开启内存超售(建议配置比例1:1)。另外,建议设置nova.conf文件中的reserved_host_memory_mb 参数,即内存预留量(建议至少预留4GB),保证该部分内存不能被虚拟机使用。
$ ^/ Q* {* `" J/ ]1 c( B! K! d
' m: u8 z$ q6 ]/ O$ d, I7 J; z: g# pvim /etc/nova/nova.conf: a) m0 c- U! z1 M

% d: k( l. y9 ~, x0 _: Z[DEFAULT]* @' `# ?; }7 i+ \4 a% f2 e; y* |
reserved_host_memory_mb=4096: z# z1 z: Q% L) A3 q8 T' V
7 ?; ?; N3 r. O0 ^- F
#磁盘预留空间,这部分空间不能被虚拟机使用
+ g" ?2 T, J* q; G: b4 ~reserved_host_disk_mb= 10240
; ]+ O( ]. t" `5 ?3 m" t1 J7 g  c默认OpenStack的CPU超配比例是1:16,内存超配比例是1:1.5。下面配置的就是这个比例,你可以自己算一下,cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的。内存也是类似。( X) D6 v% i, u- G, N
. J7 V/ b3 T# J. b+ }
物理cpu数% i3 }. I* j) b, v$ y" _, e
+ p. [. Z' |- _+ w
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l6 J( A" v2 J1 r  ~6 o
单块cpu核数
7 L. p, Y4 ^7 Z, m. `: X9 f+ p' j6 H% k7 I& K! L" I
cat /proc/cpuinfo| grep "cpu cores"|wc -l
0 C# d* ^/ `/ P6 j; U: h! u) o总核数 = 物理CPU个数 × 每颗物理CPU的核数
; J% e- Q  H" H# m
% L( n9 K; c7 W! p$ ccpu和内存的超售目的就是为了资源利用的最大化4 s5 x) l6 Q+ b
: C6 n' w" @% n
配置文件nova.conf中修改了如下参数2 L+ c3 T" p0 |6 g8 q, o

; V. S* n6 x' J0 G[DEFAULT]  t1 N' c5 J+ p0 v0 D/ }
cpu_allocation_ratio=16.0+ |0 K& O+ D' E7 j% w
ram_allocation_ratio=1.5' \/ A3 V0 ~( u# w$ d/ l
想要让超算生效还需要修改一个配置core filter 核心过滤器
4 S# Z! o6 I! [* ~/ y7 ?3 B7 _nova.conf配置文件添加超算配置以后,还需要在schler调度原则上加一条规则:corefilter ,然后重启nova-schelder服务生效。
7 l/ l) B7 z- F1 dCPU超售的详细说明与使用方法, m6 `+ p- ?! F1 n3 Z3 {
+ h( z! V' q! \( \  G, N

" M* v0 @. h  D4 V: s% G+ W/ B2 h; w. K
这个值其实是给nova-scheduler看的,scheduler来决定,你有没有资源创建虚拟机,以及创建在哪个节点上。
8 Z* q, u2 |) O0 ~; V+ N
( B0 Y: m8 X5 }: u+ f2 K7 A

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-1 17:05:44 | 显示全部楼层
当cpu或内存超分设置nova.conf中cpu_allocation_ratio和ram_allocation_ratio后,只需重启控制节点的nova-scheduler服务便可。this) C& V2 h4 P" J5 @: N* I4 K: T8 A
/ ?1 D! S3 V% L/ s- `1 l
以前一直觉得在配置文件中注释掉这两行就是不超分了,屡次实验不对劲,直到看了一下源码:spa
, n( y0 g. W% v
( j2 g- l- H2 U/ b0 g- Dram_allocation_ratio_opt = cfg.FloatOpt('ram_allocation_ratio',
3 @- S, x/ F; u7 ^6 {% H        default=1.5,0 `9 X) @! X% {+ N
        help='Virtual ram to physical ram allocation ratio which affects '
0 M% q# H9 X/ ^5 f& W             'all ram filters. This configuration specifies a global ratio '* Q5 D2 H, [% F) ~
             'for RamFilter. For AggregateRamFilter, it will fall back to '+ T" g9 |# s4 @3 {7 b' L
             'this configuration value if no per-aggregate setting found.')
0 s6 [8 q6 y: }0 X/ O
; z5 ]' [! r5 u) J$ t6 V- ~/ R. J' n' `3 [5 _9 ]

* n* u$ U* h3 f% E4 _2 y8 dcpu_allocation_ratio_opt = cfg.FloatOpt('cpu_allocation_ratio',& R0 t' Y% l6 q. Q: S
        default=16.0,9 t& E5 B3 E: a# Y
        help='Virtual CPU to physical CPU allocation ratio which affects '
9 I" j1 ^* X' ?- n1 Z# u             'all CPU filters. This configuration specifies a global ratio '
( a9 |8 M* \' f4 N. m$ r1 m             'for CoreFilter. For AggregateCoreFilter, it will fall back to '( y9 l# s2 \# x6 j
             'this configuration value if no per-aggregate setting found.')
0 \' O4 F+ k' H* P1 `9 C+ v% E# R) g9 b
因此说,不超分的话要写成1.0内存
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:00 , Processed in 0.036995 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表