-
Notifications
You must be signed in to change notification settings - Fork 17
Description
Manually investigating, finding and fixing opportunities for performance optimization can be cumbersome and do not scale. Also doing so in isolation we don't learn from each other's experiences. Wouldn't it be great if we could all pool our knowledge and learnings into the gProfiler platform. (This was part of the reason we had requested and worked with Intel for it to be opensourced)
Gprofiler Perf Studio platform provides us the opportunity to perform analysis and detection of known performance issues in our services. We are proposing to add a new capability / module to gProfiler to allow for a rule based performance / efficiency recommendation system which in future can be enhanced and augmented using LLMs / RAG.
The idea of the platform is very similar to that of IDS / IPS rules e.g. used by a system like Snort. These rules can be either public or private. The public community rules are reviewed and accepted as PRs to this repo allowing Performance Engineers across the industry to collaborate. For now these rules can operate on the CallStackNames column of the database but in future it can evolve to match against other attributes such as instance type/right sizing etc.
To start with we will have a new directory for storing these rules as text files containing insert queries for the database by creating a new Table called Optimization Rules. We will also add bash scripts to allow for automerge of internal rules if a user has their own. This is similar to something like /etc/system/system.d/.... allowing for merge and execution of these rules.
In future we can also have an exclude list for these rules to allow disabling rules that should not be inherited into the platform.
Proposed Table Schema
Rule ID: Incrementing Rule ID
CallStackName Pattern: Matching regex for the flamegraph
Platform Pattern: Matching regex for platform info (could be hardware or software)
Description: Details on what the inefficiency is to describe to the user
Optimization Description: Details on what the optimization is
Relative % Optimization Efficiency Change Min: Minimum optimization that the user would see
Relative % Optimization Efficiency Change Max: Maximum optimization that the user would see
Precision: probability of being true positive ( 1 - False positive / total )
Accuracy: measure to get visibility on savings impact ( 1 - ( proposed win - actual win)/proposed win ) * 100
Will update the proposal here on how to run these rules.