Linux सर्वर बेंचमार्किंग स्क्रिप्ट्स
CPU और HDD का त्वरित बेंचमार्क करें
लिनक्स बेंचमार्क शेल स्क्रिप्ट्स
वर्तमान परीक्षणों में CPU और HDD sysbench से शामिल हैं (Debian/Ubuntu फ्लेवर्स पर स्वचालित रूप से इंस्टॉल होगा।)
लक्ष्य: प्रदरम्भन उपयोगिताओं के तर्कों को याद रखने से बचना। Bash में लिखा गया है।
चरण 1: बेंचमार्क सेटअप करें:
# परिणाम और स्क्रिप्ट्स के लिए फोल्डर बनाएंexport BENCH_DIR=$HOME/benchmarksmkdir -p $BENCH_DIR/resultsचरण 2: शॉर्टकट स्क्रिप्ट बनाएं: $HOME/benchmarks/bench-library.sh
#!/bin/bashset -e
# कुछ डिपेंडेंसी इंस्टॉल करेंif [ "$(which sysbench)" == "" -o "$(which inxi)" == "" -o "$(which tcpdump)" == "" ]; then sudo apt-get update && apt-get install -y sysbench inxi htop iotop tcpdump hddtempfi# चरexport DATE_TAG=`date +%F` #YYYY-MM-DDexport CPU_CORES="$([ -e /proc/cpuinfo ] && grep -sc ^processor /proc/cpuinfo || sysctl -n hw.ncpu)"export BENCH_DIR=$HOME/benchmarks/
mkdir -p $BENCH_DIR
function benchCpu() { thread_limit=${1:$CPU_CORES} prime_limit=${2:-20000}
if [ $CPU_CORES -lt `expr 1 + $thread_limit` ]; then printf "\n\n${yellow}चेतावनी: \"${thread_limit} थ्रेड टेस्ट\" से सीमित परीक्षणों को छोड़ दिया गया है\n${cyan}पर्याप्त CPU कोर नहीं हैं ($CPU_CORES) ${reset}\n\n" else printf "\n\n${yellow}चेतावनी: \"${thread_limit} थ्रेड टेस्ट\" से सीमित परीक्षणों को छोड़ दिया गया है\n${reset}"
sudo sysbench --test=cpu \ --cpu-max-prime=${prime_limit} \ --num-threads=${CPU_CORES} \ run | tee -a $BENCH_DIR/results/cpu-test.log fi}
# benchSingleDisk seqrd 120G 8K 300function benchSingleDisk () { sudo sysbench --test=fileio --init-rng=on --file-test-mode=${1:-seqrd} --file-block-size=${3:-64K} \ --num-threads=${CPU_CORES} --max-time=${4:-180} --file-total-size=${2:-60G} \ --max-requests=0 run | tee -a $BENCH_DIR/results/sysbench-fileio.log}
# benchDisk - रैंडम पढ़ने और लिखने, और क्रमिक r, और क्रमिक लिखने का परीक्षण करता है, फिर अंतिम सफाई करता है।function benchDisk() { # परीक्षण फ़ाइलें तैयार करता है - आपके मुक्त स्थान के 75% तक - स्थानीय डायरेक्टरी में, फिर 3 परीक्षण (प्रत्येक 20 मिनट तक) चलाता है freeSpace=`df -k . | tail -1 | awk '{print $4}'` freeSpace="${freeSpace//G|T/}" testSize=$(awk "BEGIN {print ($freeSpace / 1024 / 1024) * 0.75; exit}") testSize=${testSize}G printf "####>>> \n$testSize परीक्षण डेटा को ${PWD} में लिख रहा है...\n"
benchSingleDisk seqrd ${testSize} 8K 300 benchSingleDisk seqwr ${testSize} 8K 300 benchSingleDisk seqrw ${testSize} 8K 300 benchSingleDisk rndrd ${testSize} 8K 300 benchSingleDisk rndwr ${testSize} 8K 300 benchSingleDisk rndrw ${testSize} 8K 300
benchSingleDisk seqrd ${testSize} 64K 300 benchSingleDisk seqwr ${testSize} 64K 300 benchSingleDisk seqrw ${testSize} 64K 300 benchSingleDisk rndrd ${testSize} 64K 300 benchSingleDisk rndwr ${testSize} 64K 300 benchSingleDisk rndrw ${testSize} 64K 300
printf "\n\n####>>> \nपरीक्षण पूरा हो गया! बहुत अच्छा!!! \n\n\n"}चरण 3: स्क्रिप्ट अनुमति सेट करें
chmod +x $BENCH_DIR/*.shsource $HOME/benchmarks/bench-library.shचरण 4: बैच रनर स्क्रिप्ट बनाएं (वैकल्पिक)
$HOME/benchmarks/run-bench.sh
#!/bin/bashset -e
source ./bench-library.sh
# एचडीडी गति का बेंचमार्क (वर्तमान निर्देशिका में)###########benchDisk
# सीपीयू का बेंचमार्क - अलग-अलग धागा गिनती (और कार्य आकार) के साथ# अगर हमारे पास पर्याप्त कोर नहीं हैं तो यह स्वचालित रूप से परीक्षण छोड़ देगा (प्रभाव डालने के लिए)# ध्यान दें: अलग-अलग हार्डवेयर के बीच परिणाम तुलनीय होते हैं - उनके समान सीपीयू कोर की संख्या तक।###########benchCpu 1benchCpu 4benchCpu 8 50000benchCpu 12 100000benchCpu 16 100000benchCpu 32 250000benchCpu 48 500000benchCpu 64 2000000अब निष्पादन अनुमति जोड़ें:
chmod +x $BENCH_DIR/*.shउपयोग
सुनिश्चित करें कि source ~/benchmarks/bench-library.sh करें, फिर benchCpu या benchDisk चलाएं।
benchCpu 8 250000benchCpu 16 250000benchDisk