4 ms·
Yes, it is. IMO, except for learning (which should not be done in prod), you shouldn’t make changes that you don’t understand. The tools seems to mostly tweak
by sgarland 2y ago
Yes, it is. IMO, except for learning (which should not be done in prod), you shouldn’t make changes that you don’t understand.
The tools seems to mostly tweak various networking settings. You could set up a test instance with monitoring, throw load at it, and change the parameters the tool modifies (one at a time!) to see how it reacts.
- nine_k 2y agoI'd run such a tool on prod in "advice mode". It should suggest the tweaks, explaining the reasoning behind them, and listing the actions necessary to implement them. Then humans would decide if they want to implement that as is, partly, modified, or not at all.
- sgarland 2y agoFair point, though I didn’t see any such option with this tool.
- nine_k 2y agoIt's developed in the open; we can create Github issue. Actually https://github.com/oracle/bpftune/issues/99 https://github.com/oracle/bpftune/issues/99
- westurner 2y agoIn the existing issue, we can link to the code and docs that would need to be understood and changed: usage, main() https://github.com/oracle/bpftune/blob/6a50f5ff619caeea6f04d889e3a60de6c12feb76/src/bpftune.c#L280 https://github.com/oracle/bpftune/blob/6a50f5ff619caeea6f04d... - [ ] CLI opts: --pretend-allow <tuner> or --log-only-allow <tuner> or [...] Probably relevant function headers in libbpftune.c: bpftune_sysctl_write( bpftuner_tunable_sysctl_write( bpftune_module_load( static void bpftuner_scenario_log(struct bpftuner *tuner, unsigned int tunable, ; https://github.com/oracle/bpftune/blob/6a50f5ff619caeea6f04d889e3a60de6c12feb76/src/libbpftune.c#L716 https://github.com/oracle/bpftune/blob/6a50f5ff619caeea6f04d... https://github.com/oracle/bpftune/blob/6a50f5ff619caeea6f04d889e3a60de6c12feb76/src/libbpftune.c#L1047 https://github.com/oracle/bpftune/blob/6a50f5ff619caeea6f04d...
- westurner 2y agoHere's that, though this is dnvted to -1? https://github.com/oracle/bpftune/issues/99#issuecomment-2483618905 https://github.com/oracle/bpftune/issues/99#issuecomment-248... Ideally this tool could passively monitor and recommend instead of changing settings in production which could lead to loss of availability by feedback failure; -R / --rollback actively changes settings, which could be queued or logged as idk json or json-ld messages.
- bink 2y agoI agree. There's very little need to have a tool automatically changing complex kernel settings on the fly unless your infrastructure is undergoing dramatic changes in load and behavior on a daily basis, which seems unlikely for a modern server.
- zorked 2y agoLearning and self-tuning happens everywhere. Cache sizes that adjust to load, pools that grow and shrink, etc. This is just adding autotuning to something that doesn't have it. With presumably better algorithms than the rules-of-thumb approach that is more common. It's a great idea.