diff options
| author | Li Gang <gang.g.li@intel.com> | 2023-09-05 17:31:06 +0800 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2023-09-13 18:36:09 +0000 |
| commit | b45b00162b688deff23a64d442f905261c49bdc4 (patch) | |
| tree | 03244ba8a64c2954f1d7b883aa3223639eec8af8 /src/os/exec | |
| parent | 794e7ea15b3eaf1c88c7dd9b41551acf6017bcc3 (diff) | |
| download | go-b45b00162b688deff23a64d442f905261c49bdc4.tar.xz | |
runtime: resolve false sharing for frequent memory allocate workloads
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>
Diffstat (limited to 'src/os/exec')
0 files changed, 0 insertions, 0 deletions
