小女巫 发表于 2015-1-16 12:10:44

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

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;
  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只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。

谁可相欹 发表于 2015-2-10 04:13:50

我想即使Linux高手也很难快速准确精练的回答你。

admin 发表于 2015-2-28 19:35:58

我是学习嵌入式方向的,这学期就选修了这门专业任选课。

飘灵儿 发表于 2015-3-10 07:18:29

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机

再见西城 发表于 2015-3-17 06:10:15

选择交流平台,如QQ群,网站论坛等。

若相依 发表于 2015-3-23 23:16:10

Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
页: [1]
查看完整版本: 给大家带来Linux历程IO情况的及时监测