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

openstack cpu、内存超分设置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-10-9 12:29:12 | 显示全部楼层 |阅读模式
配置文件nova.conf中修改控制节点
+ I" K3 @- D- u$ v8 k0 X1 B$ z
; |" U( B+ _; y; A! A! A. rsystemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service
3 j: }3 a4 Y- ]4 D( z默认OpenStack的CPU超配比例是1:16,内存超配比例是1:1.5。下面配置的就是这个比例,你可以自己算一下,cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的。内存也是类似。# o8 s. m4 f; q3 ~! d. j( j1 l
$ h, ^# a( I# d4 }# c) i8 M7 m  @
不过一般不建议超分太多,对于私有云来说,意义不大。对于公有云那就是黑心商家了。。。- ]) D, t/ N9 B2 l0 d! d/ L
) A! Q2 T9 ~) R  d, ~7 N( ^
#cpu_allocation_ratio=16.03 b. T5 k) E; W; l* W7 P
0 y/ _6 A' Z- K1 x# M! L, V. M
#ram_allocation_ratio=1.54 g# V* o; \% t: Z# p3 B1 E

) J3 y( h2 Q( l( r9 }- p" _1 y; T9 Z当然了,这个值其实是给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 核心过滤器$ ?2 g3 y7 A# I+ i# Q
nova.conf配置文件添加超算配置以后,还需要在schler调度原则上加一条规则:corefilter ,然后重启nova-schelder服务生效。* \/ F2 L8 v- v
CPU超售的详细说明与使用方法
这个值其实是给nova-scheduler看的,scheduler来决定,你有没有资源创建虚拟机,以及创建在哪个节点上。
9 J% k# ?# ]( m' P

1

主题

0

回帖

12

积分

管理员

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

; i' Y$ @- _& m  RCPU: CONF.cpu_allocation_ratio = 4
  n. V* {4 f/ M) ERAM: CONF.ram_allocation_ratio = 1.0& l% D# r( B  t# e4 A8 k; m$ E
DISK: CONF.disk_allocation_ratio = 1.0
& i" L1 ~2 A% p  u2 GRAM-Reserve: CONF.reserved_host_memory_mb = 2048
) L, \0 ^* s4 ^" _3 LDISK-Reserve: CONF.reserved_host_disk_mb = 204805 T8 P$ m: a& b# u& p
在OpenStack中,默认的CPU超配比例是1:16,内存超配比例是1:1.5。当宿主机使用swap交换分区来为虚拟机分配内存的时候,则虚拟机的性能将急速下降。生产环境上不建议开启内存超售(建议配置比例1:1)。另外,建议设置nova.conf文件中的reserved_host_memory_mb 参数,即内存预留量(建议至少预留4GB),保证该部分内存不能被虚拟机使用。6 \3 S% E6 L0 t  c" Q7 C0 i* v

5 v' Z$ G( V0 N: j1 V' X' f! V+ @8 Hvim /etc/nova/nova.conf
% l; D2 c5 D1 |
. `6 t$ v: l# ][DEFAULT]% B4 T( T# H+ J, v
reserved_host_memory_mb=4096
' ]; E) v4 b% l0 ?! b. S2 O- {1 ^6 i4 d% Z* g, V7 M
#磁盘预留空间,这部分空间不能被虚拟机使用
" D$ D' c8 i1 ]. e+ `- w& {reserved_host_disk_mb= 10240
! o7 [! u. L3 w7 f/ j# M默认OpenStack的CPU超配比例是1:16,内存超配比例是1:1.5。下面配置的就是这个比例,你可以自己算一下,cat /proc/cpuinfo里面的逻辑核数,再x16就是你能够分配给虚拟机的。内存也是类似。6 y% U1 E: P. W1 w1 K

- M5 U% X# _+ M2 p物理cpu数
3 T+ W! M% R0 I- q$ j3 C% ^% |% O0 C  e1 b
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# ]- W# _" _* h) A+ t/ u单块cpu核数2 g, m- @0 v$ _5 f" d: c8 i& E
2 A9 T0 H9 C. g: w
cat /proc/cpuinfo| grep "cpu cores"|wc -l
9 I8 W- P% o5 i8 t' ?1 W总核数 = 物理CPU个数 × 每颗物理CPU的核数0 V3 \: x# i' Q: s- x- b

, I& Y) ]; o1 [2 Acpu和内存的超售目的就是为了资源利用的最大化
* c, i4 |( j/ L2 }0 D
* i1 @4 m# s5 v/ h& P) c' ~% j配置文件nova.conf中修改了如下参数
- H) b0 E; d6 F) b  b/ i; @" G5 w, Q$ X+ p8 }2 ]0 @
[DEFAULT]1 g. O) u8 y3 N$ T& l  m
cpu_allocation_ratio=16.0  n8 w+ k2 j% U# w
ram_allocation_ratio=1.56 Z0 ]- M5 d- ^) L" y
想要让超算生效还需要修改一个配置core filter 核心过滤器1 v1 G' b8 Q- e8 d( T( r
nova.conf配置文件添加超算配置以后,还需要在schler调度原则上加一条规则:corefilter ,然后重启nova-schelder服务生效。
1 Y7 k4 @; T1 H* oCPU超售的详细说明与使用方法
5 {8 q5 _* j7 j: ~: @: I* {0 ~7 |' i* t9 ^8 X7 U& u
* p+ ?5 x* Z! o' M

/ }- `. e# w0 w0 D3 h+ J3 D这个值其实是给nova-scheduler看的,scheduler来决定,你有没有资源创建虚拟机,以及创建在哪个节点上。" J  H9 Y9 k& h' j

3 |& d1 ~* \2 R& N

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-1 17:05:44 | 显示全部楼层
当cpu或内存超分设置nova.conf中cpu_allocation_ratio和ram_allocation_ratio后,只需重启控制节点的nova-scheduler服务便可。this
( I$ o" F# F% o5 k6 v/ K3 g2 F4 O8 m  x* H# H9 \
以前一直觉得在配置文件中注释掉这两行就是不超分了,屡次实验不对劲,直到看了一下源码:spa5 c: `/ i; b. `/ e$ p/ C0 @. _

9 A& i+ O# C/ E2 n' d& \6 _ram_allocation_ratio_opt = cfg.FloatOpt('ram_allocation_ratio',
/ u1 J$ g! y  \# S6 u        default=1.5,3 Z, w4 u/ m& J: s  j0 \( E
        help='Virtual ram to physical ram allocation ratio which affects '7 x& p5 a! ^# v3 \! ]" e2 H
             'all ram filters. This configuration specifies a global ratio '$ R7 X8 l+ n" n3 J. i* s: a
             'for RamFilter. For AggregateRamFilter, it will fall back to '
, [3 ]( n* J+ ?% U& _8 q& m" l             'this configuration value if no per-aggregate setting found.'): t! q- _8 f% _1 H% I& D# h

: r6 A! O) S$ }* y. \  k. o' b
# J2 x* X" k% U( s) G
cpu_allocation_ratio_opt = cfg.FloatOpt('cpu_allocation_ratio',
4 @7 d; x2 L8 s! T        default=16.0,
* L* F5 p' u" M        help='Virtual CPU to physical CPU allocation ratio which affects '2 T8 d' D' b* a+ ?. U
             'all CPU filters. This configuration specifies a global ratio '; u" ^: E; Z' X# N* ~7 ~
             'for CoreFilter. For AggregateCoreFilter, it will fall back to '
, n0 ^: H5 U  O' s             'this configuration value if no per-aggregate setting found.')
* k5 k% l! F: L' a9 N: Z  H& {/ O4 m0 C
因此说,不超分的话要写成1.0内存
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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