লিনাক্সে হাইপারথ্রেডিংয়ের সাথে সিপিইউ লোড পরিমাপ


12

আমি মাল্টিকোর হাইপারথ্রেডিং সক্ষম করা সিপিইউর আসল ব্যবহার কীভাবে পেতে পারি?

উদাহরণস্বরূপ 2 ভার্চুয়াল কোর প্রকাশ করে একটি 2 কোর সিপিইউ বিবেচনা করা যাক।

topভার্চুয়াল কোরগুলির একটি কোর সম্পূর্ণরূপে ব্যবহৃত হওয়ায় একটি একক থ্রেডযুক্ত কাজের চাপ এখন 100% হিসাবে প্রদর্শিত হবে । সিপিইউ এবং topপ্রত্যাশার মতো কাজ করুন, যেমন 4 টি আসল কোর থাকবে।

দুটি থ্রেডের সাহায্যে জিনিসগুলি অর্কওয়ার্ড হয়ে উঠেছে: সমস্ত কিছু যদি ভালভাবে কাজ করে তবে সেগুলি দুটি বাস্তব কোরের সাথে ভারসাম্যপূর্ণ, তাই আমরা 200% ব্যবহার পেয়েছি: দু'বার 100% এবং দুটি নিষ্ক্রিয় ভার্চুয়াল কোর, এবং সমস্ত উপলব্ধ সিপিইউ পাওয়ার ব্যবহার করছি । আমার কাছে ঠিক আছে বলে মনে হচ্ছে

যাইহোক, যদি দুটি থ্রেড একক আসল মূলটিতে চলতে থাকে তবে তারা দুইবার 100% ব্যবহার করে দেখায় যা 200% ভার্চুয়াল কোর ব্যবহার করে। তবে আসল দিকটি, এটি দুটি মূল থ্রেডের সাথে তার শক্তি ভাগ করে নেওয়ার জন্য একটি কোর হবে, যা তখন মোট সিপিইউ পাওয়ার মাত্র এক অর্ধেক ব্যবহার করে।

সুতরাং দেখানো ব্যবহারের সংখ্যাগুলি topমোট সিপিইউ কাজের চাপ পরিমাপ করতে ব্যবহার করা যাবে না।

আমি আরও আশ্চর্য হই যে হাইপারথ্রেডিং কীভাবে একটি আসল কোরতে দুটি ভার্চুয়ালকে সামঞ্জস্য করে। যদি দুটি থ্রেড পৃথক পরিমাণে চক্র গ্রহণ করে, তবে ভার্চুয়াল কোরগুলি 'অভিযোজিত' করবে যাতে উভয়ই আসল লোড পৃথক হলেও 100% লোড দেখায়?


1
আপনি কী বুঝতে পেরেছেন যে অপারেটর সিস্টেম হাইপারথ্রেডিং ভার্চুয়াল কোর এবং ফিজিকাল কোর রাইটের মধ্যে পার্থক্য সম্পর্কে অবগত নয়?
রামহাউন্ড

এটা মনে হচ্ছে, কিন্তু এটি করতে হবে না? আসল বনাম ভার্চুয়াল কোর ম্যাপিং হল এক থেকে দুটি মানচিত্র। সমস্যাটি কীভাবে ভার্চুয়াল কোরের বোঝা পরিমাপ করা যায় যা প্রকৃত মূলের সাথে অন্যটির সাথে সময় নির্ধারণের মাধ্যমে তার উপলব্ধ কার্য সম্পাদনকে পরিবর্তন করে। তবে সমস্ত ডেটা উপলভ্য আমি মনে করি, প্রশ্নটি হল ঠিক এমন সরঞ্জামগুলি যেখানে সেগুলি থেকে সঠিক ফলাফল অর্জন করে?
ড্রোনাস

1
আমি ঠিক এখানে একটি লোড পরিমাপ করতে চাই যেখানে 100% এর অর্থ প্রতিটি আসল কোরের প্রতিটি চক্র ব্যবহৃত হয়।
ড্রোনাস

1
সরলভাবে বলা: কোন নির্দিষ্ট মুহুর্তে কীভাবে বলব, যদি আমার সিপিইউ বর্তমানে চলমান কাজকে ধীর না করেই আরও কাজ করতে সক্ষম হয়?
ড্রোনাস

1
@ রামহাউন্ড, সুতরাং যদি আমার কাছে 8 টি লজিকাল কোর সহ একটি শারীরিক 4-কোর প্রসেসর থাকে এবং আমার লোডের গড় গড় 4.00 বলে, আমি কি 100% ব্যবহার বা 50%?
বাটাল বুটকস

উত্তর:


5

ওরাকল এ মার্টিন Tegtmeier এই গত বছর সম্পর্কে একটি আকর্ষণীয় ব্লগ পোষ্ট লিখেছেন: https://blogs.oracle.com/solaris/cpu-utilization-of-multi-threaded-architectures-explained-v2

সংক্ষিপ্ত উত্তর; হাইপারথ্রেডিং সামগ্রিক সিপিইউ-ব্যবহার / সিপিইউ-অলস শতাংশের প্রতিবেদন করার শীর্ষের দক্ষতার সাথে মেসেজ করে।

সবচেয়ে খারাপ ক্ষেত্রে, একটি 2-কোর 4-ভার্চুয়াল-কোর সিপিইউ 100% -Utilisation- প্রতি-কোরে 2 টি থ্রেড চালাচ্ছে, সিপিইউ প্রায় সমৃদ্ধ করতে পারে। (এক্সিকিউশন পোর্ট ব্যবহারের উপর নির্ভর করে; কেবল থ্রেডগুলি যে সিপুতে সম্পূর্ণ আলাদা কম্পিউটিং রিসোর্স ব্যবহার করে তা এখনও বর্তমান থ্রেডের পারফরম্যান্সকে প্রভাবিত না করে চলতে পারে)) তবে শীর্ষস্থানে এখনও এই ক্ষেত্রে 50% অলস প্রতিবেদন করবে।


1
বর্তমান কাজের লিঙ্ক: ব্লগস.অরাকল.com
জান লালিনস্কে

4

সিস্টেমের লোডের তুলনায় মূল ব্যবহারটি খুব আলাদা। মূল ব্যবহারটি কেবল কোরটি কতগুলি গণনা করছে বা নির্দেশাবলীর জন্য অপেক্ষা করছে তা দেখানো হচ্ছে। এটি 100% হতে পারে যা সিপিইউ কোনও কিছু গণনা করছে এমন নির্দিষ্ট সময়ের সাথে মিলে যায়।

তবে লোড একটি আলাদা জিনিস, কোনও প্রক্রিয়া কোনও সংস্থার জন্য অপেক্ষা করতে হবে কিনা তা নির্ধারণের জন্য লোডটি সাধারণত পরিমাপ করা হয়। যদি প্রক্রিয়াগুলি কোনও সংস্থার জন্য অপেক্ষা না করে তবে আপনি একটি খুব পারফরম্যান্ট সিস্টেম দেখতে পাবেন। তবে কখনও কখনও আপনি স্লো সিস্টেমগুলি দেখতে পাবেন তবে কম সিপিইউ ব্যবহার। এর অর্থ সাধারণত কিছু প্রক্রিয়া কোনও উত্সের জন্য অপেক্ষা করছে এবং সিপিইউ ছাড়ছে না। এই জাতীয় দৃশ্যের জন্য আপনি উচ্চ সিপিইউ ব্যবহার দেখতে পাবেন না তবে সিস্টেমটি এর ক্ষমতা থেকে ভাল হতে পারে।

একটি লিনাক্স সিস্টেমে লোড গড় সিস্টেমের সামগ্রিক কর্মক্ষমতা পরিমাপের জন্য একটি গণনা করা মান। লোড গড়ের মানটি সমান্তরাল কম্পিউটিং সংস্থার সাথে তুলনা করা উচিত, নির্দিষ্টগুলি নির্দিষ্ট হওয়া উচিত। সুতরাং যদি 4 টি শারীরিক কোরের একটি সিস্টেমের লোড গড় 4 বা ততোধিক হয় তবে আমরা নিরাপদে বলতে পারি যে কিছু প্রক্রিয়া কোনও সংস্থার জন্য অপেক্ষা করবে।

সিপিইউ ব্যবহার 100 বা 10 শতাংশ হলে এটি গুরুত্বপূর্ণ নয়। লোড গড় 200 বা 300 এর বেশি হতে পারে, এই ক্ষেত্রে সিস্টেম সবেই প্রতিক্রিয়াশীল হবে।

একটি সাধারণ অপারেটিং অবস্থায় সার্ভারের লোড গড় দীর্ঘ সময়ের জন্য কোরের সংখ্যার বেশি হওয়া উচিত নয়। শর্ট স্পাইকগুলি আমার মতে গুরুত্বপূর্ণ নয়। 3 টি সংখ্যা যা আপনি একটি wআউটপুট দেখতে পাবেন তা হল লোড অ্যাভ। 1/5/15 মিনিটের জন্য।


0

আমার মতে উপরের উত্তরগুলির কোনওটিই সন্তোষজনক নয়।

আমি মনে করি যে নিবন্ধটি আমি নীচের লিঙ্কটিতে উল্লেখ করছি তা এই প্রশ্নের উত্তর দেওয়ার জন্য ভালভাবে লক্ষ্যবস্তু হয়েছে: http://perfdynamics.blogspot.ch/2014/01/monmitted-cpu-utilization-und-hyper.html

উদ্ধৃতি:

এইচটি-র পিছনের ধারণাটি হ'ল বর্তমানে চলমান অ্যাপ স্টল করার সময় একটি আলাদা অ্যাপ্লিকেশন থ্রেড চালানোর অনুমতি দেওয়া; শাখার ভুল ধারণা, পাইপলাইনে বুদবুদ ইত্যাদির কারণে এটি সম্ভব করতে আরও একটি বন্দর বা এএস রেজিস্টার থাকতে হবে। এইচটি সক্ষম করা হলে নিবন্ধটি ওএসের কাছে দৃশ্যমান হয়। যাইহোক, ওএস (এবং আপনি যে কোনও পার্ফ সরঞ্জামগুলি ব্যবহার করছেন এমন খাবারের চেইন পর্যন্ত সমস্ত ক্ষেত্রে) এখন প্রসেসরের সক্ষমতা দ্বিগুণ বলে মনে করে, প্রতিটি এএস বন্দরে 100% সিপিইউ।

তবে হুডের নীচে, এখনও কেবলমাত্র একটি এক্সিকিউশন ইউনিট রয়েছে: এইচটি সক্ষম করার আগে আপনি যে একক, শারীরিক, মূলটি শুরু করেছিলেন। পার্থক্যটি হ'ল এটি 2 AS বন্দরগুলির মধ্যে কোনওভাবে ভাগ করা হচ্ছে। দুটি বন্দরগুলির মধ্যে কীভাবে সিঙ্গেল কোরটি স্যুইচ হয়ে যায় তা খুব জটিল তবে পোল করা সারির ক্ষেত্রে এটি খুব সহজেই বোঝা যায়। আমি আমার জিসিএপি ক্লাসগুলিতে সেই স্তরের বিশদে চলে যাই।

আমার কাছে সবচেয়ে সেরা-পরীক্ষার পরিমাপ, ইঙ্গিত দেয় যে প্রতিটি এইচটি পোর্ট ওএস অনুসারে গড়ে প্রত্যাশিত 200% ক্ষমতার গড় বা 75% এর চেয়ে বেশি ব্যস্ত হয়ে উঠতে পারে না। "অনুপস্থিত" 50% ক্ষমতা, যা আমি আগে উল্লেখ করেছি, এটি একটি বিভ্রম। ইন্টেল দাবি করেছে যে সাধারণ অ্যাপ্লিকেশনগুলির জন্য ১২০% থেকে ১৩০% এর মধ্যে থাকা কিছু প্রত্যাশা করা যেতে পারে।

আসলে, আমি নিশ্চিত যে অপারেটিং সিস্টেমটি প্রতিটি ভার্চুয়াল কোরটিতে 100% পৌঁছতে পারে, এ সম্পর্কে কোনও সন্দেহ নেই। আমি সবেমাত্র একটি করেছি:

mvn clean install -DskipTests -T 5

এবং আমি আপনাকে আমার 8 ভার্চুয়াল কোর এবং 4 টি ফিজিকাল কোরগুলি 100% সিপিইউ ব্যবহারের জন্য নিশ্চিত করতে পারি। এবং আমার মেশিনে অবশ্যই 8 টি কোর নেই।

দীর্ঘ গল্প সংক্ষিপ্ত, আপনি যদি ধরে নিবেন যে মোট সিপিইউ লোড আপনি সর্বাধিক 100% এর উপরে চলে যান এবং সম্ভবত বেশিরভাগ ক্ষেত্রেই সঠিকভাবে শারীরিক কোরের 100% ব্যবহার করা হয়। এই মেনাসগুলি, আপনার যদি শারীরিক CORE 1 অপারেটিং সিস্টেম সিপিইউ 1 এবং সিপিইউ 2 তে বিভক্ত হয় এবং সিপিইউ 1 এ আপনার মোট ব্যবহার 50% এবং সিপিইউ 2 তে আপনার মোট ব্যবহার 50% হয়, সম্ভবত বাস্তব জীবনে আপনি সম্ভবত সেই সিপিইউতে মোট ব্যবহারের 100% চাপ দিন। আপনি এটি সর্বোচ্চ করেছেন।

তবে অবশ্যই এর সিস্টেম মনিটরিং সরঞ্জামগুলির অপারেটিং সিস্টেমটির কোনও ধারণা নেই যে এটি আপনাকে একটি মায়া বিক্রি করছে। অপারেটিং সিস্টেমের পূর্বনির্ধারিত দিক থেকে এবং কীভাবে এটি সংস্থানগুলি পরিচালনা করে, এটি কেবল বিশ্বাস করবে যে এই দুটি ভার্চুয়াল কোরগুলির প্রথমটি এখনও 50 শতাংশ অলস, তাই যদি আরও কাজ চালানো হয় তবে এই দুটি কোরের উপর অভিন্নভাবে বিতরণ করার চেষ্টা করা হবে । সুতরাং আপনি যখন সিপিইউ ব্যবহারের সময়কালে 100% সিপিইউ ব্যবহারের উপরে যান, সেই সময়কালে চালানোর জন্য সর্বদা সারিবদ্ধ কাজ থাকে যা সিপিইউতে কোনও সময় স্ক্লাইস পাওয়ার জন্য কখনও পরিবর্তন হয় নি। অবশেষে এটি এটি পাবে, তবে সবসময় কিছু থ্রেড থাকে যা আসলে চালানোর সময় নির্ধারিত হয়ে গেলেও চলমান হয় না।

ধন্যবাদ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.