我在一台机器(opensolaris)上运行netio( http://freshmeat.net/projects/netio/ )并联系两台不同的Linux机器(2.6.18-128.el5),机器A和机器B.机器A的networking吞吐量为10MB /秒,netio和B机器的每秒100MB /秒。 在公开的solaris上,我跟踪了连接,所有的交互看起来都是一样的 – 在接收和发送相同的窗口大小,相同的窗口大小,相同的拥塞窗口大小,但是慢速的机器每2或3次发送ACK,机器每12个接收一个ACK。 所有三台机器都在同一台交换机上。 这里是Dtrace输出:快速机器: 三angular洲发送recd (us)字节字节swnd snd_ws rwnd rcv_ws cwnd ssthresh 122 1448 \ 195200 7 131768 2 128872 1073725440 37 1448 \ 195200 7 131768 2 128872 1073725440 20 1448 \ 195200 7 131768 2 128872 1073725440 18 1448 \ 195200 7 131768 2 128872 1073725440 18 1448 […]
我在一个ubuntu盒子(natty)上的postgres 8.4上运行一些沉重的SQL脚本做一些性能基准testing。 我正在经历一些相当不稳定的性能,尽pipe我应该是机器上唯一运行的(相同的数据可能在20米,然后40米,无特定原因)。 所以,记住我的远程DBA培训,我决定我应该刷新postgrescaching,使用sudo /etc/init.d/postgresql restart ,但它仍然摇摇欲坠! 我的问题:也许我错过了我的磁盘/操作系统中的一些caching? 我正在使用netapp设备作为我的存储空间。 我在正确的轨道上? 在开始调整之前,我是否还想确保获得可重复的性能?
我有一个在Windows Server 2008 R2 SP1的Hyper-V下运行的Ubuntu 11.10 x64 guest虚拟机,根据这些指示进行configuration,包括安装hyper-v模块。 networking速度很好(500 MB / s,用iperf测量),但磁盘访问是可笑的(3 MB /秒,用dd测量)。 什么可能导致这个问题? 我的其他Ubuntu虚拟机也有同样的问题,我的Windows虚拟机没有这个问题。
最近我们的一台服务器耗尽了内存,崩溃了。 在回顾了munin图之后,似乎在崩溃之前达到峰值的唯一指标(内存使用除外)就是MySQL throughput 。 但是我们期待看到MySQL queries数量没有发生相应的增加: 另外从下图中可以看出, MySQL throughput达到了一个exception高的值,远远没有达到任何其他值: 我们完全处于黑暗中,应该如何进行,因此下面的问题是: 如何对MySQL吞吐量增加进行“事后调查”?
我使用PostgreSQL,它用于报告。 目前configuration的方式如下: 有一个复杂的查询返回报表数据,如下所示: select Column1 as Name1, Column2 as Name2 from sometable tbl inner join … where … and … and $1 <= somedate and $2 >= somedate group by … order by …; 有一个利用这个查询的函数,并且是这样定义的 CREATE OR REPLACE FUNCTION GetMyReport(IN fromdate timestamp without time zone, IN todate timestamp without time zone) RETURNS TABLE(Name1 character varying, […]
是否可以为I / O操作设置任意延迟? 我想了解iowait和磁盘%util如何影响性能。 有很多工具来强调磁盘(bonnie ++等),但我正在寻找一种方法来引入像tc(stream量控制)工具为networking所做的延迟。 可以使用hdparm工具禁用某些优化,例如设置AAM以静默或禁用DMA并切换到PIO模式 – 这只是间接减lessI / O的方式。
我有一个服务器系统运行Ubuntu 12.10连接12个磁盘。 我正在使用NFSv4在我的10千兆networking上共享所有这些磁盘。 但是,与我能够在本地获得的性能相比,我的NFS性能普遍较差。 我在研究糟糕的NFS性能时遇到的一般解决scheme是在服务器的exports文件中使用async选项,而不是使用sync。 但是,这根本不是我的目的。 我知道这会引起一场表演,但我不会期望我能看到。 我发现我在NFS客户端上主动使用的磁盘越多,每个磁盘的吞吐量就越差。 例如,如果我只使用1个磁盘,则可以以60MB / s的速度写入数据。 但是,如果我主动使用全部12个磁盘,则每个磁盘只能以12MB / s的速度写入。 等价的本地testing可以产生每个磁盘200MB / s没有问题。 是否有可能做一些调整来优化多个磁盘的NFS性能? 在服务器正在被使用的时候,CPU和内存似乎都没有被使用。
我正在监视在vSphere 5.1上运行的Windows Server 2008 R2 SP1虚拟机的CPU瓶颈。 我正在使用性能监视器并configuration了一些计数器。 其中两个是处理器\处理器时间百分比和虚拟机处理器\处理器时间百分比,后者由VMware提供,如果您安装了VM Tools。 我看到这两个计数器报告的CPU时间差别很大。 我认为虚拟机处理器\处理器时间将会提供更多的相关数据,因为它向我显示了虚拟机pipe理程序视图中的使用情况,以及虚拟机使用了多less分配给它的内容。 我有一个问题是知道这个柜台的最大价值。 到目前为止,它已经向我显示了250%的上升。 我认为这是因为它给每个vCPU(vCore?)100%。 但我仍然无法弄清楚最大的应该是什么。 虚拟机向我展示了2个Xeon E5-2680 CPU,每个4个核心,4个逻辑处理器。 这是否意味着VM处理器\处理器时间(_Total)的最大值应该是800%? 我曾尝试添加所有实例,而不是_Total这个计数器,希望它会告诉我有多less个核心或逻辑处理器,它独立监测,但没有奏效。 您只能添加_Total。
我正在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 […]
可以使用tac命令(反转的cat )向后读取文件,就像cat从头开始读取文件一样。 我想知道,这是多高效。 它是否必须从头开始读取整个文件,然后在内存缓冲区达到最后时才反转? 我打算把它用于一些经常被称为监视脚本,它需要检查数百兆字节大小的文件的最后n行。 不过,我不希望这样做会导致沉重的I / O负载,或者通过反复读取文件(大约每分钟一次)读取其他无用的信息来填充caching空间。 任何人都可以看到这个命令的效率吗?