1
onetown 2020-07-02 15:09:40 +08:00 1
可以参考一下 https://access.redhat.com/articles/1436373
以 Libvirt KVM 为例, 一个虚拟机的 PCI bus 有 30 个 slot, 除去系统的一些设备, 例如显卡什么的, 剩下 28 个 slot 可以用来做网卡。 如果还有其他设备占用 pci slot 的话, 能创建的网卡会少于 28 个。 API 层面没有限制, 除非你在 Project 里做了 Port Quota 当然创建很多会有性能影响, 但是怎么定义很多,10 个,50 个还是 100 个? |
2
sniperking1234 OP @onetown 多谢解答,我去看看这个文档。预计建立的 port 数量是 100-200 左右数量级的,这个数量级性能影响会有多大呢
|
3
onetown 2020-07-02 15:46:31 +08:00 1
@sniperking1234 性能有几个方面的影响
Hypervisor 的, 虚拟机的网卡越多, 处理 IO 的任务就会越多, 另外就是如果是 OVS Mechanism 的话,OVS 的端口会多, 对 OVS 会有少许的影响, 但是这个问题不大。 OpenStack 方面,Neutron 会定期 poll 每个 Port 的状态, 以及安全组 /安全组规则数量对每个 port 的设置都会消耗一定的资源。 现在很多 NFV 的框架构建在 OpenStack 上, 所以有很多优化的手段吧。 但是实际上, 我没有用过那么多 Port, 也许你们机器够强, 这些影响微乎其微也说不定。 |
4
lolizeppelin 2020-07-02 16:24:53 +08:00 1
默认的 neutron 网络组件, 每个 port 对应到对应的 openvswitch 里的 port 以及对应的流表配置
然后会在网段对应的 namspace 里创建多条防火墙规则 你有兴趣可以看看 neurton 在系统里每个 namespace 里有多少条防火墙规则 你这几百个 port 的..想想就蛋痛 openstack 的网络性能一直是个大问题来的 当初华为还折腾了个龙流....然后好像几年前已经停止更新了 |
5
sniperking1234 OP @lolizeppelin 看起来性能影响还会挺大的,这个我到时候实际测试一下。
@onetown 请问 pci slot 数量应该怎么看呢,我用 dmidecode -t 9 这个命令,但是只显示了这几行 # dmidecode 3.1 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. |
6
FreeEx 2020-07-02 21:18:13 +08:00
|
7
onetown 2020-07-02 22:31:09 +08:00
@sniperking1234 你可能运行的虚机里面没有可用的 pci bridge 或 slot 是空的, 除了 dmidecode 还可以用 lspci |grep PCI
@FreeEx 果然实践出真知,赞一个。 按照 Redhat 的 OpenStack 发行版的文档, 是 32 个 slot, 在 libvirt + kvm 的环境里面, 除了分配出去的, 剩下的都可以用, 我也很好奇, 你的这个机器上, 是否能一只创建下去。 👍 |