巧用iotop分析Linux写入性能问题

日期: 2010-03-22 作者:Sander van Vugt翻译:唐琼瑶 来源:TechTarget中国 英文

服务器常见性能问题在于写入数据。当服务器写入太多数据时,存储分航道就会应接不暇。但是很难找出性能问题,因此本文将介绍如何分析Linux服务器上的性能问题。   与写入性能相关的问题通常隐藏在其他参数背后。

不过在所有情况下,top命令是开始找寻问题的起点。CPU行里的wa参数显示了你的系统等待I/O通道的时间数量。一般来说,这预示了一个缓慢的存储通道。   在wa参数里的值很高意味着存储通道很拥挤。

  只查看top是不够的。我们来看个小测试。在测试里,我们已将目前的内存状态写入磁盘,使用的是dd if=/dev/kcore of=/kcore.img bs=4096。在一台4GB的机器上,这是……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

服务器常见性能问题在于写入数据。当服务器写入太多数据时,存储分航道就会应接不暇。但是很难找出性能问题,因此本文将介绍如何分析Linux服务器上的性能问题。

  与写入性能相关的问题通常隐藏在其他参数背后。不过在所有情况下,top命令是开始找寻问题的起点。CPU行里的wa参数显示了你的系统等待I/O通道的时间数量。一般来说,这预示了一个缓慢的存储通道。

Linux

  在wa参数里的值很高意味着存储通道很拥挤。

  只查看top是不够的。我们来看个小测试。在测试里,我们已将目前的内存状态写入磁盘,使用的是dd if=/dev/kcore of=/kcore.img bs=4096。在一台4GB的机器上,这是个很不轻松的活。当执行这项任务时,其他每样事都运行得很慢,这说明存在性能问题。

  但是,top的问题在于不容易看见写入性能问题。它完全取决于你拥有的CPU核心数量。在16核的服务器上,写入问题可能要求所有CPU围绕着一个CPU转。你可能在一般的top视图上看不见这种情况,因为提供给你的是所有CPU在一起的平均数。因此在被写入完全占领的一个CPU核心上,你在top的wa参数里看不见大于6%的利用率。要获得更多信息,首先要做的是按下top接口里的1键,会显示每个CPU核心。在本文的测试系统中,只有两个核心,所以结果不是很意外。但是,在多个核心系统上,所显示的不同非常重要。

iotop

  在top里,按下1查看每个CPU核心的细节。

  因此,如果16个核心中只有一个非常繁忙,等待缓慢的存储通道,那么剩余的15个核心不能工作,对吗?答案通常是“对”。如果你只有一个存储通道,那么所有CPU的需求都会通过此通道。如果一个CPU异常繁忙,等待存储通道,那么其他核心就不能从此通道得到提示反应。因此看起来可以从top窗口找到性能根源,实则困难。

  幸好有iotop工具,它能提供与I/O相关的最活动进程的信息,许多Linux版本在默认下都没有安装iotop,因此确定你进行了手动安装,可以使用你Linux版本的元数据包处理程序(例如,如果使用SUSE,就用zypper安装iotop)。iotop好的地方在于为你显示与I/O相关活动频繁的进程,还有产生I/O的数量。如果你将这个进程所产生的I/O负载与存储通道的容量进行比较,你会立即明白如果你有一个存储问题,就是这个问题了。然后你可以修复这个问题。

iotop

  有了iotop,你能看见哪个进程占用了的资源。

相关推荐