gpt4 book ai didi

linux - 计算 linux bash 脚本的平均 IO 等待时间

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:59 26 4
gpt4 key购买 nike

我需要一些帮助来计算 bash 脚本的平均 IO 等待时间。

我要运行的脚本非常简单。排序 2 个文件,然后加入。因为我将在大文件上进行测试,所以我需要知道我有多少 IO 瓶颈才能做出一些决定(加入哪些文件++ )。

我找到了很多不同的答案来获取一般的 IO 等待时间,但没有办法计算程序的平均时间。

如果上面解决了,我也想要上面的cpu平均运行时间,但是IO更重要。

我的一个解决方案是运行 iostat 直到程序终止,然后收集 iowait 时间和平均值。不确定这是否是个好主意。

最佳答案

您可以在/proc/stat 中找到任何 cpu 使用信息,因此您所要做的就是记录命令之前和命令之后的信息。我写了一个样本。

您可以像这样测试它:./avg_iowait.sh "dd if=/dev/zero of=tmp bs=1M count=2000"

您还可以使用示例中的日期数据来计算执行期间的 cpu 使用率平均值。我

============================================= ========================avg_iowait.sh

CMD="$1"

LOG_START="start.txt"
LOG_END="end.txt"

cat /proc/stat | grep "cpu " > $LOG_START

echo "exec : $CMD"
$CMD

cat /proc/stat | grep "cpu " > $LOG_END

cat $LOG_START
cat $LOG_END

USR1=`awk -F " " '{print $2}' $LOG_START`
NICE1=`awk -F " " '{print $3}' $LOG_START`
SYS1=`awk -F " " '{print $4}' $LOG_START`
IDLE1=`awk -F " " '{print $5}' $LOG_START`
IOWAIT1=`awk -F " " '{print $6}' $LOG_START`
IRQ1=`awk -F " " '{print $7}' $LOG_START`
SOFRIRQ1=`awk -F " " '{print $8}' $LOG_START`
STEAL1=`awk -F " " '{print $9}' $LOG_START`
GUEST1=`awk -F " " '{print $10}' $LOG_START`

USR2=`awk -F " " '{print $2}' $LOG_END`
NICE2=`awk -F " " '{print $3}' $LOG_END`
SYS2=`awk -F " " '{print $4}' $LOG_END`
IDLE2=`awk -F " " '{print $5}' $LOG_END`
IOWAIT2=`awk -F " " '{print $6}' $LOG_END`
IRQ2=`awk -F " " '{print $7}' $LOG_END`
SOFRIRQ2=`awk -F " " '{print $8}' $LOG_END`
STEAL2=`awk -F " " '{print $9}' $LOG_END`
GUEST2=`awk -F " " '{print $10}' $LOG_END`

SUM1=`expr $USR1 + $NICE1 + $SYS1 + $IDLE1 + $IOWAIT1 + $IRQ1 + $SOFRIRQ1 + $STEAL1 + $GUEST1`

SUM2=`expr $USR2 + $NICE2 + $SYS2 + $IDLE2 + $IOWAIT2 + $IRQ2 + $SOFRIRQ2 + $STEAL2 + $GUEST2`

IOWAIT_PERCENT=`expr \( $IOWAIT2 - $IOWAIT1 \) \* 100 / \( $SUM2 - $SUM1 \)`
echo "IOWAIT : $IOWAIT_PERCENT%"

关于linux - 计算 linux bash 脚本的平均 IO 等待时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21478958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com