Linux和高IO等待

Linux和高IO等待 当你看到你的电脑的CPU活动,其中一个参数是IOWAIT。此值显示的时间有多少你的CPU的废物,而它正在等待完整的I / O操作。这些措施包括磁盘读/写操作,网络,工控机等是这一行为的一个问题,如果有的话,是什么原因造成的,如何解决?其中一个受欢迎的Unix相关的论坛之一的“天才”写了一个: IOWAIT的“问题”是滑稽。这就像当人们抱怨Linux是“用我所有的记忆”。是啊,没有狗屎。你应该不高兴,如果你要复制的文件,你的电脑是/不是/ 100的%iowait。 在现实中,100的%iowait表明存在一个问题,在大多数情况下 - 这甚至可能导致数据丢失的大问题。本质上,存在某个系统中的瓶颈。也许你的一个磁盘正准备死;或者,也许,网卡固件有问题,最新的内核升级安装。故障排除过程开始于潜在的更严重的可能性:坏盘。 采取快速浏览一下在/ etc /邮件,在/ etc / dmesg的,/etc/boot.log和任何其他系统的日志文件。您正在寻找的磁盘I / O错误,失败的读/写操作,坏扇区 - 任何指示硬件问题的磁盘。如果你没有找到任何东西,找IRQ和磁盘控制器错误。还要查看是否有内存错误和内核崩溃。高IOWAIT的三个最可能的罪魁祸首是:坏盘,出现故障的内存和网络问题。 如果你仍然可以看到相关的什么都没有,现在是时候来测试你的系统。如果可能的话,打完所有用户关闭对话框,关闭Web服务器,数据库和其他用户应用程序。登录通过命令行和停止XDM。 开三台shell窗口:运行“顶”于一身,在第三个发现在/ etc型的F -print“确保你可以看到所有三个窗口同时”的iostat -x 1中的其他与?“。这是一个简单的测试,应该产生在系统磁盘上的一些I / O活动。在其他磁盘上重复此过程。如果你看到IOWAIT徘徊接近100%,机会是你有问题,但我们不知道它是什么还不过,现在我们知道,网络可能不是原因。 deathstar:/#iostat的-x 1 Linux的2.6.5-7.201默认(deathstar)08-12-20 AVG-CPU:%%的用户不错的SYS%的%iowait%闲置 2.83 0.42 1.45 9.11 86.20 设备:rrqm /秒wrqm / SR / SW / S RSEC / s的无线安全/秒RKB / s的WKB / s的avgrq-SZ avgqu-SZ的await svctm的%UTIL HDA 40.63 66.34 27.45 6.04 936.50 581.23 468.25 290.61 45.32 2.42 72.16 2.22 7.42 HDC 0.01 0.00 0.01 0.00 0.03 0.00 0.02 0.00 4.02 0.00 1.17 1.17 0.00 SDA 0.09 2.32 4.15 1.33 71.56 29.23 35.78 14.62 18.37 0.65 118.49 6.39 3.51 深发展3.47 0.00 1.90 0.00 15.32 0.01 7.66 0.01 8.08 0.74 391.31 5.68 1.08 FD0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.00 0.00 45.00 45.00 0.00 deathstar:/#顶顶 - 二十一点28分28秒高达1:22,2个用户,平均负载:0.09,0.14,0.16 任务:77共1运行,76睡觉,0停止,0僵尸 CPU(S):2.8%美国,1.3%SY,0.4%的镍,86.2%的id,9.1%は,0.1%喜,0.0%的硅纪念品:508644k总量,使用503612k,5032k免费,34052k缓冲区交换:1020088k总量,使用458980k,561108k免费,16012k缓存 PID USER PR NI VIRT RES SHR S%CPU%MEM TIME +命令 1根16 0 640 56 28秒0.0 0.0 0:05.14 INIT 2根34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd / 0 3根5 -10 0 0 0 S 0.0 0.0 0:00.09次/ 0 4根5 -10 0 0 0 S 0.0 0.0 0:00.00 khelper 下一步,让紧张了你的CPU,但不是磁盘。下面的命令将尝试创建的/ dev / null的无尽的zip文件。这不会产生磁盘活动,但加载的CPU。继续运行“顶”和“iostat的-x 1?在其他两个窗口。 猫的/ dev /零| bzip2的-c\u003e的/ dev / null的 如果你看到高CPU负载,低IOWAIT,我们可以消除CPU的问题,IRQ冲突,并出现故障的内存。只是为了安全起见,我们反正测试内存: deathstar:/#免费总使用免费共享缓冲区缓存纪念品:508644 503504 5140 0 37036 48968 - / +缓存/缓存:417500 91144 交换:1020088 516196 503892 此服务器的RAM 508644Kb。请使用以下的测试相应的值: deathstar:/#如果DD =的/ dev / hda2的BS =的= /备份/ MEMTEST数= 1050 508644 1050 + 0条记录 1050 + 0记录了 deathstar:/#的md5sum /备份/ MEMTEST; MD5SUM /备份/ MEMTEST; MD5SUM /备份/ MEMTEST 04762ff36b2231aac75754ab9c1a564a /备份/ MEMTEST 04762ff36b2231aac75754ab9c1a564a /备份/ MEMTEST 04762ff36b2231aac75754ab9c1a564a /备份/ MEMTEST 三个MD5值以上应该是相同的。如果他们不是 - 你的系统有一个错误的RAM芯片。 当你排除硬件问题,因为高IOWAIT的可能原因,在下一个步骤是审查固件和驱动程序。您是在磁盘控制器固件特别感兴趣:性能不稳定,并没有错误消息是固件问题的迹象。确实努力,要记住,如果你所做的任何系统最近的变化,特别是一些需要重新启动 - 比如内核的升级,例如。如果是这种情况,回滚升级或搜索升级固件。你应该抓住sysinfo控件(免费30天试用版)的副本,以帮助您确定您的磁盘,控制器等品牌和型号 当你的磁盘和控制器可能是尖顶部,你可以有一个文件系统的一个问题。即使你看高IOWAIT访问任何文件系统的时候,你还是应该看看那里的/ var安装和交换分区 - 如果有问题,就会表现出来,无论你的系统在做什么。但在这里,你会遇到一个小问题:fsck将无法扫描挂载的分区,你不能卸载的/ var。比方说,这些都是你的分区: deathstar:/#以上/ etc / fstab文件的/ dev / hda2的/ ReiserFS文件系统ACL,user_xattr 1 1 的/ dev / hda1的swap交换PRI = 42 0 0 您需要的fsck的/ dev / hda2的,因为这是你的/ var安装。下载KNOPPIX或Ubuntu的LiveCD,从光盘(无需安装),并启动“的fsck的/ dev / hda2的?从那里,如果一切看起来干净,关闭系统,把光盘拿出来,并正常启动,下一步是检查出掉如果你只是运行fsck的交换分区,就会失败: deathstar:/#的fsck的/ dev / hda1上的fsck 1.34(25-Jul-2003所属)的fsck:fsck.swap:未找到的fsck:错误2在执行fsck.swap为为/ dev / hda1上 你需要禁用掉在/ dev / hda1上,然后才可以进行扫描。在你能做到这一点,你需要添加另一个交换区域:你不能没有任何交换空间运行。因此,要添加交换上的苍蝇,(在这个例子1GB)创建一个交换文件: deathstar:/#如果DD =的/ dev /的= /交换文件BS = 1024计数= 1048576为零 1048576 + 0条记录 1048576 + 0记录了 deathstar:/#搭配chmod 600 /交换文件 deathstar:/#LS -lash /交换文件 1.1G -rw ------- 1根根1.0G 12月20日22:48 /交换文件 现在,您可以设置和激活新的交换文件: deathstar:/#再用mkswap /交换文件设置交换空间第1版,大小= 1073737 KB deathstar:/#免费总使用免费共享缓冲区缓存纪念品:508644 500996 7648 0 38912 147332 - / +缓存/缓存:314752 193892 交换:1020088 521784 498304 deathstar:/#swapon命令/交换文件 deathstar:/#免费总使用免费共享缓冲区缓存纪念品:508644 502232 6412 0 39400 147392 - / +缓存/缓存:315440 193204 交换:2068656 521784 1546872 现在我们需要停用原来的交换分区。此操作可能需要几分钟时间才能完成: deathstar:/#使用swapoff的/ dev / hda1上 deathstar:/#免费总使用免费共享缓冲区缓存纪念品:508644 501624 7020 0 31712 10416 - / +缓存/缓存:459496 49148 交换:1048568 167032 881536 下一步是建立在旧的交换分区标准的文件系统,因此fsck有事扫描: deathstar:/#mke2fs的-c的/ dev / hda1上的mke2fs 1.34(25-Jul-2003所属)文件系统标签= 操作系统类型:LINUX 块大小= 4096(日志= 2)片段大小= 4096(日志= 2) 127744的inode,255024块 12751块(5.00%)保留给超级用户第一个数据块= 0 8块组每组32768块,每组32768片段每组15968的inode 存储在块超级块的备份: 32768,98304,163840,229376 检查是否有坏块(只读测试):已完成写作的inode表:完成写作超级块和文件系统的会计信息:已完成 先前的操作已经运行fsck的,因此,如果你看到没有错误,现在可以重新激活你原来的交换空间,并删除已创建的临时交换: deathstar:/#mkswap命令的/ dev / hda1上设置交换空间第1版,大小= 1044574 KB deathstar:/#swapon命令的/ dev / hda1上 deathstar:/#使用swapoff /交换文件 deathstar:/#RM /交换文件 deathstar:/#免费总使用免费共享缓冲区缓存纪念品:508644 503172 5472 0 33668 9256 - / +缓存/缓存:460248 48396 交换:1020088 156300 863788 通常用于分析系统的瓶颈Anothe命令是vmstat的。下面的示例运行的vmstat 5次2秒的时间间隔: deathstar:〜#vmstat的 - S M 2 5 特效-----------内存---------- --- swap-- ----- IO ---- --system-- ---- CPU ---- RB swpd免费BUFF缓存SI所以毕波在CS我们SY ID华 0 0 15 174 70 58 0 0 189 50 5 6 1 3 94 1 0 0 15 174 70 58 0 0 0 0 1005 35 4 0 96 0 0 1 15 174 70 58 0 0 0 258 1515 45 0 6 88 7 0 0 15 173 71 58 0 0 0 194 1083 24 0 1 83 16 0 0 15 173 71 58 0 0 0 0 1003 19 0 0 100 0 vmstat的列说明: (一)特效是与进程相关的领域有: * R:等待运行时的进程数。 * B:在不间断睡眠的进程数。 (二)内存是内存相关的领域有: * swpd:虚拟存储器的使用量。 *免费:闲置的内存量。 * BUFF:内存作为缓冲区的数量。 *高速缓存:内存作为高速缓存的数量。 (三)交换为交换相关的领域有: * SI:存储容量从盘(/秒)的交换。 *这样:内存容量交换到磁盘(/秒)。 (D)IO是I / O相关的领域有: * BI:块从块设备(块/秒)接收。 *博:发送到块设备(块/秒)块。 (E)系统是系统相关的领域有: *中:每秒的中断,包括时钟的数目。 *连拍:每秒上下文切换的数量。 (F)CPU是CPU相关领域有: 这些都是CPU总时间的百分比。 *我们:花的时间运行非内核代码。 (用户时间,包括美好的时光) * SY:花费的时间正在运行的内核代码。 (系统时间) * ID:花的时间处于闲置状态。在此之前的Linux 41年2月5日,这包括IO等待时间。 * WA:时间花在等待IO。之前的Linux 41年2月5日,显示为零。 如果没有找出IOWAIT问题的原因,你应该考虑的可能性,这是没有问题:也许你的系统处理额外的负载和资源的短缺。看看正在运行的进程,并看看有什么吃内存。也许你升级的应用程序,现在它正在使用更多的内存,从而导致较高的交换,从而导致磁盘活动,从而导致高IOWAIT。 的解决方案很简单: 1,安装更多的内存 2,移动交换到另一个磁盘或 - 甚至更好 - 将其移动到另一个磁盘上的一个单独的控制器。 3,移动用户应用程序到另一个磁盘/控制器,并指定系统盘以外的默认日志位置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值