Add block and mutex profiles #39
No reviewers
Labels
No labels
P0
P1
P2
P3
badger
frostfs-adm
frostfs-cli
frostfs-ir
frostfs-lens
frostfs-node
good first issue
triage
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
6 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#39
Loading…
Reference in a new issue
No description provided.
Delete branch "carpawell/optional-profiles"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #22.
@alexvanin, @KirillovDenis, @fyrchik, @acid-ant, lets discuss config format, values (
int
orbool
?) and if the IR shoud have it too?Also, i think that should be merged after some adoption of the https://github.com/nspcc-dev/neofs-node/pull/2094.
I would like to adopt the same scheme across all apps, including IR, gateways, etc.
I am perfectly fine with proposed format.
I believe IR should have it too, it blocks a lot.
I would make a section
profile.debug
for this (with valuesblock_rate
,mutex_rate
). This way it is obvious, that this is not intended to be used in production.Feat/Add optional profilesto WIP: Feat/Add optional profilesWIP: Feat/Add optional profilesto Feat/Add optional profilesmode
required forcontrol shards set-mode
5a9d6a09d8cli
tocmd/internal/common
2b09564355--config
incmd/frostfs-adm/internal/commonflags/flags.go
ee24815748morph netmap-candidates
515c60bdf4treePath
204cd3a11cdump-hashes
236c4af615Open
andInit
similar c53903ccd0initFlushMarks
d1d123d180context cancelled
errors bf1e59bb83Dial
errors 0b61a3c961nns-name
andnns-zone
forcontainer create
88e3868f47strings.Cut
instead ofstrings.Split*
where possible e9f3c24229nnsResolveKey
7486c02bbcgroup.frostfs
key from output of thedump-hashes
9929dcf50bgroup.frostfs
at init step b4582239bfIsLocked
public f006f3b342neo-go
client API for subs 533e9f8b75containersOf
9e54646248containersOf
e85e5382e4alphabetState
param toepochTimer
control shards doctor
commandRandObjGenerator
6ad5c38225DumpShard
andRestoreShard
RPCExists
test stable32350ed1e6
tob287a8a290
b287a8a290
to1250dd23d7
1250dd23d7
to7f41586137
@ -8,0 +19,4 @@
mutexRate = -1
}
runtime.SetBlockProfileRate(blockRate)
Where do we have
.enabled
check?hm. reorganized a little, also, added support for
SIGHUP
@ -83,1 +89,4 @@
| Parameter | Type | Default value | Description |
|--------------|-------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `block_rate` | `int` | `0` | Controls the fraction of goroutine blocking events that are reported in the blocking profile. The profiler aims to sample an average of one blocking event per rate nanoseconds spent blocked. Non-positive values disable profiler reports. |
Can we just give a brief description refer to a Go-doc instead of copying?
check the updated version, please
7f41586137
to0c7040bdf2
0c7040bdf2
todd56abf020
dd56abf020
toa491b875fa
@ -88,3 +87,3 @@
initAndLog(c, pprof.name, pprof.init)
initAndLog(c, metrics.name, metrics.init)
initAndLog(c, "profiler", initProfilerService)
pprof was on top of init process to give us the ability to debug shutdown process. Now it is possible to stuck at the metrics when shutdown node without instrument for profiling routines.
Fixed
@ -111,2 +112,4 @@
func initHTTPServers(cfg *viper.Viper, log *logger.Logger) []*httputil.Server {
pprof := "pprof"
pprofDebug := pprof + ".debug"
Do we really need this debug section? Is it about pprof overhead?
They can have noticeable overhead for small values, e.g. reasonable default is 10k, not 1. Let's disable it by default (0 value) and remove from the
debug
section.a491b875fa
tob05cb54681
Updated, also, please, check the values we pass to
runtime.Set...
, there was a bug here in the previous iteration.Feat/Add optional profilesto Add block and mutex profilesb05cb54681
to701e6c5323
@ -27,3 +30,1 @@
c.enabled = cfg.GetBool(c.enabledKey)
c.address = cfg.GetString(c.addressKey)
c.shutdownDur = cfg.GetDuration(c.shutdownTimeoutKey)
c.enabled = cfg.GetBool(c.name + ".enabled")
enabledKeyPostfix ?
fixed
701e6c5323
to429a87e83b