Quantum-gateway charm should set mhash_entries=16000000 mphash_entries=16000000 on kernel command line
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Neutron Gateway Charm |
Triaged
|
Medium
|
Unassigned | ||
neutron-gateway (Juju Charms Collection) |
Invalid
|
Medium
|
Unassigned |
Bug Description
With the default sized hashtables, creation and deletion of instances in their own namespaces becomes prohibitively expensive. Without this change namespace creation and deletion can begin to take minutes instead of milliseconds when higher numbers of namespaces already exist on the machine (higher numbers = greater than 4000 namespaces).
As of commit 742ceaba530995d
http://
Please see https:/
mhash_entries and mphash_entries are now a settable option for the kernel. These options adjust a hashtable that grows at n^2 the number of namespaces on the the machine. So if you have 4000 network namespaces on the neutron gateway 4000^2=16000000 entries will exist in the hashtable. Recently this value increased to 262144 entries by default *(4mb page size/sizeof(struct list_head)). That is enough to store 512 network namespaces without collisions in the hashtable.
So it is the recommendation of this engineer that deployments with large numbers of network namespaces add "mhash_
This would be enough to fit 4000 namespaces without collission.
My suggestion is that this should be sold as an expected number of namespaces config option with a default value of 4000 for neutron nodes. The charm should then square the value and edit /etc/default/grub GRUB_CMDLINE_LINUX appropriately and update-grub.
description: | updated |
description: | updated |
tags: | added: cts |
tags: | added: openstack |
tags: | added: uosci |
affects: | quantum-gateway (Juju Charms Collection) → neutron-gateway (Juju Charms Collection) |
Changed in charm-neutron-gateway: | |
importance: | Undecided → Medium |
status: | New → Triaged |
Changed in neutron-gateway (Juju Charms Collection): | |
status: | Triaged → Invalid |
It is also important to note that with "mhash_ entries= 16000000 mphash_ entries= 16000000" set each of these tables will take 256mb of space.
In order to remedy this massive amount of space the way ip creates a new namespace via CLONE_NEWNS would have to be completely reworked from userspace all the way down to kernel.