Kernel IO Turning

 

 


Kernel Performance turning

    
# Page Cache (holds data from files and executable programs) 1% RAM

"1" > /proc/sys/vm/pagecache

# 'deadline' seems to enhance performance

"deadline" > /sys/block/sdc/queue/scheduler

nr_requests

# the size of I/O requests which are buffered before they are communicated to the disk by the Scheduler.

# (order and merge the requests)

# Read 及 Write 是分開計算的, 128 => 128R, 128W

echo 128 > /sys/block/sda/queue/nr_requests

nr_requests vs queue_depth

queue_depth: 發生在 HDD 設備上

# number of pages which are written to swap in a single attempt ( '16' as per the RAID stripe size of 64k )

echo "16" > /proc/sys/vm/page-cluster

# With GlusterFS, many users with a lot of storage and many small files easily end up using a lot of RAM
# on the server side due to 'inode/dentry' caching
# default value of vfs_cache_pressure=100, 0 => disable

vm.vfs_cache_pressure > 100

# defines the percentage of memory that can become dirty before a background flushing
# Until this percentage is reached no pages are flushed to disk.

vm.dirty_background_ratio

# defines the percentage of memory which can be occupied by dirty pages before a forced flush starts.

vm.dirty_ratio

# sets read-ahead to 4096 * 512-byte sectors
# It may put in cached data which will be requested by the next read.
# Too much read-ahead may kill random I/O on huge files

blockdev --setra 4096 /dev/<devname>

Creative Commons license icon Creative Commons license icon