Initial commit.
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
pkgbase = kira-blk-settings
|
||||||
|
pkgdesc = Config to make VFS work more adequate, especially with USB Flash drives.
|
||||||
|
pkgver = 1.0.1
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://dev.kira-linux.org/kira-linux-packages/kira-blk-settings
|
||||||
|
arch = any
|
||||||
|
license = GPL3
|
||||||
|
source = 66-kira-vfs.conf
|
||||||
|
source = 60-kira-ioschedulers.rules
|
||||||
|
sha384sums = 02c4f33615ebf14b66f877e01074fc85c19612b3a1e0cbdd9fdbcf45482729d0d8baec934f68af08858399f7af1b6bb5
|
||||||
|
sha384sums = 382da6f31676158f16e022dd0628c8f2d0c6e0db2bc37a7d52124beff9e920b804decfce6f717bb11b24bde9b5ba2c76
|
||||||
|
|
||||||
|
pkgname = kira-blk-settings
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
# ---> ArchLinuxPackages
|
||||||
|
*.tar
|
||||||
|
*.tar.*
|
||||||
|
*.jar
|
||||||
|
*.exe
|
||||||
|
*.msi
|
||||||
|
*.zip
|
||||||
|
*.tgz
|
||||||
|
*.log
|
||||||
|
*.log.*
|
||||||
|
*.sig
|
||||||
|
|
||||||
|
pkg/
|
||||||
|
src/
|
||||||
|
|
||||||
|
|
||||||
|
# ---> Archives
|
||||||
|
*.7z
|
||||||
|
*.rar
|
||||||
|
*.gz
|
||||||
|
*.bzip
|
||||||
|
*.bz2
|
||||||
|
*.xz
|
||||||
|
*.lzma
|
||||||
|
*.cab
|
||||||
|
|
||||||
|
# ---> systemd
|
||||||
|
*.service
|
||||||
|
*.socket
|
||||||
|
*.timer
|
||||||
|
|
||||||
|
# ---> snap
|
||||||
|
*.snap
|
||||||
|
*.service
|
||||||
|
*.timer
|
||||||
|
*.socket
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#
|
||||||
|
# Main purpose of this config is to make work with flash drives and memory cards more adequate.
|
||||||
|
# mq-deadline scheduler using IO latency as main measure, what makes it great for low IO/low concurrency
|
||||||
|
# devices as usb flash drives, but also, it work really well for SATA SSDs.
|
||||||
|
#
|
||||||
|
|
||||||
|
# HDD
|
||||||
|
ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
|
||||||
|
|
||||||
|
# SSD
|
||||||
|
ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
|
||||||
|
|
||||||
|
# NVMe SSD
|
||||||
|
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none"
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
#
|
||||||
|
# Tell the kernel to use up to 10% of the RAM as cache for writes
|
||||||
|
# On systems with lot of ram can be lowered even more.
|
||||||
|
# Write cache is not free, and overuse of RAM for it
|
||||||
|
# can cause low memory conditions simultaneously with IO clog.
|
||||||
|
#
|
||||||
|
|
||||||
|
# The infamous issues with writing to USB Flash drives partially caused by
|
||||||
|
# write cache being too big.
|
||||||
|
vm.dirty_ratio=10
|
||||||
|
|
||||||
|
# Instruct kernel to use up to 5% of RAM before slowing down the process that's writing
|
||||||
|
# Works in congestion with previous setting. And serving same purpose: protect system responsiveness.
|
||||||
|
vm.dirty_background_ratio=5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ******** Options below is for information purposes and possible future enablement. **********
|
||||||
|
|
||||||
|
|
||||||
|
# The value controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects (VFS cache).
|
||||||
|
# Lowering it from the default value of 100 makes the kernel less inclined to reclaim VFS cache (do not set it to 0, this may produce out-of-memory conditions)
|
||||||
|
#vm.vfs_cache_pressure=50
|
||||||
|
|
||||||
|
# Contains, as a bytes of total available memory that contains free pages and reclaimable
|
||||||
|
# pages, the number of pages at which a process which is generating disk writes will itself start
|
||||||
|
# writing out dirty data.
|
||||||
|
#vm.dirty_bytes = 268435456
|
||||||
|
|
||||||
|
# Contains, as a bytes of total available memory that contains free pages and reclaimable
|
||||||
|
# pages, the number of pages at which the background kernel flusher threads will start writing out
|
||||||
|
# dirty data.
|
||||||
|
#vm.dirty_background_bytes = 134217728
|
||||||
|
|
||||||
|
# This tunable is used to define when dirty data is old enough to be eligible for writeout by the
|
||||||
|
# kernel flusher threads. It is expressed in 100'ths of a second. Data which has been dirty
|
||||||
|
# in-memory for longer than this interval will be written out next time a flusher thread wakes up
|
||||||
|
# (Default is 3000).
|
||||||
|
#vm.dirty_expire_centisecs = 3000
|
||||||
|
|
||||||
|
# The kernel flusher threads will periodically wake up and write old data out to disk. This
|
||||||
|
# tunable expresses the interval between those wake-ups, in 100'ths of a second (Default is 500).
|
||||||
|
# vm.dirty_writeback_centisecs = 1500
|
||||||
|
|
||||||
|
# Increase writeback interval for xfs
|
||||||
|
# fs.xfs.xfssyncd_centisecs = 10000
|
||||||
|
|
||||||
|
# Set the maximum watches on files
|
||||||
|
#fs.inotify.max_user_watches = 524288
|
||||||
|
|
||||||
|
# Set size of file handles and inode cache
|
||||||
|
#fs.file-max = 2097152
|
||||||
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Maintainer: Kira <[@kira](https://dev.kira-linux.org/kira)>
|
||||||
|
|
||||||
|
pkgname=kira-blk-settings
|
||||||
|
pkgver=1.0.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Config to make VFS work more adequate, especially with USB Flash drives."
|
||||||
|
arch=('any')
|
||||||
|
license=('GPL3')
|
||||||
|
url="https://dev.kira-linux.org/kira-linux-packages/kira-blk-settings"
|
||||||
|
|
||||||
|
source=(
|
||||||
|
'66-kira-vfs.conf'
|
||||||
|
'60-kira-ioschedulers.rules'
|
||||||
|
)
|
||||||
|
|
||||||
|
sha384sums=('02c4f33615ebf14b66f877e01074fc85c19612b3a1e0cbdd9fdbcf45482729d0d8baec934f68af08858399f7af1b6bb5'
|
||||||
|
'382da6f31676158f16e022dd0628c8f2d0c6e0db2bc37a7d52124beff9e920b804decfce6f717bb11b24bde9b5ba2c76')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm0644 "$srcdir/66-kira-vfs.conf" "$pkgdir/etc/sysctl.d/66-kira-vfs.conf"
|
||||||
|
install -Dm0644 "$srcdir/60-kira-ioschedulers.rules" "$pkgdir/etc/udev/rules.d/60-kira-ioschedulers.rules"
|
||||||
|
}
|
||||||
@@ -1,3 +1,13 @@
|
|||||||
# kira-blk-settings
|
# kira-blk-settings
|
||||||
|
|
||||||
Main purpose of this config is to make work of flash drives and memory cards more adequate.
|
# Main purpose of this config is to make work of flash drives and memory cards more adequate.
|
||||||
|
|
||||||
|
mq-deadline scheduler using IO latency as main measure, what makes it great for low IO/low concurrency devices as usb flash drives, but also, it work really well for SATA SSDs.
|
||||||
|
|
||||||
|
Another part is to reduce vfs write cache.
|
||||||
|
Write cache is not free, and overuse of RAM for it can cause low memory conditions simultaneously with IO clog.
|
||||||
|
The infamous issues with writing to USB Flash drives partially caused by write cache being too big.
|
||||||
|
|
||||||
|
Modern systems having lots of RAM (more than 8GB) what makes write cache with default settings grow inadequately large for physical storage actual write throughput.
|
||||||
|
|
||||||
|
The is some cases when big write cache is desired, like NAS storage or some write intensive workload that at the same time is not RAM intensive.
|
||||||
|
|||||||
Reference in New Issue
Block a user