查看,每个磁盘都有自己独立的算法,查看方式如下:
1 2 |
cat /sys/block/sda/queue/scheduler noop deadline [cfq] |
其中[cfq]是当前使用的,前边是支持的算法
我们可以调整的值nr_requests:buffer的大小,就是我们一次给磁盘的大小(请求的数量)
1 |
cd /sys/block/sda/queue/ |
1 2 3 |
cat nr_requests cat read_ahead_kb |
不同的io算法的参数也是不相同的,当我们修改算法之后,参数也会随着做相应的改变
修改算法
1 |
echo deadline > /sys/block/sda/queue/schedue |
read_expire
write_expire
如何调整一个进程的io优先级,比如有个孙子5分钟前跑了一个吃io的进程,我不能因为我开始的晚就默认认为我不重要啊,直接给丫io降到最低(ionice 只针对cfg算法)
cfq 有一个 ionice -n0 -c1 -p pid (n 0~7 优先级)(c class)
例子:
1 2 3 |
ionice -n7 -c2 cmd ionice -c3 cmd |
这是在命令开始执行的时候直接调整,我们也可以在命令开始后进行调整
cfg算法 有3个class(real-time > best-effort>idle),优先级一级一级降低
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021