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?