<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1654866133;
        mso-list-type:hybrid;
        mso-list-template-ids:2056977204 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">We also have three different types of Clouds deployments.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">Large deployment with 12,000+ nodes.<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">Smaller deployment with a lot higher density VMs (over-provisioned).<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">Small deployment with high number of security groups.<o:p></o:p></li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">All three have very different issues.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In deployment one the major issue is just the sheer number of updates from the nova-compute and neutron agents. In deployment two we suffer more from just the sheer number of changes to things like neutron ports. The third deployment struggles
 with the scalability of security groups.<br>
<br>
Also worth mentioning that things like Kubernetes (and high parallel Terraform deployments to some degree) deployments posed new issues for our deployments as either one of those can trigger millions of API calls per day, especially in cases where Kubernetes
 has gone “rogue” trying to recover from an unexpected state (e.g. bad volume, bad load balancer).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Best Regards, Erik Olof Gunnar Andersson<o:p></o:p></p>
<p class="MsoNormal">Technical Lead, Senior Cloud Engineer<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> David Ivey <david.j.ivey@gmail.com> <br>
<b>Sent:</b> Wednesday, February 3, 2021 7:03 AM<br>
<b>To:</b> Sean Mooney <smooney@redhat.com><br>
<b>Cc:</b> Erik Olof Gunnar Andersson <eandersson@blizzard.com>; openstack-discuss@lists.openstack.org<br>
<b>Subject:</b> Re: [ops][largescale-sig] How many compute nodes in a single cluster ?<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I never thought about it being like a CI cloud, but it would be very similar in usage. I should clarify that it is actually physical cores (AMD Epics) so it's 128 and 256 threads and yes at least 1TB ram per with ceph shared storage. <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">That 400 is actually capped out at about 415 instances per compute (same cap for 64 and 128 cpu's) where I run into kernel/libvirt issues and nfconntrack hits limits and crashes. I don't have specifics to give at the moment regarding that
 issue, I will have to try and recreate/reproduce that when I get my other environment freed up to allow me to test that again. I was in a hurry last time that happened to me and did not get a chance to gather all the information for a bug.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Switching to python binding with ovs and some tuning of mariadb, rabbit, haproxy and memcached is how I got to be able to accommodate that rate of turnover.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Wed, Feb 3, 2021 at 9:40 AM Sean Mooney <<a href="mailto:smooney@redhat.com" target="_blank">smooney@redhat.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal" style="margin-bottom:12.0pt">On Wed, 2021-02-03 at 09:05 -0500, David Ivey wrote:<br>
> I am not sure simply going off the number of compute nodes is a good<br>
> representation of scaling issues. I think it has a lot more to do with<br>
> density/networks/ports and the rate of churn in the environment, but I<br>
> could be wrong. For example, I only have 80 high density computes (64 or<br>
> 128 CPU's with ~400 instances per compute) and I run into the same scaling<br>
> issues that are described in the Large Scale Sig and have to do a lot of<br>
> tuning to keep the environment stable. My environment is also kinda unique<br>
> in the way mine gets used as I have 2k to 4k instances torn down and<br>
> rebuilt within an hour or two quite often so my API's are constantly<br>
> bombarded.<br>
actully your envionment sound like a pretty typical CI cloud<br>
where you often have short lifetimes for instance, oftten have high density<br>
and large turnover.<br>
but you are correct compute node scalse alone is not a good indictor.<br>
port,volume,instance count are deffinetly factors as is the workload profile<br>
<br>
im just assuming your cloud is a ci cloud but interms of generic workload profiles<br>
that would seam to be the closes aproximation im aware off to that type of creation<br>
and deleteion in a n hour period.<br>
<br>
400 instance per comput ewhile a lot is really not that unreasonable assuming your<br>
typical host have 1+TB of ram and you have typically less than 4-8 cores per guests<br>
with only 128 CPUs going much above that would be over subscitbing the cpus quite hevially<br>
we generally dont recommend exceeding more then about 4x oversubsiption for cpus even though<br>
the default is 16 based on legacy reason that assume effectvly website hosts type workloads<br>
where the botelneck is not on cpu but disk and network io.<br>
<br>
with 400 instance per host that also equatest to at least 400 neutrop ports<br>
if you are using ipatable thats actully at least 1200 ports on the host which definetly has<br>
scalining issues on agent restart or host reboot.<br>
<br>
usign the python binding for ovs can help a lot as well as changing to the ovs firewall driver<br>
as that removes the linux bridge and veth pair created for each nueton port when doing hybrid plug.<br>
<br>
> <br>
> On Tue, Feb 2, 2021 at 3:15 PM Erik Olof Gunnar Andersson <<br>
> <a href="mailto:eandersson@blizzard.com" target="_blank">eandersson@blizzard.com</a>> wrote:<br>
> <br>
> > > the old value of 500 nodes max has not been true for a very long time<br>
> > rabbitmq and the db still tends to be the bottelneck to scale however<br>
> > beyond 1500 nodes<br>
> > outside of the operational overhead.<br>
> > <br>
> > We manage our scale with regions as well. With 1k nodes our RabbitMQ<br>
> > isn't breaking a sweat, and no signs that the database would be hitting any<br>
> > limits. Our issues have been limited to scaling Neutron and VM scheduling<br>
> > on Nova mostly due to, NUMA pinning.<br>
> > ------------------------------<br>
> > *From:* Sean Mooney <<a href="mailto:smooney@redhat.com" target="_blank">smooney@redhat.com</a>><br>
> > *Sent:* Tuesday, February 2, 2021 9:50 AM<br>
> > *To:* <a href="mailto:openstack-discuss@lists.openstack.org" target="_blank">
openstack-discuss@lists.openstack.org</a> <<br>
> > <a href="mailto:openstack-discuss@lists.openstack.org" target="_blank">openstack-discuss@lists.openstack.org</a>><br>
> > *Subject:* Re: [ops][largescale-sig] How many compute nodes in a single<br>
> > cluster ?<br>
> > <br>
> > On Tue, 2021-02-02 at 17:37 +0000, Arnaud Morin wrote:<br>
> > > Hey all,<br>
> > > <br>
> > > I will start the answers :)<br>
> > > <br>
> > > At OVH, our hard limit is around 1500 hypervisors on a region.<br>
> > > It also depends a lot on number of instances (and neutron ports).<br>
> > > The effects if we try to go above this number:<br>
> > > - load on control plane (db/rabbit) is increasing a lot<br>
> > > - "burst" load is hard to manage (e.g. restart of all neutron agent or<br>
> > >   nova computes is putting a high pressure on control plane)<br>
> > > - and of course, failure domain is bigger<br>
> > > <br>
> > > Note that we dont use cells.<br>
> > > We are deploying multiple regions, but this is painful to manage /<br>
> > > understand for our clients.<br>
> > > We are looking for a solution to unify the regions, but we did not find<br>
> > > anything which could fit our needs for now.<br>
> > <br>
> > i assume you do not see cells v2 as a replacment for multipel regions<br>
> > because they<br>
> > do not provide indepente falut domains and also because they are only a<br>
> > nova feature<br>
> > so it does not solve sclaing issue in other service like neutorn which are<br>
> > streached acrooss<br>
> > all cells.<br>
> > <br>
> > cells are a scaling mechinm but the larger the cloud the harder it is to<br>
> > upgrade and cells does not<br>
> > help with that infact by adding more contoler it hinders upgrades.<br>
> > <br>
> > seperate regoins can all be upgraded indepently and can be fault tolerant<br>
> > if you dont share serviecs<br>
> > between regjions and use fedeeration to avoid sharing keystone.<br>
> > <br>
> > <br>
> > glad to hear you can manage 1500 compute nodes by the way.<br>
> > <br>
> > the old value of 500 nodes max has not been true for a very long time<br>
> > rabbitmq and the db still tends to be the bottelneck to scale however<br>
> > beyond 1500 nodes<br>
> > outside of the operational overhead.<br>
> > <br>
> > > <br>
> > > Cheers,<br>
> > > <br>
> > <br>
> > <br>
> > <br>
> > <br>
<br>
<o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>