mirror of
https://github.com/SCST-project/scst.git
synced 2026-10-22 06:02:33 +00:00
Place interrupt and memory monitors beside the block-device benchmark and persistent-reservation exerciser. Update the SRPT maintainer instructions and copyright paths with the move. The four helpers are byte-for-byte unchanged, including their existing privilege requirements and device or host side effects.
89 lines
1.9 KiB
Bash
Executable File
89 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
############################################################################
|
|
#
|
|
# Script for monitoring system-wide memory usage.
|
|
#
|
|
# Copyright (C) 2009 Bart Van Assche <bvanassche@acm.org>.
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation, version 2
|
|
# of the License.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
############################################################################
|
|
|
|
#########################
|
|
# Function definitions #
|
|
#########################
|
|
|
|
function usage {
|
|
echo "Usage: $0 [-h] [-i <interval>]"
|
|
echo " -h - display this information."
|
|
echo " -i - monitoring interval in seconds."
|
|
}
|
|
|
|
|
|
#########################
|
|
# Default settings #
|
|
#########################
|
|
|
|
interval=10
|
|
|
|
|
|
#########################
|
|
# Argument processing #
|
|
#########################
|
|
|
|
getopt_args=$(/usr/bin/getopt -o "hi:" -- "$@") || {
|
|
usage
|
|
exit 1
|
|
}
|
|
# GNU getopt emits shell-quoted arguments; eval restores them losslessly.
|
|
# shellcheck disable=SC2294
|
|
eval set -- "$getopt_args"
|
|
while [ "$1" != "${1#-}" ]
|
|
do
|
|
case "$1" in
|
|
'-i') interval="$2"; shift; shift;;
|
|
'--') shift;;
|
|
*) usage; exit 1;;
|
|
esac
|
|
done
|
|
|
|
if [ "$#" != 0 ] || ! [[ "${interval}" =~ ^0*[1-9][0-9]*$ ]]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
interval="${interval#"${interval%%[!0]*}"}"
|
|
|
|
|
|
####################
|
|
# Performance test #
|
|
####################
|
|
|
|
printf "%-10s " "Time"
|
|
cat /proc/meminfo |
|
|
while read -r label number _
|
|
do
|
|
printf " %10s" "${label%:}"
|
|
done
|
|
echo
|
|
|
|
while true
|
|
do
|
|
printf "%-10d" "$(date +%s)"
|
|
cat /proc/meminfo |
|
|
while read -r label number _
|
|
do
|
|
printf " %10d" "${number}"
|
|
done
|
|
echo
|
|
sleep "${interval}"
|
|
done
|