mirror of
https://github.com/minio/minio.git
synced 2024-12-24 22:25:54 -05:00
38027c8f52
This PR brings two optimizations mainly for page-cache build-up and how to avoid getting OOM killed in the process. Although these memories are reclaimable Linux is not fast enough to reclaim them as needed on a very busy system. fadvise is a system call implemented in Linux to advise page-cache to avoid overload as we get significant amount of requests on the server. - FADV_SEQUENTIAL tells that all I/O from now is going to be sequential, allowing for more resposive throughput. - FADV_NOREUSE tells kernel to start removing things for this 'fd' from page-cache.
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
//go:build !linux && !netbsd && !freebsd && !darwin && !openbsd
|
|
// +build !linux,!netbsd,!freebsd,!darwin,!openbsd
|
|
|
|
// Copyright (c) 2015-2021 MinIO, Inc.
|
|
//
|
|
// This file is part of MinIO Object Storage stack
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
package disk
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
// Fdatasync is a no-op
|
|
func Fdatasync(f *os.File) error {
|
|
return nil
|
|
}
|
|
|
|
// fdavise advice constants
|
|
const (
|
|
FadvSequential = 0
|
|
FadvNoReuse = 0
|
|
)
|
|
|
|
// Fadvise implements possibility of choosing
|
|
// offset: 0, length: 0
|
|
func Fadvise(f *os.File, advice int) error {
|
|
return nil
|
|
}
|