[
https://issues.apache.org/jira/browse/DISPATCH-1348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Francesco Nigro updated DISPATCH-1348:
--------------------------------------
Description:
qdr_error_from_pn on error.c is allocating qdr_error_t on the hot path ie
AMQP_disposition_handler: saving those allocations would reduce CPU usage (and
cache misses) on both core and worker threads, making the router able to scale
better while under load.
Initial tests has shown some improvements under load (ie with core CPU thread
~97% with the new version and ~99% with master):
12 pairs master (no lock-free queues, no qdr_error_t fix): 285 K msg/sec
12 pairs master (no lock-free queues, yes qdr_error_t fix): 402 K msg/sec
12 pairs lock-free q (no qdr_error_t fix): 311 K msg/sec
12 pairs lock-free q (yes qdr_error_t fix): 510 K msg/sec
was:
qdr_error_from_pn on error.c is allocating qdr_error_t on the hot path ie
AMQP_disposition_handler: saving those allocations would reduce CPU usage (and
cache misses) on both core and worker threads, making the router able to scale
better while under load.
Initial tests has shown some improvements under load (ie with core CPU thread
~97% with the new version and ~99% with master):
5 pairs with master - 490 K msg/sec
5 pairs with new version - 530 K msg/sec
> Save qdr_error_t allocation if not necessary
> --------------------------------------------
>
> Key: DISPATCH-1348
> URL: https://issues.apache.org/jira/browse/DISPATCH-1348
> Project: Qpid Dispatch
> Issue Type: Improvement
> Components: Routing Engine
> Affects Versions: 1.7.0
> Reporter: Francesco Nigro
> Assignee: Ganesh Murthy
> Priority: Major
>
> qdr_error_from_pn on error.c is allocating qdr_error_t on the hot path ie
> AMQP_disposition_handler: saving those allocations would reduce CPU usage
> (and cache misses) on both core and worker threads, making the router able to
> scale better while under load.
> Initial tests has shown some improvements under load (ie with core CPU thread
> ~97% with the new version and ~99% with master):
> 12 pairs master (no lock-free queues, no qdr_error_t fix): 285 K msg/sec
> 12 pairs master (no lock-free queues, yes qdr_error_t fix): 402 K msg/sec
> 12 pairs lock-free q (no qdr_error_t fix): 311 K msg/sec
> 12 pairs lock-free q (yes qdr_error_t fix): 510 K msg/sec
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]