Articles of io

最大化虚拟文件系统的吞吐量

我一直在使用QEMU系统来构build软件。 我遇到的问题是,系统似乎受到非常慢的磁盘访问的影响。 这不一定是一个问题,因为这不是一个真正的时间密集型操作,但我希望尽可能快地工作。 以下是我尝试加速I / O所做的一切: KVM已启用。 就仿真的处理器速度而言,这是夜晚和白天之间的差异。 Qemu通过转发的SSH端口以-display none模式运行,因此没有模拟的SDL显示屏正在吃掉CPU周期。 虚拟硬盘驱动器使用-o noatime,nodiratime安装-o noatime,nodiratime以减less不必要的写入。 硬盘映像(分别为8和12演示)采用qcow2格式,使用-o cluster_size=2M创build(这是最大默认值是65,536字节)。 请在手册页中说 :“较小的簇大小可以改善映像文件的大小,而较大的簇大小通常可以提供更好的性能 。” 文件系统是带有-o extents选项的EXT4, 手册页声称“这是一种更加高效的编码,可加快文件系统的访问速度,特别是对于大文件 。” 虚拟磁盘映像中没有存储任何快照。 我不确定这是否会减慢他们的速度,但似乎是这样; 在logging快照时,实际的文件图像大小不会增长 ,所以我猜测数据是以一种复杂的方式存储的,这样快照和“工作”驱动器将共享一个群集,直到它被更改,然后整个2MB的簇被复制到新的空间,然后数据被改变。 巧妙但是完全没有效率 我的问题是,是否有什么我失踪,以提高硬盘的效率,或过去的工作,以实现接近原生的I / O速度。 以下是我观察到的其他一些事情: 当我使用-o sync安装虚拟主机的硬盘驱动器时,系统变慢。 这对我来说似乎是反直觉的,因为写入到虚拟硬盘驱动器,这是我的实际硬盘驱动器上的一个文件, 已写入之前已经caching在RAM中。 这基本上是对磁盘的双倍缓冲,使用两倍于RAM的RAM。 戏剧性的加速是非常奇怪的,因为做一个grep ^Dirty /proc/meminfo从来没有说超过1 MB的东西。 除非将“swappiness”( /proc/sys/vm/swappiness )设置为90或更高,否则虚拟机似乎拒绝使用其交换。 虽然我同意这在磁盘I / O方面可能是一件好事,但它使得构build过程与使用RAM的fs缓冲“战斗”。 是的,我确定它有足够的RAM。

经常访问的文件和I / O使用情况

我很好奇,从性能的angular度来看,将所有文件存储在一个目录中与将每个文件放在单独的目录中有什么优势? 我不关心组织。 此外,这是假设文件将经常访问 – 所以I / O使用率会很高。 不涉及目录列表,文件将被绝对path拉动。 系统环境是Linux,CentOS 5.3。

Flush-0:n进程导致了巨大的瓶颈

我有一个通过NFS共享文件的LAMP集群,偶尔其中一个会在神秘的刷新过程开始出现时被攻击一段时间。 谁能帮我? 解决这个问题的唯一方法就是重启 – 杀死进程只会产生新进程。 top – 19:43:43 up 104 days, 4:52, 1 user, load average: 27.15, 56.72, 33.31 Tasks: 301 total, 9 running, 292 sleeping, 0 stopped, 0 zombie Cpu(s): 15.6%us, 77.0%sy, 0.0%ni, 4.2%id, 2.0%wa, 0.0%hi, 1.2%si, 0.0%st Mem: 8049708k total, 7060492k used, 989216k free, 157156k buffers Swap: 4194296k total, 483228k used, 3711068k free, […]

Amazon RDS:什么是IO请求?

我有一个RDS实例花费我很多钱。 从我在亚马逊的帐户活动中,我看到在过去7天里,该实例已经有大约8亿个IO请求。 为了给你一点点的看法,我的应用程序每天只能获得大约6000次的独特访问,并且不会创build那么多的数据库连接。 那么,IO请求究竟是什么呢?为什么这个数字会非常高呢? 如果有必要,我愿意尽我所能去降低成本,但我不确定发生了什么事情。 我会很感激你的想法。

find瓶颈:Windows XP上的磁盘I / O

我们的开发箱之一已经出现了一个问题,其中性能偶尔会在地板上下降。 发生这种情况时,您可以听到硬盘驱动器抖动,但我不知道是什么原因造成的。 这种情况发生在高磁盘访问期间(读/写多GB文件),但不是每一次,也不是整个磁盘访问期间。 这些文件也被严格地进行碎片整理,以防止似乎正在发生的那种“寻找颠簸”。 我怀疑问题在于系统的防病毒或者我不知道的一些磁盘索引服务(AFAIK,没有任何运行,但是…)。 不幸的是,我的绩效监督员福非常非常弱(好吧,几乎不存在),我不知道如何确认/反驳我的怀疑或找出真正的罪魁祸首。 更新: Process Explorerfind了我的罪魁祸首 – Java快速入门和Windowssearch服务。 closures前者对绩效有明显的影响,closures后者有巨大的影响(尽pipe没有任何档案可供使用)。 两者的执行速度都是其他进程的5-20倍。 感谢所有的帮助!

有没有办法在Linux上删除100GB的文件,而不会颠簸IO /负载?

我有一个巨大的日志文件,我需要在生产Web服务器上删除。 我担心如果我在Linux上运行它,系统将会被抓取。 任何精彩的想法? 更新: 文件系统:ext3 分区:/ var(主要是日志和MySQL数据) 日志文件不再被写入。 (没有额外的数据被追加) Web服务器是LAMP(大量的IO)

高IO负载导致rrdgraph生成失败

我们有一个4核心的CPU生产系统,它有很多的cronjobs,拥有恒定的proc队列和一般的负载约1.5。 在晚上,我们用postgres做一些IO密集的东西。 我们生成一个显示负载/内存使用情况(rrd-updates.sh)的图表,有时在高IO负载情况下“失败”。 这几乎每天都在发生,但并不是每个高IO情况都会发生。 我的“正常”解决scheme将是好的和离子postgres的东西,并增加graphics生成的prio。 但是,这仍然失败。 图生成是与鸡群的半线程certificate。 我logging了执行时间,对于graphics生成,在高IO负载期间高达5分钟,似乎导致长达4分钟的丢失图。 时间框架与postgres活动完全匹配(这有时也会发生在白天,虽然不是那么经常),离开postgres(c1 N6 graph_cron vs C2 N3 postgres),在postgres之上(-5 graph_cron vs 10 postgres )没有解决这个问题。 假设没有收集数据,额外的问题是离子/好点子仍然不工作。 即使有90%的IOwait和100的负载,我仍然可以使用数据生成命令,而不会超过5秒的延迟(至less在testing中)。 可悲的是我还没有能够在testing中重现这一点(只有虚拟化的开发系统) 版本: 内核2.6.32-5-686-bigmem Debian Squeeze rrdtool 1.4.3硬件:硬件RAID1中带有LVM的SAS 15K RPM HDD mount选项: ext3和rw,errors = remount-ro 调度程序: CFQ crontab中: * * * * * root flock -n /var/lock/rrd-updates.sh nice -n-1 ionice -c1 -n7 /opt/bin/rrd-updates.sh Oetiker在github上为rrdcache似乎有一个可能相关的BUG: […]

使用临时文件vspipe道的优点和缺点

假设我有一个名为jobs.csv的文件,我想要得到Foo完成的前5万个工作 我可以做: # cat jobs.csv | sort -u | head -n 50000 > /tmp/jobs.csv # cat /tmp/jobs.csv | while read line; do Foo –job=$line; done 要么 # cat jobs.csv | sort -u | head -n 50000 | while read line; do Foo –job=$line; done 从系统的IO /内存效率来看,哪一个更好? 或者甚至更好,可以为此提出一个更好的解决scheme?

“高”IO率是否健康?

我在我的Linode上做了很多工作,目前托pipe一个网站,但是每隔一段时间(通常是每两个月左右一次),我会收到有关IO速率过高的警告(通常高于6000) 。 我得到的最后一个说:“你的Linode …在过去的2小时内已经超过了磁盘io速率的通知阈值(1000),平均值为6557.69”。 我有点担心,但是不知道该怎么想。 它健康吗? 看看我的服务器图,我从来没有看到任何特别的东西,下面是我的低stream量站点的两个“正常”的日子(请注意,两个主要的尖峰是我rsyncing备份服务器)。 还要注意的是,即使我当天两次rsynced,我没有得到警告通过这些。 图表如下: 我试过看iotop但每当我看看一切看起来很健康。 有任何想法吗?

我可以在Synology上运行iostat吗?

我有一个Synology RS812RP +,我正在使用一些部门testing。 我已经塞满了一堆SSD磁盘,我很好奇监控磁盘IO。 iostat没有预先安装在Synology上,也没有工具来构build它。 有没有人有任何关于让iostat在这个环境中运行的build议?