KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums KX Solutions TP Core Usage

  • TP Core Usage

    Posted by leguan on November 23, 2021 at 12:00 am

    Hello Everyone,

    I would like to ask how to make TP use all cores/taskSets to which the TP binds.  I have a TP has 4 taskSets, but only one of the four is working at this moment, reaching to a very high cpu usage  (99.8%) while the rest 3 are all in ideal(0.0%). This results to the TP fails consume all data in time from upstream data-feeder. But the way, the TP works in batching mode(pubs in every 100ms) with “multi-pub” set to false.

    thank you all!

    leguan,

    leguan replied 8 months ago 2 Members · 1 Reply
  • 1 Reply
  • rocuinneagain

    Member
    November 23, 2021 at 12:00 am

    The traditional tick.q is a single threaded process but there are many areas you can investigate to ensure performance is at it’s best:

    • Use taskset to ensure other processes are not using the same core/recourses as the TP
    • As the TP persists data to a log file ensuring that you have evaluated your hardware configuration is important to validate that your storage disk is not bottlenecking your system
    • Chained tickerplants can be used to balance the flow of data in a system, particularly when there are many subscribers
    • Async broadcast can be used to optimise publishing the same data to multiple subscribers
    • Ensure the system is setup to follow best practices outlined in Linux production notes
    • Use Unix domain sockets when opening connections on localhost to reduce CPU usage
    • Unix domain sockets are also available from C feedhandlers
    • Whitepaper on Kdb+ tick profiling 

    KX Platform:

Log in to reply.