mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
oe-time-dd-test.sh: add options and refactor
Options: -c | --count <amount> dd (transfer) <amount> KiB of data within specified timeout to detect latency. Must enable -t option. -t | --timeout <time> timeout in seconds for the <count> amount of data to be transferred. -l | --log-only run the commands without performing the data transfer. -h | --help show help (From OE-Core rev: 302bc6c99226a4d050e4e454afc461a25e127632) Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
8ce9e8b268
commit
7c5fd8006f
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
#
|
||||
# oe-time-dd-test records how much time it takes to
|
||||
# write <count> number of kilobytes to the filesystem.
|
||||
|
@ -8,23 +8,25 @@
|
|||
# The purporse of this script is to find which part of
|
||||
# the build system puts stress on the filesystem io and
|
||||
# log all the processes.
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 <count>"
|
||||
echo "$0 is used to detect i/o latency and runs commands to display host information."
|
||||
echo "The following commands are run in order:"
|
||||
echo "1) top -c -b -n1 -w 512"
|
||||
echo "2) iostat -y -z -x 5 1"
|
||||
echo "3) tail -30 tmp*/log/cooker/*/console-latest.log to gather cooker log."
|
||||
echo " "
|
||||
echo "Options:"
|
||||
echo "-c | --count <amount> dd (transfer) <amount> KiB of data within specified timeout to detect latency."
|
||||
echo " Must enable -t option."
|
||||
echo "-t | --timeout <time> timeout in seconds for the <count> amount of data to be transferred."
|
||||
echo "-l | --log-only run the commands without performing the data transfer."
|
||||
echo "-h | --help show help"
|
||||
|
||||
}
|
||||
|
||||
TIMEOUT=15
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
uptime
|
||||
timeout ${TIMEOUT} dd if=/dev/zero of=oe-time-dd-test.dat bs=1024 count=$1 conv=fsync
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Timeout used: ${TIMEOUT}"
|
||||
echo "start: top output"
|
||||
run_cmds() {
|
||||
uptime
|
||||
echo "start: top output"
|
||||
top -c -b -n1 -w 512
|
||||
echo "end: top output"
|
||||
echo "start: iostat"
|
||||
|
@ -33,4 +35,67 @@ if [ $? -ne 0 ]; then
|
|||
echo "start: cooker log"
|
||||
tail -30 tmp*/log/cooker/*/console-latest.log
|
||||
echo "end: cooker log"
|
||||
}
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
re_c='^[0-9]+$'
|
||||
#re_t='^[0-9]+([.][0-9]+)?$'
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
key="$1"
|
||||
|
||||
case $key in
|
||||
-c|--count)
|
||||
COUNT=$2
|
||||
shift
|
||||
shift
|
||||
if ! [[ $COUNT =~ $re_c ]] || [[ $COUNT -le 0 ]] ; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-t|--timeout)
|
||||
TIMEOUT=$2
|
||||
shift
|
||||
shift
|
||||
if ! [[ $TIMEOUT =~ $re_c ]] || [[ $TIMEOUT -le 0 ]] ; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-l|--log-only)
|
||||
LOG_ONLY="true"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [ "$LOG_ONLY" = "true" ] ; then
|
||||
run_cmds
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z ${TIMEOUT+x} ] || [ -z ${COUNT+x} ] ; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Timeout used: ${TIMEOUT}"
|
||||
timeout ${TIMEOUT} dd if=/dev/zero of=oe-time-dd-test.dat bs=1024 count=${COUNT} conv=fsync
|
||||
if [ $? -ne 0 ]; then
|
||||
run_cmds
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue
Block a user