对于一个真正工作的服务器来说,bufwaits永远不会为零。也就是说,将bufwait保持在最低限度是可取的。使用的经验法则是将 bufwait 保持在 dskreads 或 bufwrits 的 2-10%(或总数的 <3%),因为这两种操作都需要锁定 LRU,并且最有可能导致 bufwait。为了调优bufwait,通常需要首先获取该信息,通过如下脚本,可以完成相关信息收集,可以直观的看到相关数据。
onstat -p | awk '
[a-zA-Z]/{
for (i=1; i <= NF ; i++ ) {
name[i]=$i ;
}
}
/[0-9]/{
for (i=1; i <= NF ; i++ ) {
content[name[i]]=$i ;
}
}
END {
ixdaRA = content["ixda-RA"];
idxRA = content["ixd-RA"];
daRA = content["da-RA"];
RApgsused = content["RA-pgsused"];
print "Read Utilization (UR): ",((RApgsused /( ixdaRA + idxRA + daRA) )*100),"%";
bufwaits = content["bufwaits"];
bufwrits = content["bufwrits"];
pagreads = content["pagreads"];
print "BufWaits Ratio(BR): ", ((bufwaits/(pagreads + bufwrits)) *100),"%";
}
'