HEX
Server: Apache
System: Linux mare-tim-wwwmocrea 6.8.12-9-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-9 (2025-03-16T19:18Z) x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/doc/pv/benchmark.sh
#!/bin/bash
#
# Benchmark the read/write performance of pv by looking at the number of
# read() and write() calls and the average amount of data transferred each
# time, as suggested by Ville Herva <Ville.Herva@iki.fi>.
#

test_input=$(mktemp /tmp/pvbench1XXXXXX)
strace_output=$(mktemp /tmp/pvbench2XXXXXX)

trap 'rm -f ${test_input} ${strace_output}' EXIT

pv=${pv:-./pv}
test -x "${pv}" || pv="pv"

dd if=/dev/zero of="${test_input}" bs=1k count=1k >/dev/null 2>&1

echo -e "Buf(k)\tRate(k)\tReads\tRsize\tWrites\tWsize"

for ((buffer=100; buffer<=1000; buffer+=100)); do
	for ((rate=100; rate<=1000; rate+=100)); do
		rateparm="-L ${rate}k"
		test ${rate} -eq 0 && rateparm=""
		strace -tt -o "${strace_output}" \
		  "${pv}" "${rateparm}" -B "${buffer}k" \
		  -f < "${test_input}" > /dev/null 2>&1
		rdata=$(
		  awk '$2~/^read\(0,/{c++;t+=$NF}END{print c "\t" t/c}' \
		   "${strace_output}"
		)
		wdata=$(
		   awk '$2~/^write\(1,/{c++;t+=$NF}END{print c "\t" t/c}' \
		   "${strace_output}"
		)
		echo -e "${buffer}\t${rate}\t${rdata}\t${wdata}"
	done
done

# EOF