标签: ionice

rsync ionice 目的地

为了避免 rsync 使我们ionice在启动 rsync 和设置--bwlimit参数时使用的系统和网络饿死。例如:

ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo root@dest.com:/
Run Code Online (Sandbox Code Playgroud)

这确实有助于确保源服务器保持响应。但是,由于磁盘 io 为 100%(如atop实用程序所见),目标服务器变得非常慢。

是否也可以ionice在目标服务器上以某种方式使用?也许通过 rsync-e选项?如果可能,我不想运行 rsync 守护进程。

rsync ionice high-load rate-limiting

14
推荐指数
2
解决办法
7692
查看次数

CPU 和 IO 具有不同进程优先级的用例?

Linux 进程可以有不同的 CPU 和 IO 优先级(nice 和 ionice)。

为什么需要有不同的 CPU 和 IO 优先级?

让它们不同是否有任何现实世界的用法?

您发现哪些实际用例需要不同的 CPU 和 IO 优先级?例如高于正常 CPU 优先级但低于正常 IO 优先级,反之亦然。

linux ionice nice

9
推荐指数
1
解决办法
1115
查看次数

如何防止子树删除(`rm -rf`)使其他进程无法进行磁盘 I/O?

我们有一个非常大(多 GB)的 Nginx 缓存目录用于繁忙的站点,我们偶尔需要一次清除所有目录。我过去解决了这个问题,方法是将缓存文件夹移动到新路径,在旧路径上创建一个新的缓存文件夹,然后rm -rfing 旧的缓存文件夹。

然而,最近,当我在忙碌的早晨需要清除缓存时,来自的 I/Orm -rf使我的服务器进程无法访问磁盘,因为 Nginx 及其面向的服务器都是读取密集型的。当 CPU 处于空闲状态并rm -rf占用iotop.

ionice -c 3在调用 时尝试过rm,但它似乎对观察到的行为没有明显影响。

有没有办法驯服rm -rf更多地共享磁盘?我是否需要使用不同的技术来获取线索ionice

更新:

有问题的文件系统是 AWS EC2 实例存储(主磁盘是 EBS)。该/etc/fstab条目如下所示:

/dev/xvdb       /mnt    auto    defaults,nobootwait,comment=cloudconfig 0       2
Run Code Online (Sandbox Code Playgroud)

linux hard-drive io ionice rm

8
推荐指数
2
解决办法
1909
查看次数

rrdgraph 生成在高 IO 负载下失败

我们有一个 4 核 CPU 生产系统,它执行大量 cronjobs,具有恒定的 proc 队列和~1.5 的通常负载。

在夜间,我们用 postgres 做一些 IO 密集型的事情。我们生成一个图表,显示负载/内存使用情况 (rrd-updates.sh) 这有时会在高 IO 负载情况下“失败”。几乎每晚都会发生这种情况,但并非在所有高 IO 情况下都会发生。

我的“正常”解决方案是对 postgres 内容进行优化和离子化,并增加图形生成的优先级。然而这仍然失败。图生成是使用 flock 进行半线程证明的。我确实记录了执行时间,并且在高 IO 负载期间生成图形最多需要 5 分钟,这似乎导致图形丢失长达 4 分钟。
时间范围与 postgres 活动完全匹配(这有时也发生在白天,虽然不是那么频繁)离子化到实时 prio(C1 N6 graph_cron vs C2 N3 postgres),在 postgres 之上(-5 graph_cron vs 10 postgres)很好) 没有解决问题。

假设没有收集数据,额外的问题是 ionice/nice 不知何故仍然无法正常工作。
即使有 90% 的 IOwait 和 100 的负载,我仍然能够免费使用数据生成命令,而没有超过 5 秒的延迟(至少在测试中)。

遗憾的是,我无法在测试中完全重现这一点(只有一个虚拟化的开发系统)

版本:

内核2.6.32-5-686-bigmem
Debian Squeeze rrdtool1.4.3 硬件:SAS 15K RPM HDD,硬件 RAID1
挂载选项中的LVM :ext3 with rw,errors=remount-ro
调度程序:CFQ …

linux debian io ionice rrdtool

8
推荐指数
1
解决办法
383
查看次数

如何为 nfs 客户端进程设置 i/o 优先级?

配置是:一个linux服务器和一个作为nfs服务器的nas box(netgear)。

通过简单地将文件从 nfs 共享复制到 nfs 共享,Linux 服务器上的单个进程很容易使用所有 I/O 带宽。i/o 通道被阻塞,服务器上的所有其他进程将几乎停止等待 i/o。负载增长到 10-20(四核),越来越多的 pdflush 进程出现......直到有人停止文件复制。

如何限制 cp 进程使用的 i/o 带宽?nice当然不会有帮助,但也ionice -c3没有效果。ionice 是否会影响 nfs 挂载?有类似nfsnice 的东西吗?

nfs io ionice nice

7
推荐指数
1
解决办法
3143
查看次数

我可以在没有 ionice 的情况下节流焦油吗?

我的 tar 命令

tar --remove-files -cvif 2011-08-02_14-05-09.tar 2011-08-02_14-05-09
Run Code Online (Sandbox Code Playgroud)

写入 80MB/s。这超出了我们可以节省的容量,因为 MySQL 开始排队写入,最终我们会收到监控警报,因为系统不会永远等待 MySQL 并超时。

问:我可以节流tar到 20MB/s 吗?

在联机帮助页中没有找到任何内容,我们已经尝试使用最低ionice级别:/usr/bin/ionice -c3 tar <...>但这不会影响写入的 MB/s 并且 MySQL 仍然冻结。

也许ionice因为我们在/dev/md0软件 RAID 设备上而被忽略?

ionice tar software-raid amazon-ec2 rate-limiting

7
推荐指数
1
解决办法
896
查看次数

让内核知道设备托管

我有一个带有大型硬件 RAID6 阵列的服务器,该阵列配置了两个卷,由 Linux 呈现为sdasdb(是的,我知道,但这是一个以这种方式配置的租来的 colo,遗憾的是我不得不忍受它)。

我有一个使用sdb. 我已经运行了ionice -c3,因为我希望它的优先级低于其他任何东西。不幸的是,ionice不知道这两个设备实际上共享同一个阵列的带宽。当该进程繁忙时,内核会看到它sdb是安静的,并为其提供所需的所有带宽。但是,这可能会变得sda非常慢,因为(据我所知)ionice是基于每个设备的。

有没有办法让内核在所有设备上平衡磁盘 I/O ?

linux ionice

7
推荐指数
1
解决办法
120
查看次数

不错,离子还不够

我有一个脚本,它启动大、CPU 和内存消耗进程树。那里有 Python 和可执行文件,但一切都始于单个 bash 脚本和 Python 子进程。

在执行期间,系统的其余部分被完全阻塞。我试图通过 来缓解 $ nice -n10 ionice -c2 ./Script.sh,但这还不够 - 使用计算机非常滞后(实际上这是开发桌面,但指定服务器上的问题将类似)。

我怀疑,问题在于进程使用了​​太多内存 - 一切最终都被换出并变得缓慢。

有没有办法降低访问物理记忆的进程(及其递归子进程)的优先级?我更喜欢它在后台执行得更慢,对其他任务的影响有限。

ionice nice

6
推荐指数
1
解决办法
5460
查看次数

ionice 与软件 RAID

ionice 在软件 RAID 环境中工作吗?我无法为 md 设备设置 CFQ 调度程序,因为没有文件 /sys/block/md0/queue/scheduler 。似乎底层磁盘的调度程序设置没有传播到 RAID 设备。

想法?

linux raid ionice scheduling

5
推荐指数
1
解决办法
825
查看次数

CFQ io调度器的空闲调度类的“定义宽限期”是多长时间?

ionice男子说:页

以空闲 io 优先级运行的程序只会在没有其他程序在定义的宽限期内请求磁盘 io 时获得磁盘时间。

这个“宽限期”在哪里定义?它是否可见/可调(可能通过 /sys)?

linux storage ionice performance-tuning

5
推荐指数
1
解决办法
899
查看次数