[avahi] Resolving many ( > 200 ) items seems to lead to apparent congestion in the dbus

Daniel Wynne daniel.wynne at mobotix.com
Tue Jun 30 00:37:15 PDT 2009


Lennart Poettering wrote:
> On Mon, 29.06.09 11:05, Daniel Wynne (daniel.wynne at mobotix.com) wrote:
>
>   
>> Hi Trent!
>>
>> These are great news for us! :-)
>> We were seriously concerned about the issue, that the Avahi mDNS 
>> implementation prevented us from developing Linux camera management 
>> applications for huge setups.
>>
>> In the following I provide a short calculation to give you a hint of 
>> what we need:
>>
>>     - Right now we have setups with deployments of up to 800 devices We 
>> do not think that deployments with even more devices in one network make 
>> sense, as this already can be considered as a individual feasibility 
>> study. But lets calculate with this worst case scenario and for the sake 
>> of convenience we even round it up to N = 1000 devices per network.
>>
>>     - Since every device typically comes up with 2-3 ip addresses, we 
>> have to reserve cache entries for N*( 3 A's, 1 PTR, 1 SRV, 1 TXT. ) => 
>> AVAHI_CACHE_ENTRIES_MAX >= 6*N = 6000 entries.
>>
>>     - As the dbus limitations are concerned the maximum number of dbus 
>> objects per client will have to be increased, too. Since we have to 
>> create N*3 AddressRecordBrowsers, N*1 ServiceResolver, 1 Client, 2 
>> ServiceBrowsers => OBJECTS_PER_CLIENT_MAX >= 4*N + 3 = 4003 ~ 4000 entries
>>
>> As I do not have that much insight into the Avahi-code there might be 
>> even more limits that might have to be adapted to achieve a coherent 
>> configuration.
>>
>> If you need any additional information, let me know.
>>
>> Thank you Guys for the great support so far!
>>     
>
> Hmm, with allowing more simulatenous clients the memory usage of the
> cache will increase too. I wonder how bad that actually wuld
> be. I.e. Daniel, how does the VSZ of the avahi daemon change when
> connected to a en empty network vs. one of your fully equipped ones?
>
> Lennart
>
>   

Hi Lennart,

I could not test it with the 800 devices but at least with a network of 
about 250 devices.
These are the results:

Original Parameters:

AVAHI_CACHE_ENTRIES_MAX = 500
OBJECTS_PER_CLIENT_MAX = 500

Changed Parameters:

AVAHI_CACHE_ENTRIES_MAX = 6000
OBJECTS_PER_CLIENT_MAX = 4000


Original Configuration, 2 Devices in the network
avahi-daemon uses 352 K

Original Configuration, 250 Devices in the network
avahi-daemon uses 1,820 K ( about 90 services were found at first, after 
time number increases but never reaches the actual number of services in 
the network, even after hours )

Changed Configuration, 250 Devices in the network
avahi-daemon uses 352 K

Changed Configuration, 250 Devices in the network
avahi-daemon uses 2,764 K ( as all services were found immediately )


Hope it helps! If you need more info let me know!


Daniel




More information about the avahi mailing list