Announcement

Collapse
No announcement yet.

Using Phoronix for system/application profiling

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Using Phoronix for system/application profiling

    Good day,

    I'm currently attempting to put together a platform/OS-agnostic profiling application for a proprietary application, and was considering using the Phoronix Test Suite (PTS).

    Background

    I maintain drivers and applications that communicate with PCIe encryption engines (i.e. PCIe card that is used to offload complex crypto computations that are slow/expensive to run on a general purpose CPU). The "manager" application (which uses a decent amount of CPU cycles per PCIe card) has a single instance launched, both in Windows and in Linux, per PCIe card.

    Goal

    I'm aiming to setup a profiling application that can:
    • Launch the "manager application" (i.e. run a script that detects how many of these custom PCIe cards are installed, and automatically launches the correct number of applications with the appropriate parameters. This script has already been written for Linux and Windows).
    • Let the application(s) run for a variable amount of time (i.e. 10 minutes, 20 minutes, etc.).
    • Generate reports and graphs that show CPU, memory, and network access metrics for:
      • The system as a whole (i.e. how loaded is the system).
      • Each "manager application" launched by my script.
    Caveats

    My understand so far (please feel free to correct me if these assumptions are incorrect) is that PTS is a benchmarking tool (i.e. is intended to stress-test a system and generate reports). My intent is to provide my own "custom stress test" logic, and to take advantage of the reporting capabilities of Phoronix. Additionally, if PTS provides additional APIs for Linux and Windows (i.e. a common set of functions/APIs) to query metrics like CPU/memory/network-interface usage at the system and process/application level, so much the better.

    Question(s)
    • Is PTS something I could use as a profiling (and not a benchmarking) tool for the use cases described above?
    • Is it straightforward/trivial to disable functionality that uploads reports to off-site storage (i.e. PasteBin), so it can be used as an in-house only tool? I'm fine with sharing changes to the software and/or supplying the "custom profiles/stress-test-scripts" I generate to accommodate my use cases.
    Lastly, if it's appropriate to ask on this forum, if Phoronix is not the ideal tool for this task, may I request advice/recommendations on an alternative? I'd rather not resort to tearing apart top, iotop, etc.; and feeding the data into a multitude of separate tools for report generation.

    Thank you.


  • #2
    Check out the documentation on the system monitoring module for details on the recording of those profiles.

    Or just run:

    MONITOR=all phoronix-test-suite benchmark <whatever tests>

    As an example as to the current system monitoring/profiling sensors.
    Michael Larabel
    https://www.michaellarabel.com/

    Comment


    • #3
      Excellent. Thanks Michael!

      Comment

      Working...
      X