Skip to content

Commit cc5b414

Browse files
committed
chore: use Linux container CPU quota
Go is not cgroup aware and by default will set GOMAXPROCS to the number of available threads, regardless of whether it is within the allocated quota. This behaviour causes high amount of CPU throttling and degraded application performance. Fixes: AnalogJ#584
1 parent 5e33c33 commit cc5b414

File tree

6 files changed

+12
-4
lines changed

6 files changed

+12
-4
lines changed

collector/cmd/collector-metrics/collector-metrics.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
utils "github.com/analogj/go-util/utils"
1818
"github.com/fatih/color"
1919
"github.com/urfave/cli/v2"
20+
_ "go.uber.org/automaxprocs"
2021
)
2122

2223
var goos string
@@ -37,8 +38,8 @@ func main() {
3738
}
3839

3940
//we're going to load the config file manually, since we need to validate it.
40-
err = config.ReadConfig(configFilePath) // Find and read the config file
41-
if _, ok := err.(errors.ConfigFileMissingError); ok { // Handle errors reading the config file
41+
err = config.ReadConfig(configFilePath) // Find and read the config file
42+
if _, ok := err.(errors.ConfigFileMissingError); ok { // Handle errors reading the config file
4243
//ignore "could not find config file"
4344
} else if err != nil {
4445
os.Exit(1)

collector/cmd/collector-selftest/collector-selftest.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
utils "github.com/analogj/go-util/utils"
1414
"github.com/fatih/color"
1515
"github.com/urfave/cli/v2"
16+
_ "go.uber.org/automaxprocs"
1617
)
1718

1819
var goos string

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ require (
1818
github.com/spf13/viper v1.14.0
1919
github.com/stretchr/testify v1.8.1
2020
github.com/urfave/cli/v2 v2.2.0
21+
go.uber.org/automaxprocs v1.5.3
2122
golang.org/x/sync v0.1.0
2223
gorm.io/gorm v1.23.5
2324
)

go.sum

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,7 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
650650
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
651651
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
652652
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
653+
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
653654
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
654655
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
655656
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
@@ -762,6 +763,8 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
762763
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
763764
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
764765
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
766+
go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
767+
go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
765768
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
766769
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
767770
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=

webapp/backend/cmd/scrutiny/scrutiny.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
utils "github.com/analogj/go-util/utils"
1717
"github.com/fatih/color"
1818
"github.com/urfave/cli/v2"
19+
_ "go.uber.org/automaxprocs"
1920
)
2021

2122
var goos string
@@ -36,8 +37,8 @@ func main() {
3637
}
3738

3839
//we're going to load the config file manually, since we need to validate it.
39-
err = config.ReadConfig(configFilePath) // Find and read the config file
40-
if _, ok := err.(errors.ConfigFileMissingError); ok { // Handle errors reading the config file
40+
err = config.ReadConfig(configFilePath) // Find and read the config file
41+
if _, ok := err.(errors.ConfigFileMissingError); ok { // Handle errors reading the config file
4142
//ignore "could not find config file"
4243
} else if err != nil {
4344
log.Print(color.HiRedString("CONFIG ERROR: %v", err))

webapp/backend/pkg/models/testdata/helper.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"time"
1313

1414
"github.com/analogj/scrutiny/webapp/backend/pkg/models/collector"
15+
_ "go.uber.org/automaxprocs"
1516
)
1617

1718
func main() {

0 commit comments

Comments
 (0)