小编P.P*_*ter的帖子

超时,打破管道和厕所

我有一个想法来快速对一些解压程序进行基准测试。例如,对于 gz,我会运行以下命令:

timeout 10 zcat foo.gz | wc -c
Run Code Online (Sandbox Code Playgroud)

这将测量解压缩器在 10 秒内可以提取的数据量。

唯一的问题是,它不起作用:因为 zcat 被杀死,wc 也被杀死,所以我没有得到字节数,只是一条Terminated消息。

所以,问题是:有没有办法从 wc 获取计数,或者通过以某种方式阻塞信号,或者使用替代方法而不是 wc 来打印结果,即使它得到一个 term 信号。


当然,还有其他选择:

  1. 写入临时文件:
    timeout 10 zcat foo.gz > /dev/shm/x ; du -sb /dev/shm/x ; rm -r /dev/shm/x 这样做的问题是使用了大量内存,并且可能会有一些性能损失。

  2. 使用 ulimit 代替:
    ulimit -t 10; zcat foo.gz | wc -c
    这也有效,但仅测量 CPU 时间,因此不会测量由于 I/O 导致的减速(例如,因为压缩更糟,需要从磁盘读取更多字节)。

  3. 制作较小的测试文件:
    嗯,这当然可以工作,并且可能是最好的解决方案。但是,这会创建大量临时文件。

pipe timeout

20
推荐指数
1
解决办法
1389
查看次数

将 linux md raid 写入日志添加到现有阵列

我有一个带有相当大磁盘的 raid5 阵列,因此在断电的情况下重建非常慢。值得庆幸的是,有--write-journallinux md raid 选项。该名男子页列出了--write-journal在选项对于创建,建立或发展:部分,所以我认为它应该在成长模式下工作,并试图在飞行中添加的写日记:

# mdadm --grow /dev/md1 --write-journal /dev/ssd/md1-journal
mdadm: :option --write-journal not valid in grow mode
Run Code Online (Sandbox Code Playgroud)

有谁知道我是否可以向现有数组添加写日志?如果是这样,如何?

linux software-raid mdadm raid5

4
推荐指数
1
解决办法
1983
查看次数

标签 统计

linux ×1

mdadm ×1

pipe ×1

raid5 ×1

software-raid ×1

timeout ×1