←back to thread

256 points BSDobelix | 8 comments | | HN request time: 1.271s | source | bottom
Show context
gausswho ◴[] No.42164371[source]
With this tool I am wary that I'll encounter system issues that are dramatically more difficult to diagnose and troubleshoot because I'll have drifted from a standard distro configuration. And in ways I'm unaware of. Is this a reasonable hesitation?
replies(6): >>42164481 #>>42164533 #>>42164535 #>>42164760 #>>42164990 #>>42168400 #
1. sgarland ◴[] No.42164533[source]
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.

replies(2): >>42164601 #>>42170649 #
2. nine_k ◴[] No.42164601[source]
I'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.

replies(2): >>42164659 #>>42166301 #
3. sgarland ◴[] No.42164659[source]
Fair point, though I didn’t see any such option with this tool.
replies(1): >>42164688 #
4. nine_k ◴[] No.42164688{3}[source]
It's developed in the open; we can create Github issue.

Actually https://github.com/oracle/bpftune/issues/99

replies(1): >>42167417 #
5. bink ◴[] No.42166301[source]
I 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.
6. westurner ◴[] No.42167417{4}[source]
In 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/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/6a50f5ff619caeea6f04d... https://github.com/oracle/bpftune/blob/6a50f5ff619caeea6f04d...

replies(1): >>42174416 #
7. zorked ◴[] No.42170649[source]
Learning 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.

8. westurner ◴[] No.42174416{5}[source]
Here's that, though this is dnvted to -1? 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.