forked from woqidaideshi/openruyi-autotest
e2e680831c
All .sh files under tests/ lacked the Git executable permission bit (100644 instead of 100755), causing tmt run to fail with 'permission denied' errors on Linux servers. Fixes: woqidaideshi/openruyi-autotest#80
50 lines
1.9 KiB
Bash
Executable File
50 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Performance: sysbench - CPU 计算性能: prime number benchmark
|
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
. "$(dirname "$0")/../lib.sh"
|
|
|
|
rlJournalStart
|
|
rlPhaseStartSetup "环境准备"
|
|
sysbenchSetup
|
|
TmpDir=$(mktemp -d)
|
|
rlRun "cd $TmpDir" 0 ""
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest "单核 CPU"
|
|
local log="/tmp/sb_cpu_1.log"
|
|
rlLogInfo "=== CPU 单核 (--threads=1) ==="
|
|
sysbench --threads=1 --cpu-max-prime=40000 --time=30 --report-interval=5 cpu run 2>&1 | tee "$log"
|
|
_sysbenchParse "$log"
|
|
local eps
|
|
eps=$(grep "events per second" "$log" | grep -oP '[\d.]+' | head -1)
|
|
[ -n "$eps" ] && rlPass "单核 CPU: ${eps} events/s" || rlFail "无数据"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest "多核 CPU"
|
|
local cores=$(nproc)
|
|
local log="/tmp/sb_cpu_n.log"
|
|
rlLogInfo "=== CPU 多核 (--threads=$cores) ==="
|
|
sysbench --threads=$cores --cpu-max-prime=40000 --time=30 --report-interval=5 cpu run 2>&1 | tee "$log"
|
|
_sysbenchParse "$log"
|
|
local eps
|
|
eps=$(grep "events per second" "$log" | grep -oP '[\d.]+' | head -1)
|
|
[ -n "$eps" ] && rlPass "多核 CPU ($cores): ${eps} events/s" || rlFail "无数据"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest "单核 vs 多核 对比"
|
|
local eps1 epsN
|
|
eps1=$(grep "events per second" /tmp/sb_cpu_1.log | grep -oP '[\d.]+' | head -1)
|
|
epsN=$(grep "events per second" /tmp/sb_cpu_n.log | grep -oP '[\d.]+' | head -1)
|
|
if [ -n "$eps1" ] && [ -n "$epsN" ]; then
|
|
rlLogInfo "单核: ${eps1} eps, 多核($(nproc)): ${epsN} eps"
|
|
fi
|
|
rlPass "CPU 对比分析完成"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartCleanup "清理"
|
|
rlRun "cd /" 0 ""; [ -n "$TmpDir" ] && rlRun "rm -rf $TmpDir" 0 ""
|
|
rm -f /tmp/sb_cpu_*.log
|
|
rlPhaseEnd
|
|
rlJournalPrintText
|
|
rlJournalEnd
|