[ClusterLabs] Syncing data and reducing CPU utilization of cib process
Ken Gaillot
kgaillot at redhat.com
Fri Mar 31 16:07:48 EDT 2017
On 03/31/2017 06:44 AM, Nikhil Utane wrote:
> We are seeing this log in pacemaker.log continuously.
>
> Mar 31 17:13:01 [6372] 0005B932ED72 cib: info:
> crm_compress_string: Compressed 436756 bytes into 14635 (ratio 29:1) in
> 284ms
>
> This looks to be the reason for high CPU. What does this log indicate?
If a cluster message is larger than 128KB, pacemaker will compress it
(using BZ2) before transmitting it across the network to the other
nodes. This can hit the CPU significantly. Having a large resource
definition makes such messages more common.
There are many ways to sync a configuration file between nodes. If the
configuration rarely changes, a simple rsync cron could do it.
Specialized tools like lsyncd are more responsive while still having a
minimal footprint. DRBD or shared storage would be more powerful and
real-time. If it's a custom app, you could even modify it to use
something like etcd or a NoSQL db.
>
> -Regards
> Nikhil
>
>
> On Fri, Mar 31, 2017 at 12:08 PM, Nikhil Utane
> <nikhil.subscribed at gmail.com <mailto:nikhil.subscribed at gmail.com>> wrote:
>
> Hi,
>
> In our current design (which we plan to improve upon) we are using
> the CIB file to synchronize information across active and standby nodes.
> Basically we want the standby node to take the configuration that
> was used by the active node so we are adding those as resource
> attributes. This ensures that when the standby node takes over, it
> can read all the configuration which will be passed to it as
> environment variables.
> Initially we thought the list of configuration parameters will be
> less and we did some prototyping and saw that there wasn't much of
> an issue. But now the list has grown it has become close to 300
> attributes. (I know this is like abusing the feature and we are
> looking towards doing it the right way).
>
> So I have two questions:
> 1) What is the best way to synchronize such kind of information
> across nodes in the cluster? DRBD? Anything else that is simpler?
> For e.g. instead of syncing 300 attributes i could just sync up the
> path to a file.
>
> 2) In the current design, is there anything that I can do to reduce
> the CPU utilization of cib process? Currently it regularly takes
> 30-50% of the CPU.
> Any quick fix that I can do which will bring it down? For e.g.
> configure how often it synchronizes etc?
>
> -Thanks
> Nikhil
More information about the Users
mailing list