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?

Reply via email to