#!/bin/bash # Rocky9 compatible # Author: gilbertas matusevicius, 2015 # This scrips check for SSD disks in system, and enables deadline schedules on them to improve performance . /usr/src/k_framework/main.sh SCRIPT_NAME="Deadline scheduler for SSD" VERSION="1.1.0" k_start enable_deadline_scheduler() { local disk_to_enable="$1" local disk_name="/dev/$(echo $disk_to_enable | grep -o 'sd[a-z]')" if ! grep -qF '[deadline]' $disk_to_enable; then echo "deadline" > "$disk_to_enable" check_if_enabled_successfully $disk_path_for_scheduler else report "Deadline scheduler is alrerady enabled for SSD disk $disk_name" 0 fi #Add permanently in rc.local if needed if ! grep -q "deadline.*$disk_to_enable" /etc/rc.local; then echo "echo \"deadline\" > $disk_to_enable" >> /etc/rc.local fi } check_if_enabled_successfully() { local disk_to_enable="$1" local disk_name="/dev/$(echo $disk_to_enable | grep -o 'sd[a-z]')" if grep -qF '[deadline]' $disk_to_enable; then report "Deadline scheduler was successfully enabled for SSD disk $disk_name" 4 else report "Failed to enable deadline scheduler for SSD disk $disk_name" 1 fi } # Get list of SSD disks for disk in /sys/block/sd?/queue/rotational; do # 0 - it is ssd # 1 - it is NOT ssd if [ $(cat $disk) == "0" ]; then disk_path=$(dirname $disk) disk_path_for_scheduler="${disk_path}/scheduler" report "SSD: $disk_path" 3 enable_deadline_scheduler $disk_path_for_scheduler fi done k_exit $EXIT_CODE