Questions tagged «io»

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

1
iotop如何计算相对I / O活动?
我在工作站上运行了一些繁重的I / O进程,最近安装iotop了它们来监视它们。这是最近的屏幕截图: 我对IO>专栏中的读数有些困惑。这表明我的磁盘正在以大约1500%的I / O活动运行。那有可能吗? 如何从这些读数中找出磁盘的最大可能I / O?iotop如何计算相对的I / O活动?
16 performance  io  disk  top 

1
如何跟踪Linux和其他* nix OS中的IO使用情况?
有时,系统上的某些东西开始锤打磁盘。我想记录数据,以便让我知道每个进程的I / O使用情况,然后我可以稍后再查看它,看看会继续这样做。我应该如何解决这个问题?对于任意块设备解决此问题的加分点。
15 performance  io 

4
通过将字符串放入tty来构建命令
我设法做到了 echo -n“ 命令 ”> / dev / tty1 出现字母,并且光标移动,但是它们是“鬼”-如果您单击Enter,则什么也不会发生(它们不在stdin中)。 编辑: 在下面的屏幕截图的中间,您会看到为什么我会看到此用法。(带有红色标题的行,位于带有黄色标题的行的正下方。)到现在为止,您实际上并不是在“编辑”注释文本。只是要求您编写一个新文本,它将替换您(不是真的)正在编辑的笔记的文本。因此,我认为可以通过简单地将旧文本粘贴到tty中来解决:如果用户按下回车键,则不会进行任何修改。(该程序在Perl / MySQL中,但是我认为寻求一个通用的解决方案比“在Perl中如何做到”更有趣。) 编辑2: 这是Perl代码,它使用下面的C代码(完全按预期工作)以及一个新的屏幕快照–希望这可以澄清一切:)再次,请看屏幕快照的中间,进行编辑便笺文本-这次是旧文本,例如,如果您只想修正输入错误,则无需重新输入整个便笺文本。 my $edit_note_text = $edit_note_data[2]; print BOLD, RED, " new text: ", RESET; system("writevt /dev/tty \"$edit_note_text\""); my $new_text = <$in>; $new_text = fix_input($new_text); my $set_text = "UPDATE notes SET note = \"$new_text\" WHERE id = …
15 tty  io  stdin 

2
监控NVMe驱动器的温度/ IO
有没有一种方法可以监视温度或对NVMe驱动器(在这种情况下为Intel 750)进行读写。hdparm,udisksctl,smartctl,和hddtemp似乎都缺乏这方面的能力,谷歌搜索已经无果而终。 出于好奇,这是我使用NVMe作为系统驱动器运行Fedora 23(工作站)时遇到的唯一困难。


1
无法关闭Luks分区
为了备份,我“快照”了一个LVM分区。该分区已加密,因此我已打开此Luks分区(快照)以进行备份。 问题是我忘记删除快照,因此快照使用率达到了100%。 当我尝试删除快照时: lvremove /dev/mapper/vgx-LogVolDBSnapshot /dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 375809572864: Input/output error /dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 375809630208: Input/output error /dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 0: Input/output error /dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 4096: Input/output error /dev/mapper/SnapshotDecrypted: …
13 partition  lvm  io  disk  cryptsetup 


2
基于权重的VM块IO控制
我使用KVM管理我的虚拟机。我试图限制为VM提供的资源。我可以使用libvirt / cgroups限制为VM分配的CPU和内存。现在,我想通过应用一些权重来控制为每个VM分配的磁盘时间。我从cgroups看了blkio控制。由于VM只是一个Linux进程,因此我将能够使用cgroups,但是我不确定它是否也适用于异步IO。如果没有,有人可以提出一个好的替代解决方案吗?

3
关于SSD nukes系统性能的大量写入活动
我注意到当我做大量的写应用程序时,整个系统会变慢。为了进一步测试,我运行了这个(相对)低CPU高磁盘活动: john -incremental > file_on_SSD 这每秒将数万个字符串抽出到我的系统磁盘上的文件中。 执行此操作时,鼠标会滞后,TTY变得无响应,应用程序“消失”,并且通常整个计算机都无法使用。当我最终可以使用Control + C时john,系统将在几秒钟后恢复到完整的状态。 这是一个极端的例子,但是我遇到了类似的问题,即写入强度较低的活动(例如从快速的源中复制大文件或转码)的活动较少。 我的主操作系统磁盘是带有EXT4 的相当快的SSD(OCZ Agility 60GB)。如果将johnEXT4的输出写入机械磁盘,尽管速度慢得多(SSD每秒约42,000个字,机械速度8,000 w / s),但我不会遇到同样的速度下降。吞吐量可能是相关的。机械磁盘也与系统无关。只是数据而已。 而且我正在使用内核2.6.35-2,但是我注意到了这个问题,因为当我大概在使用.31或类似的东西时,我得到了这个SSD。 那么,是什么原因导致经济放缓?EXT4问题?内核问题?SSD问题?上述所有的?还有吗 如果您认为我需要进行其他测试,只需在注释中告诉我该怎么做,然后将结果添加到问题中即可。
13 kernel  performance  io  ssd 

5
导致I / O错误的特殊文件
如果要读取的基本SQLite DB文件失败(导致I / O错误),我想自动测试某个软件是否响应预期。确实是几天前在客户那里发生的。我们手动修复了它,但是现在我想创建自动代码来修复它,并且需要访问损坏的文件来进行测试。 由于Unix中的所有内容都是一个文件,因此我怀疑可能存在一个特殊文件,当尝试读取该文件时总是会导致I / O错误(例如,在/ dev中)。 一些类似的文件(imo)将是: /dev/full 如果您尝试写入,则始终显示“设备上没有剩余空间” /dev/null 和 /dev/zero 所以我认为只需要有一个这样的文件(但是还没有找到)。 有谁知道这样的文件或任何其他方法可以让我获得所需的结果(故意有问题的分区图像,使用LD_PRELOAD封装open()的包装程序,等等)? 去这里最好的方法是什么?
13 linux  devices  io  testing 

5
实用程序来缓冲管道中无限数量的数据吗?
有没有可以贴在管道中的实用程序来降低读写速度? $ producer | buf | consumer 基本上,我希望有一个实用程序buf能够尽可能快地读取其输入,并将其存储在内存中,以便在尽可能快地运行consumer时花费它的美好时光producer。
13 pipe  io  buffer 

2
段故障处理程序的管道输出
我有一个脚本,该脚本调用ttf2afm有时会出现段错误而有时没有的程序(特别是tetex 3.0的一部分)。我需要的信息总是在段错误之前被打印出来,但是我很难阻止管道重定向失败,并且在程序失败时不向管道输出任何内容。 我尝试过通过FIFO进行重定向,true最后用a括住该过程,从shell函数执行并封装在中sh -c,但是脚本似乎从未允许该过程输出任何东西,无论是重定向还是以其他方式输出-甚至不输出到stderr。 我知道它能够输出,因为它完全有能力从命令行提供它,但是出于某种原因却不能从脚本中提供。 我的问题是,脚本是否可以忽略程序段错误并给我输出的事实? 我正在运行BASH 4.1.10(2)-发行版。

3
如何在bash脚本中保存/ dev / stdout目标位置?
我有一个特定的bash脚本,它想要/dev/stdout在将第一个文件描述符替换为其他位置之前保留原始位置。 所以,自然地,我写了类似 old_stdout=$(readlink -f /dev/stdout) 而且它没有用。我很快就知道问题出在哪里: test@ubuntu:~$ echo $(readlink -f /dev/stdout) /proc/5175/fd/pipe:[31764] test@ubuntu:~$ readlink -f /dev/stdout /dev/pts/18 显然,$()它在子外壳中运行,并通过管道传输到父外壳。 因此,问题是:是否存在一种可靠的方法(范围仅限于Linux发行版之间的可移植性),以便将/dev/stdout位置另存为bash脚本中的字符串?


1
测量程序的磁盘I / O使用率
time 如果您想弄清楚给定命令需要多少CPU时间,这是一个很棒的命令。 我正在寻找类似的东西,可以衡量该程序和任何子项的磁盘I / O。优选地,它应该区分已缓存(因此不会导致磁盘旋转)的I / O和未缓存的I / O。 所以我想做: iomeassure my_program my_args 并获得类似于以下内容的输出: Cached read: 10233303 Bytes Cached write: 33303 Bytes # This was probably a tmp file that was erased before making it to the disk Non-cached read: 200002020 Bytes Non-cached write: 202020 Bytes 我已经看过了vmstat,iostat和sar,但这些都不是在看一个单一的过程。相反,他们着眼于整个系统。 我已经看过了iotop,但是此刻只给了我一个视角。 -编辑- snap的答案似乎很接近。 …
12 io  time  measure 

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.