Skip to content

Mirror server slow processing large struct arrays #75

Description

@echandler-anl

Problem:
PV servers has difficultly keeping up reading PV objects with very large struct arrays. The same issue appears with both mirror server and p2p.
Steps to reproduce:

  1. IOC is writing PV array with 27000 struct elements to a PV channel at 10hz
  2. Run mirror server mapped to PV channel to a second PV channel
  3. Run pvapy client to read data from the second PV channel

The pvapy client receives the data at 4Hz. The TCP-rx thread in the mirror server is maxed out and the perf profile shows that it is spending most time creating and deleting struct arrays (see graph below):

image

Both the mirror server and pv client can be optimized by caching the PV object structure after the connection is initialized.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions