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?
