mirror of
https://github.com/minio/minio.git
synced 2025-11-07 21:02:58 -05:00
optimize startup sequence performance (#19009)
- bucket metadata does not need to look for legacy things anymore if b.Created is non-zero - stagger bucket metadata loads across lots of nodes to avoid the current thundering herd problem. - Remove deadlines for RenameData, RenameFile - these calls should not ever be timed out and should wait until completion or wait for client timeout. Do not choose timeouts for applications during the WRITE phase. - increase R/W buffer size, increase maxMergeMessages to 30
This commit is contained in:
@@ -175,8 +175,8 @@ func (c ContextDialer) DialContext(ctx context.Context, network, address string)
|
||||
|
||||
const (
|
||||
defaultOutQueue = 10000
|
||||
readBufferSize = 16 << 10
|
||||
writeBufferSize = 16 << 10
|
||||
readBufferSize = 32 << 10 // 32 KiB is the most optimal on Linux
|
||||
writeBufferSize = 32 << 10 // 32 KiB is the most optimal on Linux
|
||||
defaultDialTimeout = 2 * time.Second
|
||||
connPingInterval = 10 * time.Second
|
||||
connWriteTimeout = 3 * time.Second
|
||||
@@ -654,7 +654,7 @@ func (c *Connection) connect() {
|
||||
fmt.Printf("%v Connecting to %v: %v. Retrying.\n", c.Local, toDial, err)
|
||||
}
|
||||
sleep := defaultDialTimeout + time.Duration(rng.Int63n(int64(defaultDialTimeout)))
|
||||
next := dialStarted.Add(sleep)
|
||||
next := dialStarted.Add(sleep / 2)
|
||||
sleep = time.Until(next).Round(time.Millisecond)
|
||||
if sleep < 0 {
|
||||
sleep = 0
|
||||
@@ -950,7 +950,7 @@ func (c *Connection) handleMessages(ctx context.Context, conn net.Conn) {
|
||||
cancel(ErrDisconnected)
|
||||
return
|
||||
}
|
||||
if cap(msg) > readBufferSize*8 {
|
||||
if cap(msg) > readBufferSize*4 {
|
||||
// Don't keep too much memory around.
|
||||
msg = nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user