Bug 1100826
| Summary: | Create new plugin for process scheduling/priority tuning | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Jeremy Eder <jeder> | |
| Component: | tuned | Assignee: | Jaroslav Škarvada <jskarvad> | |
| Status: | CLOSED ERRATA | QA Contact: | qe-baseos-daemons | |
| Severity: | high | Docs Contact: | ||
| Priority: | high | |||
| Version: | 7.1 | CC: | jeder, jskarvad, lgoncalv, mgrepl, perfbz, psklenar, williams | |
| Target Milestone: | rc | |||
| Target Release: | --- | |||
| Hardware: | All | |||
| OS: | Linux | |||
| Whiteboard: | ||||
| Fixed In Version: | tuned-2.4.0-0.el7 | Doc Type: | Enhancement | |
| Doc Text: |
Feature:
Process scheduling/priority tuning.
Reason:
See comment 0.
Result:
For description of the implemented feature and how to use it see comment 3.
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 1148546 (view as bug list) | Environment: | ||
| Last Closed: | 2015-03-05 13:29:11 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1148546 | |||
|
Comment 3
Jaroslav Škarvada
2014-09-30 23:06:47 UTC
CCing mgrepl, tuned now calls chrt and taskset. Improvements over rtctl tool: - inheritance - group names can be inherited from ancestor profiles - automatic revert of settings - on profile unload / change everything what was changed is reverted back to its initial state (before profile load). During the revert both PID and full process name are checked and both need to match for the revert to take action. Regarding tuning of newly created processes I need to think a bit about it. Systemtap / LD_PRELOAD may bring performance penalty (for loads creating many processes - probably not typical loads). Other possibility is to poll e.g. each 10 seconds. There is already infrastructure for this that was used for dynamic tuning (already disabled in RHEL). This may be improved just to only run monitors for processes polling. Anyway this will require some more engineering work, 7.1 is not realistic for it. Hi Jaroslav, Thanks! I'm going to play around with this. About comment #6, newly created processes. I can say that the polling method will not be accepted (by customers); especially in the context of MRG, but also RHEL as well. If I remember correctly, Clark had some ideas in this area, but I don't exactly recall what the were. If a user adds their own tuned profile that uses this plugin, and puts their application thread regexs in there...the problem is that tuned starts before their app, and thus tuned will not see any matching threads to apply any of the tunings, is that correct ? (In reply to Jeremy Eder from comment #7) > If a user adds their own tuned profile that uses this plugin, and puts their > application thread regexs in there...the problem is that tuned starts before > their app, and thus tuned will not see any matching threads to apply any of > the tunings, is that correct ? Yes, this is correct. Currently it works similar to rtctl. For tuned to apply tunings for customers user space apps, they would need to restart tuned or switch profile. Feel free to forward me any ideas/proposals regarding tracing of new processes. I would like to select most suitable / universal approach for the implementation. (In reply to Jaroslav Škarvada from comment #6) > Regarding tuning of newly created processes I need to think a bit about it. > Systemtap / LD_PRELOAD may bring performance penalty (for loads creating > many processes - probably not typical loads). Other possibility is to poll > e.g. each 10 seconds. There is already infrastructure for this that was used > for dynamic tuning (already disabled in RHEL). This may be improved just to > only run monitors for processes polling. Anyway this will require some more > engineering work, 7.1 is not realistic for it. You may want to look at 'tuna', where we get the perf subsystem to send us a thread creation event. Tuna used to poll /proc for new threads but we moved to perf where it exists, since it's much lower overhead. I'll see if I can find that code and point you at it. (In reply to Clark Williams from comment #9) > You may want to look at 'tuna', where we get the perf subsystem to send us a > thread creation event. Tuna used to poll /proc for new threads but we moved > to perf where it exists, since it's much lower overhead. > > I'll see if I can find that code and point you at it. OK, thanks, NP, I know perf and I saw this code in tuna. So for now this is candidate no. 1. Closing this for 7.1 and cloning as RFE to 7.2 for runtime detection of processes. (In reply to Jaroslav Škarvada from comment #4) > CCing mgrepl, tuned now calls chrt and taskset. Are there SELinux issues? Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-0550.html |