I've created a topic with 4 partitions, and monitor-brokers reports 4
topics:
===================================================================================================================
||COUNT |TOPIC |BUNDLE |PRODUCER |CONSUMER
|BUNDLE + |BUNDLE - ||
|| |4 |1 |8 |0
|0 |0 ||
||RAW SYSTEM |CPU % |MEMORY % |DIRECT % |BW IN %
|BW OUT % |MAX % ||
|| |2.95 |18.36 |1.56 |0.16
|0.29 |18.36 ||
||ALLOC SYSTEM |CPU % |MEMORY % |DIRECT % |BW IN %
|BW OUT % |MAX % ||
|| |42.68 |3.88 | |3.57
|2.90 |42.68 ||
||RAW MSG |MSG/S IN |MSG/S OUT |TOTAL |KB/S IN
|KB/S OUT |TOTAL ||
|| |1500.41 |0.00 |1500.41 |16.14
|29.18 |45.32 ||
||ALLOC MSG |MSG/S IN |MSG/S OUT |TOTAL |KB/S IN
|KB/S OUT |TOTAL ||
|| |3295.35 |118.70 |3414.05 |357.11
|289.76 |646.86 ||
===================================================================================================================
I also see a throughput of over 1k on one of the brokers:
2017-10-10 21:16:25,548 - INFO - [main:BrokerMonitor@203] - Overall Broker
Data:
***************************************************************************************************************************************
||BROKER |BUNDLE
|MSG/S |LONG/S |KB/S |MAX % ||
||ip-[redacted].us-west-2.compute.internal:8080 |0
|0.00 |0.00 |0.00 |5.81 ||
||ip-[redacted].us-west-2.compute.internal:8080 |1
|1500.41 |639.99 |3414.49 |15.97 ||
||TOTAL |1
|1500.41 |3414.49 |639.99 |15.97 ||
***************************************************************************************************************************************
On Tue, Oct 10, 2017 at 3:48 PM, Rajan Dhabalia <[email protected]>
wrote:
> Hi Ryan,
>
> >> I've set "loadBalancerAutoBundleSplitEnabled" to "true" and
> "loadBalancerNamespaceBundleMaxMsgRate" to 1000. I then ran 2 producers
> at 1k msg/s for ~5mins, but I didn't see a bundle split
>
> LoadBalancer will split the bundle only if it has more than 1 topic in the
> bundle (because bundle is a logical part of namespace that contains topics.
> if namespace has only 1 topic then there is no need of split bundle).
> Load-balancer splits bundle if bundle reaches one of the threshold
> configured at broker-config
> <https://git.corp.yahoo.com/cloud-messaging/pulsar/blob/yahoo/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java#L260-L266>:
>
> 1. *loadBalancerNamespaceBundleMaxTopics*: maximum
> topics in a bundle
> 2. *loadBalancerNamespaceBundleMaxSessions*: maximum
> sessions (producers + consumers) in a bundle
> 3. *loadBalancerNamespaceBundleMaxMsgRate*: maximum
> msgRate (in + out) in a bundle
> 4. *loadBalancerNamespaceBundleMaxBandwidthMbytes*: maximum bandwidth
> (in + out) in a bundle
>
> >> I found "bin/pulsar-perf monitor-brokers"
> Using this utility can you confirm bundle usage and can you confirm if it
> meets that threshold to split the bundle?
>
> Thanks,
> Rajan
>
>
>
> On Tue, Oct 10, 2017 at 3:33 PM, Ryan Stout <[email protected]> wrote:
>
>> Hey Pulsar devs,
>>
>> I've deployed a small Pulsar cluster (in AWS) with 2 brokers and 3
>> bookies. I've started doing perf testing using bin/pulsar-perf to determine
>> the limitations of Pulsar. I'm at the point where I can't produce more than
>> ~25k msg/s on a topic (regardless of number of partitions, clients, or
>> bookies). Upon trying to understand the bottleneck, I found
>> "bin/pulsar-perf monitor-brokers" and it showed that only one of the two
>> brokers is receiving traffic. I've set-up the service-discovery service
>> that came with Pulsar, which my producers are hitting, so I expected the
>> requests to be distributed fairly across the brokers, but this is not the
>> case.
>>
>> In conf/broker.conf, there's a load balancing section that seems to hint
>> at the ability for brokers to shed traffic to other brokers. I've tried
>> tuning the values in this section, but haven't been able to get the brokers
>> to share the load. For example, I've set "loadBalancerAutoBundleSplitEnabled"
>> to "true" and "loadBalancerNamespaceBundleMaxMsgRate" to 1000. I then
>> ran 2 producers at 1k msg/s for ~5mins, but I didn't see a bundle split (I
>> also reduced some of the intervals e.g. "loadBalancerSheddingIntervalMinutes"
>> to 1 minute).
>>
>> Is there a way to configure my Pulsar cluster to balance between my 2
>> brokers? Is there perhaps another, better way I might increase throughput?
>>
>
>