仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 458|回复: 8
打印 上一主题 下一主题

[其他Linux] 给大家带来Linux历程IO情况的及时监测

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 12:10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
vim除非你打算真正的学好linux,或者说打算长久时间学习他,而且肯花大量时间vim,否则,最好别碰
作为体系办理员和VPS服务商,常常会碰着服务器大概VPS磁盘IO忙碌的时分,VPSee一般城市用一些工具来检测,个中一个经常使用的工具就是本人写的iotop剧本,能够很便利看到哪一个历程在频仍IO.上周五收到一名网友的邮件和留言,问到这篇文章:怎样检察历程IO读写情形?里的WRITE为何会呈现是0的情形,这是个好成绩,VPSee在这里好好注释一下。起首看看我们怎样才干及时监测分歧历程的IO举动情况。
  block_dump
  Linux内核里供应了一个block_dump参数用来把block读写(WRITE/READ)情况dump到日记里,如许能够经由过程dmesg命令来检察,详细操纵步骤是:
  #sysctlvm.block_dump=1
  or
  #echo1>/proc/sys/vm/block_dump
  然后就能够经由过程dmesg就能够察看到各个历程IO举动的情况了:
  #dmesg-c
  kjournald(542):WRITEblock222528ondm-0
  kjournald(542):WRITEblock222552ondm-0
  bash(18498):dirtiedinode5892488(ld-linux-x86-64.so.2)ondm-0
  bash(18498):dirtiedinode5892482(ld-2.5.so)ondm-0
  dmesg(18498):dirtiedinode11262038(ld.so.cache)ondm-0
  dmesg(18498):dirtiedinode5892496(libc.so.6)ondm-0
  dmesg(18498):dirtiedinode5892489(libc-2.5.so)ondm-0
  成绩
  一名仔细的网友提到如许一个成绩:为何会有WRITEblock0的情形呈现呢?VPSee跟踪了一段工夫,发明的确有WRITE0的情形呈现,好比:
  #dmesg-c
  ...
  pdflush(23123):WRITEblock0onsdb1
  pdflush(23123):WRITEblock16onsdb1
  pdflush(23123):WRITEblock104onsdb1
  pdflush(23123):WRITEblock40884480onsdb1
  ...
  谜底
  本来我们把WRITEblock0,WRITEblock16,WRITEblock104这内里包括的数字了解错了,这些数字不是代表写了几blocks,是代表写到哪一个block,为了寻觅原形,VPSee追到Linux2.6.18内核代码里,在ll_rw_blk.c里找到了谜底:
  $vilinux-2.6.18/block/ll_rw_blk.c
  voidsubmit_bio(intrw,structbio*bio)
  {
  intcount=bio_sectors(bio);
  BIO_BUG_ON(!bio->bi_size);
  BIO_BUG_ON(!bio->bi_io_vec);
  bio->bi_rw|=rw;
  if(rw&WRITE)
  count_vm_events(PGPGOUT,count);
  else
  count_vm_events(PGPGIN,count);
  if(unlikely(block_dump)){
  charb[BDEVNAME_SIZE];
  printk(KERN_DEBUG"%s(%d):%sblock%Luon%s
",
  current->comm,current->pid,
  (rw&WRITE)?"WRITE":"READ",
  (unsignedlonglong)bio->bi_sector,
  bdevname(bio->bi_bdev,b));
  }
  generic_make_request(bio);
  }
  很分明从下面代码能够看出WRITEblock0onsdb1,这里的0是bio->bi_sector,是写到哪一个sector,不是WRITE了几blocks的意义。另有,假如block设备被分红多个区的话,这个bi_sector(sectornumber)是从这个分区入手下手计数,好比block0onsdb1就是sdb1分区上的第0个sector入手下手。
</p>
对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;
莫相离 该用户已被删除
沙发
发表于 2015-1-18 09:17:57 来自手机 | 只看该作者
让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?
深爱那片海 该用户已被删除
板凳
发表于 2015-1-26 09:52:11 | 只看该作者
Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
分手快乐 该用户已被删除
地板
发表于 2015-2-4 16:37:24 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
谁可相欹 该用户已被删除
5#
发表于 2015-2-10 04:13:50 | 只看该作者
我想即使Linux高手也很难快速准确精练的回答你。
admin 该用户已被删除
6#
发表于 2015-2-28 19:35:58 | 只看该作者
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
飘灵儿 该用户已被删除
7#
发表于 2015-3-10 07:18:29 | 只看该作者
笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
再见西城 该用户已被删除
8#
发表于 2015-3-17 06:10:15 | 只看该作者
选择交流平台,如QQ群,网站论坛等。
若相依 该用户已被删除
9#
发表于 2015-3-23 23:16:10 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-25 07:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表