On Thu, Feb 11, 2021 at 2:08 PM Michael Goulish <[email protected]> wrote:

> OK, so in the file Dispatch Router file src/buffer.c I changed this:
>       size_t BUFFER_SIZE     = 512;
> to this:
>       size_t BUFFER_SIZE     = 4096;
>
> Gordon tells me that's like 8 times bigger.
>
>
> It makes a terrific difference in throughput in the TCP adapter, and if you
> limit the sender to the throughput that the receiver can accept, it can go
> Real Fast with no memory bloat.  ( Like 15 Gbit/sec )
>
> But.
> AMQP throughput is Not Happy with this change.
>
> Some of the managed fields grow rapidly (although not enough to account for
> total memory growth) -- and throughput gradually drops to a crawl.
>
> Here are the fields that increase dramatically (like 10x or more) -- and
> the ones that don't much change.
>
>   qd_bitmask_t
>   *qd_buffer_t   *
>   qd_composed_field_t
>   qd_composite_t
>   qd_connection_t
>   qd_hash_handle_t
>   qd_hash_item_t
>   qd_iterator_t
>   *qd_link_ref_t*
>   qd_link_t
>   qd_listener_t
>   qd_log_entry_t
>   qd_management_context_t
>   *qd_message_content_t*
>   *qd_message_t*
>   qd_node_t
>   qd_parse_node_t
>   qd_parse_tree_t
>   qd_parsed_field_t
>   qd_session_t
>   qd_timer_t
>   *qdr_action_t*
>   qdr_address_config_t
>   qdr_address_t
>   qdr_connection_info_t
>   qdr_connection_t
>   qdr_connection_work_t
>   qdr_core_timer_t
>   qdr_delivery_cleanup_t
>   *qdr_delivery_ref_t*
>   *qdr_delivery_t*
>   qdr_field_t
>   qdr_general_work_t
>   qdr_link_ref_t
>   qdr_link_t
>   qdr_link_work_t
>   qdr_query_t
>   qdr_terminus_t
>
>
> Does anyone have a great idea about any experiment I could do,
> instrumentation I could add, whatever -- that might help to further
> diagnose what is going on?
>

Can you explain how you are measuring AMQP throughput?  What message sizes
are you using?  Credit windows?  How many senders and receivers?  Max frame
size?

Reply via email to