10
22
2014
0

获取日志区访问所占总访问量的百分比

获取文件系统负载工具如postmark,filebench等对文件系统日志区的访问所占访问的百分比。
 
准备工作:格式化测试盘,并将格式化的盘挂载
mkfs -t ext4 /dev/sdd1
mount /dev/sdd1 /home/tss/test-disk
 
 
step1:查看要测试磁盘中日志区的范围
查看/dev/sdd1磁盘中日志区的范围
在ext4中日志区由inode号8来指示,通过debugfs查看inode 8 所向的对应区域
 
debugfs /dev/sdd1
stat <8>
Inode: 8   Type: regular    Mode:  0600   Flags: 0x80000
Generation: 0    Version: 0x00000000:00000000
User:     0   Group:     0   Size: 134217728
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 262144
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x54477848:00000000 -- Wed Oct 22 17:26:32 2014
atime: 0x54477848:00000000 -- Wed Oct 22 17:26:32 2014
mtime: 0x54477848:00000000 -- Wed Oct 22 17:26:32 2014
crtime: 0x54477848:00000000 -- Wed Oct 22 17:26:32 2014
Size of extra inode fields: 28
EXTENTS:
(0-32766):15761408-15794174, (32767):15794175
 
上述红色部分表示的是日志结点所对应的磁盘块号。
 
 
step2:运行postmark脚本并用blktrace检测结果
2.1在/home/tss/test-disk中运行如下postmark的脚本
root@f304-PowerEdge-R710:/home/tss/test-disk# postmark postmark.cfg
其中postmark.cfg的脚本内容如下 
set size 1000 5000
set transactions 500
set number 500
run
quit
 
2.2通过blktrace来捕捉postmark的动作
root@f304-PowerEdge-R710:/home/tss/script# ./blktrace.sh postmark
其中blktrace.sh脚本如下
#!/bin/sh
blktrace -d /dev/sdd1 -o -| blkparse -i - -o $1
 
step3:分析blktrace检测结果,得到访问日志区所占访问总量的百分比
blktrace的内容通过脚本分析,提取动作为A的项,并在动作为A的项中统计访问日志区的次数
脚本如下:
#!/bin/sh
awk '{if($6=="A")print ($8-2048)/8;i++}END {print "i="i}' $1>$2
awk '{if(($1>=15761408)&&($1<=15794175)){j++;}}END {print "j="j}' $2
 
其中第一个awk语句把A行所表示的扇区号转化为对应的块号。
其中第二个awk语句根据上述debugfs检查得到的日志区范围进行统计。
 
其中输入文件$1为上述红色标记blktrace捕捉输出文件的名字。
输出文件$2统计动作为A的行,最后一行awk语句记录访问日志区的数目。(通过j= ** 来指示)
由此可以计算出访问日志区占所有访问的比例。(j/i)

 

Category: 文件系统 | Tags: | Read Count: 1071

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com