লিনাক্স সার্ভারে আমি কয়টি কোর ব্যবহার করছি?


30

আমি কেবল ভাবছি যে ব্যাশ-এ আমি কীভাবে জানতে পারি যে একজন ব্যবহারকারী এখন লিনাক্স সার্ভারে কতটি সিপিইউ কোর ব্যবহার করছেন?

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

ধন্যবাদান্তে!

উত্তর:


39

সিপিইউতে সিপিইউ কোরগুলির সংখ্যা পেতে :

grep "^core id" /proc/cpuinfo | sort -u | wc -l

অথবা শারীরিক সিপিইউগুলির সংখ্যা পেতে :

grep "^physical id" /proc/cpuinfo | sort -u | wc -l

প্রদত্ত ব্যবহারকারীর জন্য এটি কীভাবে পরীক্ষা করবেন?
মাকিস

26

এটি সাহায্য করে কিনা আমি জানি না তবে আপনি mpstatপৃথক প্রসেসর (বা কোর) দ্বারা সিপিইউ ব্যবহারের ব্রেকডাউন পেতে ইউটিলিটিটি ব্যবহার করতে পারেন । উদাহরণ স্বরূপ:

$ mpstat -P ALL 1

12:49:59 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
12:50:00 PM  all    7.89    0.00    1.25    0.88    0.00    0.00    0.00   89.97   1359.00
12:50:00 PM    0   14.00    0.00    0.00    0.00    0.00    0.00    0.00   86.00   1043.00
12:50:00 PM    1   15.84    0.00    7.92    3.96    0.00    0.99    0.00   71.29    297.00
12:50:00 PM    2    3.96    0.00    0.00    1.98    0.00    0.99    0.00   93.07      0.00
12:50:00 PM    3    3.96    0.00    0.99    2.97    0.00    0.00    0.00   92.08      0.00
12:50:00 PM    4    4.00    0.00    0.00    0.00    0.00    0.00    0.00   96.00      0.00
12:50:00 PM    5    4.95    0.00    0.99    0.00    0.00    0.00    0.00   94.06     18.00
12:50:00 PM    6   10.89    0.00    0.99    0.00    0.00    0.00    0.00   88.12      0.00
12:50:00 PM    7    5.05    0.00    0.00    0.00    0.00    0.00    0.00   94.95      0.00

এই উদাহরণে, আপনি যে CPU- এর দেখতে পারেন 0, 1এবং 6তাদের বাকি চেয়ে বেশি কাজ করছেন। কখনও কখনও আপনি দেখতে পাবেন যে একটি একক সিপিইউ 100% এর কাছাকাছি রয়েছে (বা at) 100% অন্যরা শূন্যে রয়েছে। এটি প্রোগ্রামের সূচক হতে পারে (বা কোনও প্রোগ্রামের অংশ) যা একক থ্রেডযুক্ত এবং কেবল একবারে একটি সিপিইউ ব্যবহার করতে সক্ষম।

mpstatফেডোরা, আরএইচইএল, বা সেন্টোস সিস্টেমে ইনস্টল করতে , ব্যবহার করুন yum install sysstat


এই উত্তর দেওয়ার জন্য এক মিলিয়ন ধন্যবাদ! আমার সহকর্মীরা "শীর্ষ" কমান্ডটি ব্যবহার করছিলেন এবং প্রসেসরের ব্যবহার সম্পর্কে সমস্ত ভুল সিদ্ধান্ত নিয়ে আসছি যতক্ষণ না আমি তাদের এমপিস্ট্যাট কমান্ডটি প্রদর্শন করি showed
নাভি

উবুন্টু পাওয়া নয়: # aptitude search mpstat #
অ্যালিক্স অ্যাক্সেল

2
এর aptitude search systatপরিবর্তে অ্যালেক্সএক্সেল চেষ্টা করুন।
ম্যাট সলনিট

@ ম্যাটসোলনিট: এখনও ভাগ্য নেই।
অ্যালিক্স এক্সেল 10

mpstat প্যাকেজ দ্বারা প্রদান করা হয় sysstat ডেবিয়ান উপর এবং উবুন্টু উপর । আমি আশা করব যে বেশিরভাগ ডেবিয়ান-উত্পন্ন বিতরণগুলি একই প্যাকেজের নাম ব্যবহার করবে। দেবিয়ান থেকে প্রাপ্ত বিতরণগুলিতে, এর মাধ্যমে শুরু করুন apt-cache search --full mpstat
একটি সিভিএন

2

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


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

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

ধন্যবাদ! আমি সামগ্রিক সিস্টেমের লোড পরীক্ষা করি। আমার এক সহকর্মী আমাকে বলেছিলেন যে আমি সমস্ত কোর ব্যবহার করতে পারি না কারণ কে জানে অন্যরা শিগগিরই তাদের কাজ চালাবে এবং আমার চাকরি বেশ কিছুদিন স্থায়ী হবে। আপনি কি মনে করেন যে আমি যে کورগুলি ব্যবহার করছি তা সীমাবদ্ধ করতে হবে?
টিম

2

সুতরাং আপনি এখানে প্রতিক্রিয়া দেখতে পাবেন যা আপনার কোরগুলি কীভাবে ব্যবহার করা হচ্ছে তা আপনাকে জানিয়ে দেবে।

তবুও - এটি আপনাকে সত্যিই কোনও পরিষেবা দিচ্ছে না। আপনি একটি প্রাথমিক ধারণা তৈরি করেছেন যা কেবল ধরে রাখে না - আপনার কাজগুলি কোরের কিছু উপসেটে নিজেদেরকে গ্রুপ করবে।

পরিবর্তে, আপনার কাজ সমস্ত কোরে ছড়িয়ে যাবে, আপনি যদি এমন কোনও কিছু প্রয়োগ না করেন যা এগুলি কোনওভাবে "লিখিত" রাখে। (দ্রষ্টব্য: আমি এটির প্রস্তাব দিচ্ছি না; কেবল বলছি, "যদি না")

এখানে একটি বিকল্প কৌশল রয়েছে: অন্যান্য ব্যবহারকারীদের আরও চাকরি যুক্ত করার জন্য যখন এটি "গ্রহণযোগ্য" বোধ করেন তখন লোড স্তরটি কী তা আপনার নির্দিষ্ট সিস্টেমের জন্য চিহ্নিত করুন। তারপরে, এমন কিছু তৈরি করুন যা লোড স্তরটি এই সীমাটির নিচে নেমে গেলে কেবল একটি নতুন পটভূমি কাজ জমা দেয়।

এইভাবে, সমাধানটি মূল গণনা-স্বতন্ত্র, আরও বহনযোগ্য, আরও নমনীয় এবং পাশাপাশি "টুইঙ্ক" করা সহজ হবে।


আমি এখনই অন্য একটি পোস্টারের উত্তরে আপনি যে মন্তব্যটি যুক্ত করেছেন তা লক্ষ্য করেছি, এটি সহকর্মী আপনাকে কিছু বলার কারণে এটি ইঙ্গিত করছে। সুতরাং, প্রকৃতপক্ষে, দেখা যাচ্ছে যে ভুল ধারণাটি তাঁর, আপনার নয়। এর জন্যে দুঃখিত!
pbr

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

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

2

আপনি যদি এটি করতে চান তাই এটি লিনাক্স এবং ওএস এক্সে কাজ করে, আপনি এটি করতে পারেন:

CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu)

1

আপনি চালিয়ে যাওয়া top, ' U' আঘাত করে এবং আপনার ব্যবহারকারীর নাম উল্লেখ করে এবং তারপরে আপনার শীর্ষ কয়েকটি প্রক্রিয়াগুলির সিপিইউ ব্যবহারটি যুক্ত করে মোটামুটি অনুমান করতে পারেন ।


আমি একটি বাশ কমান্ড জানতে চাই যা আমাকে নম্বরটি বলতে পারে, কারণ আমি এটি ব্যাশ স্ক্রিপ্টে ব্যবহার করতে চাই use
টিম

@ টিম top-বি সুইচ দিয়ে ব্যাচ মোডে চলতে পারে। আপনার প্রয়োজনীয় পুনরাবৃত্তির সংখ্যা পেতে এটি -n সুইচের সাথে একত্রিত করুন।
নাগুল

1
কোনও ব্যবহারকারীর দ্বারা জমা দেওয়া সমস্ত কাজ (প্রক্রিয়া) দ্বারা ব্যবহৃত করের সংখ্যা অর্জনের জন্য আপনি কোডের উদাহরণ দিতে পারেন?
টিম

@ টিম ব্যাট অফ না। topকেউ হয় ইতিমধ্যে এটি সম্পন্ন করেছে কিনা তা জানতে আমাকে হয় আউটপুটটি গুগল করে গুগল লিখতে হবে। যাইহোক, আমি তার প্রচেষ্টাটির পক্ষে নিশ্চিত নই কারণ আমি মনে করি যে প্রসঙ্গে স্যুইচিং ঘটে সেই গতি প্রদানে প্রতিটি রানের জন্য আমি আলাদা আউটপুট পাব। সিস্টেমটি কি যথেষ্ট পরিমাণে ভাল সূচক লোড করে না? এটি কার্যকরভাবে আপনাকে জানায় যে প্রক্রিয়া সারি (সিপিইউতে অপেক্ষা করা প্রক্রিয়া) পরিচালনা করতে কয়টি ভার্চুয়াল কোর প্রয়োজন।
নাগুল

@ নাগুল: হ্যাঁ সিস্টেম লোড ভাল এবং আমি এটিও পরীক্ষা করে দেখি। তবে কিছু লোক আমাকে বলে রাখে যে আমি সমস্ত কোর ব্যবহার করতে পারি না কারণ কে জানে যে শীঘ্রই তাদের কাজ চালানো হবে। সুতরাং আমি অনুমান করি যে আমি যে کورগুলি ব্যবহার করছি তা সীমাবদ্ধ করতে হবে। যাইহোক, আপনি কি কোথাও এমন অনলাইন স্ক্রিপ্টগুলি দেখেছেন যা সিপিইউ এবং মেমরির লোড চেক করে এবং ব্যবহারের ভিত্তিতে গতিশীলভাবে কাজ জমা দেয়? আমি এতক্ষণ তাদের খুঁজছি looking ধন্যবাদ!
টিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.