b45b00162b
False sharing observed inside mheap struct, between arenas and preceding variables.Pad mheap.arenas and preceding variables to avoid false sharing This false-sharing getting worse and impact performance on multi core system and frequent memory allocate workloads. While running MinIO On a 2 socket system(56 Core per socket) and GOGC=1000, we observed HITM>8% (perf c2c) on this cacheline. After resolve this false-sharing issue, we got performance 17% improved. Improvement verified on MinIO: Server: https://github.com/minio/minio Client: https://github.com/minio/warp Config: Single node MinIO Server with 6 ramdisk, without TLS enabled, Run warp GET request, 128KB object and 512 concurrent Fixes #62472 Signed-off-by: Li Gang<gang.g.li@intel.com> Change-Id: I9a4a3c97f5bc8cd014c627f92d59d9187ebaaab5 Reviewed-on: https://go-review.googlesource.com/c/go/+/525955 Reviewed-by: Heschi Kreinick <heschi@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> Auto-Submit: Michael Knyszek <mknyszek@google.com> |
||
---|---|---|
.github | ||
api | ||
doc | ||
lib/time | ||
misc | ||
src | ||
test | ||
.gitattributes | ||
.gitignore | ||
codereview.cfg | ||
CONTRIBUTING.md | ||
go.env | ||
LICENSE | ||
PATENTS | ||
README.md | ||
SECURITY.md |
The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 4.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Download and Install
Binary Distributions
Official binary distributions are available at https://go.dev/dl/.
After downloading a binary release, visit https://go.dev/doc/install for installation instructions.
Install From Source
If a binary distribution is not available for your combination of operating system and architecture, visit https://go.dev/doc/install/source for source installation instructions.
Contributing
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://go.dev/doc/contribute.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://go.dev/wiki/Questions for a list of places to ask questions about the Go language.