Push max threads to little less than kernel limit (#5001)

Let Minio server use more threads than allowed by golang runtime. This
is important to better deal with high load.
This commit is contained in:
A. Elleuch
2017-10-03 18:37:45 +01:00
committed by Dee Koder
parent a4f26aec00
commit 53f3d2fd65
3 changed files with 80 additions and 1 deletions

View File

@@ -16,9 +16,24 @@
package cmd
import "github.com/minio/minio/pkg/sys"
import (
"runtime/debug"
"github.com/minio/minio/pkg/sys"
)
func setMaxResources() (err error) {
// Set the Go runtime max threads threshold to 90% of kernel setting.
// Do not return when an error when encountered since it is not a crucial task.
sysMaxThreads, mErr := sys.GetMaxThreads()
if mErr == nil {
minioMaxThreads := (sysMaxThreads * 90) / 100
// Only set max threads if it is greater than the default one
if minioMaxThreads > 10000 {
debug.SetMaxThreads(minioMaxThreads)
}
}
var maxLimit uint64
// Set open files limit to maximum.