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?