如何监视tmpfs分区的写入速度? 它不会出现在vmstat或iostat的输出中。 我正在运行几个大量写入tmpfs并有助于加载的python进程。 负载很高,但CPU,内存,磁盘IO等都是标称的。 负载似乎是间接地把这个沉重的tmpfs IO考虑在内。 我很想知道每个主机有写入速度的上限。 我运行盲目的任何帮助,将不胜感激。
我有Ubuntu 12.04主机运行Linux 3.2.0-24-generic,libvirt 0.9.8-2ubuntu17,qemu-kvm 1.0 + noroms-0ubuntu13。 主持人使用电梯=截止时间,客人使用电梯= noop。 所有KVM guest虚拟机都使用virtio,no caching,io mode default和LVM逻辑卷作为存储。 我使用bonnie ++ 1.96来评估IO性能。 硬件: Supermicro X8SIL-F Intel(R)Core(TM)i7 CPU 870 4个金士顿4GiB DIMM DDR3同步1333 MHz(0.8 ns) 2 x WDC WD10EACS-00D(WD Caviar Green) 我使用wdidle3工具禁用了硬盘上的IntelliPark(8秒睡眠定时器)。 硬盘分区如下: 20 GB,用于主机根文件系统的md RAID-1 640 GB,采用md RAID-1,具有来宾文件系统的LVM 330 GB,采用md RAID-0,具有来宾文件系统的LVM 4 GB,交换主机 Fdisk输出: # fdisk -b 4096 /dev/sda Note: sector […]
是否可以为I / O操作设置任意延迟? 我想了解iowait和磁盘%util如何影响性能。 有很多工具来强调磁盘(bonnie ++等),但我正在寻找一种方法来引入像tc(stream量控制)工具为networking所做的延迟。 可以使用hdparm工具禁用某些优化,例如设置AAM以静默或禁用DMA并切换到PIO模式 – 这只是间接减lessI / O的方式。
我正在pipe理一个有一千个用户的大型LAMP服务器。 大约一个星期前,事情变得缓慢了,而且我看到IO延迟的唯一情况就大大增加了 。 用户体验缓慢的页面加载,并且当我想要保存文件时遇到挂起的秒钟。 操作系统是CloudLinux,内核2.6.32。 最重要的是CageFS和cPanel的完美结合。 硬件是IBM X3630 M3,在硬件RAID 5 +备用驱动器中有11个驱动器。 我做了很多实验。 首先,我运行iotop -oaP来查看IO带宽是多less。 所有在最高位置结束的进程都是正常的LAMP服务。 这些似乎没有做更多的IO比他们应该 – 虽然我不知道服务器上的理想或正常的压力。 可悲的是我无法从IO延迟正常的时候访问sysstat信息,只有munin图。 另一方面,CageF应限制所有用户的活动。 所以我开始想,磁盘得到很多的IOPS,他们无法处理。 专有的megacli实用程序说没有故障的RAIDarrays,没有重build正在进行或任何exception。 运行sar几个小时,我经历了超过5000的IOPS,但是当系统的IOPS低于1K时,挂起仍然存在,所以我猜磁盘是好的? 我已经尝试过审计框架和系统开发,但都没有用(前者挂在整个系统,我不能得到太多的统计数据,后者根本没有工作)。 我现在正在做的是通过几个testing来比较我的微型笔记本电脑的速度与服务器。 这就是我发现的,虽然我可以在3-5秒内用我的笔记本电脑(带有一个小的,滞后的硬盘)创build100K文件,但服务器在20-30秒内完成。 #!/bin/bash i=1 while (( $i < $1 )); do echo $i echo "foobartest" > tmp/iotest.$i (( i++ )) done 这可能是由于服务器每秒提供50-100个HTTP请求,但奇怪的是,如果我观察terminal中的运行数字,有时会挂起几秒钟,然后才能创build下一个文件。 我目前正在做的事情是使用strace -T并parsing输出,看看每个系统调用挂了多长时间(因为我不能使用stap )。 我发现的是开放的,写作和复制比别人花费更多的时间。 所有这三个都是正常的,因为我想创build许多文件的内容 – 所以我真的不知道我可以在哪里前进?! 统计数据: open […]
在一个正常的块设备上,你可以像这样改变I / O调度器: # cat /sys/block/hda/queue/scheduler noop anticipatory deadline [cfq] # echo anticipatory > /sys/block/hda/queue/scheduler # cat /sys/block/hda/queue/scheduler noop [anticipatory] deadline cfq 如何控制NFS卷的设置,或者我只需要在启动configuration中全局设置 elevator=noop 或类似?
可以使用tac命令(反转的cat )向后读取文件,就像cat从头开始读取文件一样。 我想知道,这是多高效。 它是否必须从头开始读取整个文件,然后在内存缓冲区达到最后时才反转? 我打算把它用于一些经常被称为监视脚本,它需要检查数百兆字节大小的文件的最后n行。 不过,我不希望这样做会导致沉重的I / O负载,或者通过反复读取文件(大约每分钟一次)读取其他无用的信息来填充caching空间。 任何人都可以看到这个命令的效率吗?
带有负载峰值的大型innodb数据库似乎在控制台中导致“任务挂起120秒”的随机崩溃。 在这些崩溃期间没有将日志写入系统。 innodb表是相当大的,存储20 +演出。 在Ubuntu 10.04上使用内核2.6.36和2.6.38-15 64位可能导致表碎片化,导致随机系统崩溃? 我们正在研究随机系统崩溃的问题,这些崩溃运行在“专用baremetal”vps托pipe服务器上托pipe的大型innodb表。 MySQL版本是5.1。 下面是结果:“SELECT data_length,index_length,(data_length + index_length)/ power(1024,3)GB FROM information_schema.tables WHERE ENGINE ='InnoDB'ORDER BY data_length + index_length DESC LIMIT 10;”: +————-+————–+——————-+ | data_length | index_length | GB | +————-+————–+——————-+ | 14758707200 | 17220501504 | 29.782958984375 | | 9456762880 | 16465543168 | 24.1420288085938 | | 16983785472 | 6954041344 | 22.2938385009766 […]
如何使用cgroups优先考虑LVM卷的I / O性能? 我知道我可以使用ionice在stream程级别进行更改,但我希望能够按LV执行此操作,而不是每个进程。
我试图辨别哪些进程在我的服务器磁盘上进行大量的读/写操作。 我知道我可以使用 iotop -ao 但是有没有办法让iotop的输出保存一段时间后再研究?
我们在我们的服务器上运行多个进程,这些进程大多是CPU密集型的,但也使用本地硬盘来读取数据。 我可以在这些盒子的TaskManager中查看CPU负载和内存使用情况,如何监视HDD IO? 我想弄清楚: 如果当前的负载以任何方式受到HDD的瓶颈 看看有多less这些进程我可以在没有瓶颈硬盘的情况下运行