Questions tagged «io»

I / O是输入/输出的缩写,是指在一个系统或组件与另一个系统或组件之间传递信息的机制或过程。

3
tar到管道,但将-v详细输出与STDERR分开
普通的tar命令 tar cvf foo.tar ./foo >foo.out 2>foo.err 具有三个输出IO流 将数据存档到foo.tar 文件名列表到STDOUT(重定向到foo.out) 错误消息到STDERR(重定向到foo.err) 然后,我可以检查foo.err中是否有错误消息,而不必阅读文件名列表。 如果我想对存档数据做一些事情(通过netcat或特殊的压缩程序通过管道传输),则可以使用tar的 -f -选项 tar cvf - ./foo 2>foo.err | squish > foo.tar.S 但是现在我的文件名列表和我的错误消息混在一起了,因为tar的-v输出显然无法转到STDOUT(这是存档数据流的地方),因此tar巧妙地将其写入了STDERR。 使用Korn Shell,有一种方法可以构造一个命令,该命令将存档流传输到另一个命令,但仍然捕获-v输出与任何错误消息。
12 tar  ksh  io 

2
Linux中大量无法预测的I / O性能下降
我使用Debian测试大约6年没有任何问题(我只是定期对其进行更新),但是最近它开始显示出一种随机行为,可以概括为“低I / O性能,一直持续到重启”。 问题是,突然所有磁盘的读写速度降低到〜5MB / sec,从而导致连续的读写操作。由于速率如此之低,因此磁盘不会受到机械挑战或压力,但是一切都会变慢,直到我重新启动为止。 计算机的I / O子系统由一个OCZ Vertex 3 SSD和两个WD Caviar Black HDD组成。SSD包含操作系统的大量读取数据,而HDD上的分区保留了其余部分。 为了诊断问题,我尝试了以下失败的尝试: top 在CPU和I / O使用率方面均未显示任何失控活动。 hdparm返回磁盘的正常性能等级(-t虽然我只检查了)。 smartctl不会在磁盘上显示任何性能问题。长时间的测试表明,这些磁盘与新磁盘一样好。 系统具有Z77芯片组,16GB RAM和Intel i7 3770K CPU,并且统计数据没有显示RAM,I / O或CPU饱和的迹象,但是我没有调试此类问题的经验(尤其是在内核空间中)。任何帮助将不胜感激。 更新1: 作为预防措施,我在每个分区上都运行(强制)fsck。所有的FS都是干净的。 偶然地,我发现一个BIOS升级是在一个月前发布并应用的。 没有分区填充超过50%。 更新2: 问题没有在两天内出现。无论是fsck或BIOS更新清洗系统中的一些堵塞。我仍在监视该问题,并将通过事后答复结束该问题。 更新3: 问题刚刚浮出水面,我做了更多的挖掘工作。请查看答案。
11 linux  performance  io 

2
iotop,但对于特定磁盘?
是否有类似的工具,iotop但是可以监视特定卷上的IO?(或者也许我错过了一种过滤方法iotop?)如果没有,可以通过(例如)获得任何信息/proc吗?(dstat等仅显示每卷所有进程的聚合活动,而我有兴趣查看每个进程的贡献量。)
11 linux  io  top  proc 


3
是什么使rsync的一侧如此繁忙?
我的局域网上有一台Debian机器,作为其他机器的备份服务器。它在LVM和btrfs上将四个HDD组合成一个软件RAID 5 md设备。备份是使用rsync进行的,大型文件系统需要一个多小时。很长时间以来,我一直认为我对此无能为力。 但是,最近,我注意到硬盘的活动在传输的两端都非常不同。尽管运行Gentoo并主要使用ext4的发送方几乎没有任何磁盘IO,但是接收方一直很忙。由于大多数数据在两次传输之间不会改变,因此我认为元数据读取应构成大部分数据。但是,如果在btrfs中读取inode而不是在ext4中进行如此大的工作,我会感到非常惊讶。 iotop 经确认,接收方的磁盘读取速度约为1-4 MB / s,而发送方偶尔只有0.5 MB / s的突发速度。 我的问题是,谁能解释这是怎么回事?最好带有一些指示,如果可能的话,如何解决该问题。 也许有一些我可以使用的btrfs调整标志,或者类似的东西。我需要备份服务器上具有快照功能的FS,而我尝试使用FreeBSD和ZFS会很快导致FS不一致,因此目前我看不到btrfs的替代方案。因此,告诉我使用ext4或zfs的答案可能会收到投票,但没有复选标记。 根据cjm的要求,正在使用Rsync选项: --rsync-path='rsync --fake-super' --archive # -rlptgoD --hard-links # detect and preserve these --acls --xattrs --sparse --noatime # based on patch from samba #7249c1 --delete --delete-delay --fuzzy --human-readable # size suffixes, base 1000 --stats 以及一堆-f删除某些文件的规则。 btrfs的安装选项报告mount为 rw,nosuid,noexec,noatime,nospace_cache …
11 performance  rsync  io  mdadm  btrfs 



2
高IO等待-如何确定根本原因?
我在两个专用服务器上有一个MySQL实例。一个用于生产,另一个用于测试平台。 这两个服务器几乎相同,唯一的区别是RAID控制器和虚拟卷(HD相同)。在生产环境中,有专用的硬件RAID控制器和RAID 10卷。另一方面,RAID控制器似乎是软件(Lenovo ThinkServer RAID 110i),并且卷是RAID 5。 我们注意到在MySQL提交期间,我们的iowait很高: while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done root 26661 0.0 0.0 0 0 ? D Jun09 5:41 \_ [jbd2/dm-14-8] root 26691 0.0 0.0 0 0 ? D Jun09 0:57 \_ [jbd2/dm-10-8] Thu Jun 18 13:49:37 …

2
减少Ubuntu中的坏块重试/等待时间
如何减少IO等待时间和重试时间,以使OS不会连续尝试写入发生故障的驱动器? 我有一个用于制作演示内容副本的系统,该演示内容借给客户使用常规SATA台式机硬盘驱动器。我们通过SAS一次连接许多驱动器,并使用脚本将内容复制到它们。 由于驱动器是借出的,有时有些驱动器会损坏,但我不知道它们已损坏,因此下次在复制操作中重新使用该驱动器时,它会减慢其他驱动器的速度,因为系统将IO重试到该驱动器。有时可能要花几个小时才能发现并损坏驱动器。卸下驱动器后,其余驱动器将以正常速度开始写入。 我不在乎恢复损坏的驱动器。我只需要清除它们,以免它们拖慢其他一切的速度。 我也在研究badblocks和smartmontools,并考虑在开始编写之前在驱动器上编写预检查。 操作系统:Ubuntu Linux(12.04 lts)


1
为什么后台进程有时会自发停止?
有时,bg当我在bash中使用进程为背景设置一段时间后,当我在同一shell中按Enter键以重新显示提示时(只是在显示了后台进程的某些输出时检查我是否仍在bash中),后台进程似乎自发停止。 如果我bg再次做同样的问题。 解决它的唯一方法似乎是fg。 为什么会这样?

3
如何监视特定目录中的磁盘I / O?
我有一些名称已知的进程,它们全部写入单个目录中的文件。我想记录一段时间内(而不只是文件访问)磁盘块读写次数,以测试参数更改是否会显着减少I / O量。我目前正在使用iostat -d -p,但仅限于整个分区。

2
mkfifo-磁盘I / O是否实际发生?
我有2个应用程序: 生产者(N个实例) 消费者(1个实例) 我目前从生产者那里写出中间结果,然后消费者从磁盘读取这些文件并产生最终结果。 我想通过将生产者的输出直接“流化”到消费者来最小化此I / O。 我碰到命名管道(mkfifo)和随后的例子在这里。这看起来不错,但我无法确定这是如何实现的?FIFO队列是否只是通过文件进行缓冲?如果是这样,那可能对我没有帮助。我希望内容在不使用磁盘的情况下完全“通过内存”传输。也许跨进程不可能吗?
10 io  fifo 

3
每个PID的硬盘I / O
有什么方法可以查看每个pid /进程的磁盘I / O吗?Monitorix向我显示以下内容,如果我错了,请纠正我,但是看来硬盘驱动器正在减慢整个系统的速度: 更新1 Atop似乎对所有内容都给出了很好的概述。 我可能会问你,我标记为红色的等待意味着什么? 那是来自磁盘I / O的等待吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.