mirror of https://github.com/minio/minio.git
				
				
				
			
		
			
				
	
	
		
			51 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
## Minio Cloud Storage, (C) 2017, 2018 Minio, Inc.
 | 
						|
##
 | 
						|
## Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
## you may not use this file except in compliance with the License.
 | 
						|
## You may obtain a copy of the License at
 | 
						|
##
 | 
						|
##     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
##
 | 
						|
## Unless required by applicable law or agreed to in writing, software
 | 
						|
## distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
## See the License for the specific language governing permissions and
 | 
						|
## limitations under the License.
 | 
						|
 | 
						|
# This script changes protected files, and must be run as root
 | 
						|
 | 
						|
for i in $(echo /sys/block/*/queue/iosched 2>/dev/null); do
 | 
						|
    iosched_dir=$(echo "${i}" | awk '/iosched/ {print $1}')
 | 
						|
    [ -z "${iosched_dir}" ] && {
 | 
						|
        continue
 | 
						|
    }
 | 
						|
    ## Change each disk ioscheduler to be "deadline"
 | 
						|
    ## Deadline dispatches I/Os in batches. A batch is a
 | 
						|
    ## sequence of either read or write I/Os which are in
 | 
						|
    ## increasing LBA order (the one-way elevator). After
 | 
						|
    ## processing each batch, the I/O scheduler checks to
 | 
						|
    ## see whether write requests have been starved for too
 | 
						|
    ## long, and then decides whether to start a new batch
 | 
						|
    ## of reads or writes
 | 
						|
    path=$(dirname "${iosched_dir}")
 | 
						|
    [ -f "${path}/scheduler" ] && {
 | 
						|
        echo "deadline" > "${path}/scheduler" 2>/dev/null || true
 | 
						|
    }
 | 
						|
    ## This controls how many requests may be allocated
 | 
						|
    ## in the block layer for read or write requests.
 | 
						|
    ## Note that the total allocated number may be twice
 | 
						|
    ## this amount, since it applies only to reads or
 | 
						|
    ## writes (not the accumulate sum).
 | 
						|
    [ -f "${path}/nr_requests" ] && {
 | 
						|
        echo "256" > "${path}/nr_requests" 2>/dev/null || true
 | 
						|
    }
 | 
						|
    ## This is the maximum number of kilobytes
 | 
						|
    ## supported in a single data transfer at
 | 
						|
    ## block layer.
 | 
						|
    [ -f "${path}/max_sectors_kb" ] && {
 | 
						|
        echo "1024" > "${path}/max_sectors_kb" 2>/dev/null || true
 | 
						|
    }
 | 
						|
done
 |