[EnMasse] AddressController performance / ConfigMap lookups

Ulf Lilleengen lulf at redhat.com
Tue Mar 13 09:47:43 UTC 2018



On 03/13/2018 10:40 AM, Gordon Sim wrote:
> On 13/03/18 09:16, Ulf Lilleengen wrote:
>> If one address status needs to be changed, the controller then have to 
>> read/write 1000 addresses worth of data, so I wouldn't say that it is 
>> more manageable. If the problem is that the kubernetes master is 
>> overloaded by enmasse use, this could even make it worse.
> 
> It is certainly speculative, but often smaller numbers of slightly 
> larger data items are easier to manage and cause less load. While 
> updating status would indeed cause some unneeded data transfer, 
> retrieval of the addresses (which I would argue is by far the more 
> common operation, assuming the addresses change relatively infrequently 
> on a running system) would involve far fewer calls. Likewise for a bulk 
> update of addresses (10,000 PUTs will generally cause more load that 10, 
> even if the latter have more data in them).
> 

I think we already read addresses in batches by reading a ConfigMapList 
(though maybe that translates to 10000 reads from etcd, I'm not sure if 
it supports it natively).

A PUT with AddressList currently generates 10000 configmap PUTs. 
However, I think that could be improved by moving to custom resources as 
well, as you get 'native' support in the kubernetes API for doing a list 
PUT.

> In any case though, I would suggest we start with some actual 
> experiments on pushing the scale wrt the number of addresses and find 
> out where the actual bottlenecks are and figure out how to alleviate them.

Fully agreed, numbers don't lie (usually :))

Best regards,

Ulf




More information about the enmasse mailing list