কীভাবে লিনাক্স সার্ভারে সিপিইউ লোড জেনারেট করা যায়


13

আমি সার্ভারে নকল লোড পরীক্ষা করতে চাই, আমি এমন কিছু বার্ন-ইন বা বেঞ্চমার্ক কমান্ড লাইন ইউটিলিটি খুঁজছি যা সিস্টেমে সিপিইউ লোড তৈরি করে।

আমি কেবলমাত্র সিপিইউ (কোনও হার্ডডিস্ক লোড, নেটওয়ার্ক এবং কো) বার্ন-ইন করতে সক্ষম হতে চাই এবং আমি যে সময়টিতে লোডটি চলবে তা নির্ধারণ করতে সক্ষম হব। মানে আমি এমন কিছু চাই যা চালাতে সক্ষম হবে: সিস্টেমে 10 মিনিটের জন্য সিপিইউ লোড।

কোন ধারনা?

উত্তর:


12

আপনি "স্ট্রেস" ইউটিলিটি ডাউনলোড এবং ইনস্টল করতে পারেন ... এটি আপনাকে কমান্ড লাইন থেকে সিপিইউ, মেমরি, ডিস্ক এবং আইও লোড তৈরি করতে দেয়।

হোমপৃষ্ঠা: http://people.seas.harvard.edu/~apw/stress/

এফএকিউ: http://people.seas.harvard.edu/~apw/stress/FAQ


6

আমি ভাসমান পয়েন্ট অপ্সকে পছন্দ করি:

for i in `seq 64`; do perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $sqrt = sqrt($j) for (1..9999); }' & done

আপনার সিপিইউ নম্বর সম্পর্কে সচেতন হন :-)


আমি timeএই কিভাবে করতে পারি ?
সাবস্টিয়ান

2

এটি এমন কিছু যা আমি ঘন ঘন করতে চাই। তবে আমার এটি করার ভাল উপায় নেই। আমি কেবল একটি ছোট পার্ল স্ক্রিপ্ট লিখি যা আমার সেকেন্ডের জন্য লুপ হয়ে যায়।

যেমন (10 মিনিটের জন্য):

perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $j *= 1.1 for (1..9999); }'

অবশ্যই আপনার যদি এন প্রসেসর থাকে তবে আপনি অনেকগুলি প্রক্রিয়া তৈরি করতে ব্যাশ লুপ যুক্ত করতে পারেন:

#!/bin/bash
# e.g. for 4 processors
for i in 1 2 3 4; do
    perl -e .... &
done
wait

4
গৌণ বিন্দু: সেই forলুপটি কি এগুলিকে সমান্তরাল না করে সিরিজে চালাবে? যদিও আমি মনে করি (perl -e '...' &)শেল থেকে তাদের আলাদা করতে কাজটি হবে do
স্মলক্ল্যাঞ্জার

তুমি ঠিক বলছো. আমি আমার পোস্ট সংশোধন করব। যে ইশারা জন্য ধন্যবাদ।
পিপি


1

আমি স্ট্রেস-এনজি ব্যবহার করার পরামর্শ দিচ্ছি, এটি স্ট্রেসের চেয়ে অনেক বেশি বৈশিষ্ট্যযুক্ত এবং অপারেটিং সিস্টেমের অনেক বেশি অনুশীলন করতে পারে।

http://kernel.ubuntu.com/~cking/stress-ng/


1

এখানে একটি খাঁটি শেল (কমপক্ষে bash& ksh) উপায় যা আমি ইতিমধ্যে এখানে অনুরূপ প্রশ্নের উত্তর হিসাবে পোস্ট করেছি

# Usage: lc [number_of_cpus_to_load [number_of_seconds] ]
lc() {
  (
    pids=""
    cpus=${1:-1}
    seconds=${2:-60}
    echo loading $cpus CPUs for $seconds seconds
    trap 'for p in $pids; do kill $p; done' 0
    for ((i=0;i<cpus;i++)); do while : ; do : ; done & pids="$pids $!"; done
    sleep $seconds
  )
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.