আমি কীভাবে লিনাক্সে হার্ড ডিস্ক লোড নিরীক্ষণ করতে পারি?


101

লিনাক্সে হার্ড ডিস্ক লোড নিরীক্ষণের জন্য কি কোনও ভাল কমান্ড লাইন ইউটিলিটি আছে? এর মতো কিছু topকিন্তু এরপরে ডিস্কের ক্রিয়াকলাপটি আইসো সিপিইউ ব্যবহার পর্যবেক্ষণ করে।

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

আমার আদর্শ সরঞ্জামটি এমন কিছু হবে যা "আপনি এখনই আপনার ডিস্ক ব্যান্ডউইথের 35% ব্যবহার করছেন" মুদ্রণ করে। কোন ধারনা?


1
নিখুঁত প্রশ্ন, আমি যা খুঁজছিলাম ঠিক
সেটাই

যেমন সরাসরি সিএসএফএস পড়া সম্ভব /sys/block/sda/stat। ক্ষেত্র # 1 মোট পাঠকের # দেয়, ক্ষেত্র # 5 হ'ল মোট # লেখকের, ক্ষেত্র # 9 হল I / O ক্রিয়াকলাপের অগ্রগতি সংখ্যা। Kernel.org/doc/Docamentation/iostats.txt এ আরও দেখুন মানগুলি দীর্ঘ স্বাক্ষরযুক্ত এবং মোড়তে পারে।
সস্তানিন

এটি একটি খুব ভাল প্রশ্ন কারণ আমরা সর্বদা প্লেস্ক সার্ভারে এই সমস্যার সাথে লড়াই করছি। তবে যা নিখোঁজ তা হ'ল how do you do it with SNMP?। লগ ইন এবং স্টাফ চেক করা ভাল, তবে সত্যই oneতিহাসিক ডেটা প্রয়োজন।
ইউজিন ভ্যান ডার মেরভে

উত্তর:


83

আপনি এই iostatসরঞ্জামটি ব্যবহার করে খুব সুন্দর একটি পরিমাপ পেতে পারেন ।

% iostat -dx /dev/sda 5

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.78    11.03    1.19    2.82    72.98   111.07    45.80     0.13   32.78   1.60   0.64

ডিস্ক ব্যবহার শেষ কলামে তালিকাভুক্ত করা হয়। এটি হিসাবে সংজ্ঞায়িত করা হয়

সিপিইউর সময়ের শতাংশ যার সময় ডিভাইসে আই / ও অনুরোধ জারি করা হয়েছিল (ডিভাইসের জন্য ব্যান্ড-প্রস্থের ব্যবহার)। এই মানটি 100% এর কাছাকাছি থাকলে ডিভাইস স্যাচুরেশন হয়।


3
এটি কোন প্যাকেজে ডেবিয়ানে থাকে, যদি থাকে? apt-cache dump
আইওস্যাট-এর

9
@ ব্রায়ান: এটি সিস্টেস্ট প্যাকেজে রয়েছে (যাইহোক ইয়ামের মাধ্যমে ...)
জো

এটি RHEL 6.5 এ খুঁজে পেল না find এটি কি আরএইচইএল-এর জন্য পাওয়া যায়?
হাজোক

দেরি না করেই কি এই কাজটি করা যায়? নমুনা নিতে না পারায় সম্ভবত একই সংখ্যা থেকে তথ্য পাওয়ার জন্য একক দৌড়ানোর চেষ্টা করা হচ্ছে ???
উইল্ফ

@ হ্যাজোক এটি আরএইচএল .5.৫ এর সিস্টেস্ট আরপিএমের একটি অংশ।
জেনারাল

81

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

এখানে চিত্র বর্ণনা লিখুন

পুরানো কার্নেলগুলির জন্য (CentOS 5.x বা RHEL 5.x বলুন) যা iotop সমর্থন করে না, তার পরিবর্তে টপিও ব্যবহার করুন (এখানে নথিভুক্ত: http://yong321.freehell.org/freeware/pio.html#linux । / এটি নির্ভর করে / আইও পরিসংখ্যানগুলির জন্য প্রো // // আইও এবং আইওটপের মতো অনুরূপ কার্যকারিতা সরবরাহ করে further আরও তথ্যের জন্য লিঙ্কটি দেখুন।


1
প্রকৃতপক্ষে, উবুন্টুতে এটি ডিফল্টরূপে ইনস্টল করা হয়নি, সুতরাং যে কোনওটি ইস্যু করতে পারে: sudo apt-get ইনস্টল iotop এটি পেতে
মোশে

1
আইটপটির 2.6.20 এর চেয়ে বেশি কার্নেল প্রয়োজন, যা দুর্ভাগ্যক্রমে রেডহ্যাট এল 4 এবং এল 5 উভয়েরই বিধান করে।
ডেভ চেনি

2
রেডহ্যাট 5.4 হিসাবে, আইটপ কাজ করতে প্রয়োজনীয় বিটগুলি ব্যাকপোর্ট করা হয়েছে। উপভোগ করুন!
ডেভ চেনি

এটি ফেডোরায় রয়েছে :) :)
জ্যামি

13

মন্তব্য sastanin দ্বারা প্রস্তাবিত হিসাবে, আপনি প্রক্রিয়া করতে পারি সরাসরি দেওয়া মান /sys/block/sda/statবা /proc/diskstats। উল্লিখিত সরঞ্জামগুলির মধ্যে যে কোনও একটিও উপলভ্য নয় এবং আপনি সেগুলি সহজে ইনস্টল করতে পারবেন না যখন এটি সহায়ক হতে পারে।

উদাহরণস্বরূপ (IIUC) এর মতো (ব্যাশে) প্রতি সেকেন্ডে পঠনের সংখ্যা দেওয়া উচিত:

OLD=`awk '{print $1}' /sys/block/sda/stat` # First field is number of read I/Os processed
DT=1
for ii in `seq 1 10`
do
    sleep $DT
    NEW=`awk '{print $1}' /sys/block/sda/stat`
    echo $((($NEW-$OLD)/$DT))
    OLD=$NEW
done

ডকুমেন্টেশনের জন্য https://www.kernel.org/doc/Docamentation/iostats.txt এবং https://www.kernel.org/doc/Docamentation/ block / stat.txt দেখুন ।


7

আপনার উপরের দিকে একবার নজর দেওয়া উচিত , যা আইওটপ / শীর্ষ / আইফটপের শক্তিগুলিকে এক জায়গায় একত্রিত করে এবং আপনার সিস্টেমে গুরুত্বপূর্ণ অংশগুলি হাইলাইট করে।


5

আমি নামন সরঞ্জামটি একবার দেখে নেওয়ার পরামর্শ দেব। এটি আপনাকে বেশিরভাগ সিস্টেমের পরামিতিগুলিতে লাইভ লোডের পাশাপাশি পরবর্তীতে পার্সুলের জন্য কোনও ফাইলে ডেটা রেকর্ডিং প্রদর্শন করবে। এটি এখানে একটি নিখরচায় সরঞ্জাম উপলব্ধ :


5

আপনার মোট ব্যান্ডউইথটি কী তা আপনি ডিভাইস পড়ার পারফরম্যান্স hdparm -T /dev/sdaপরীক্ষা করতে বাফার ক্যাশে (ফাইলিও) পারফরম্যান্স পরীক্ষা করতে ব্যবহার করতে পারেন hdparm -t /dev/sda

উদাহরণ: আমার ল্যাপটপটি সাটা ডিস্ক থেকে 82MB / সেকেন্ড এবং ক্যাশে থেকে 2 জিবি / সেকেন্ড পায়। আমার ডিকস্টপ ক্যাশে থেকে 12 গিগাবাইট / সেকেন্ড এবং এইচডাব্লুএইচআইডি অ্যারে থেকে 500 এমবি / সেকেন্ড পায়। আমি সন্দেহ করি যে সার্ভার ক্লাস হার্ডওয়্যারগুলিতে এই শেষ সংখ্যাগুলি দ্বিগুণ হতে পারে।

256, 4096 এর চেয়ে বেশি উচ্চতর সেটটি আমার পক্ষে সেরা কাজ করে

for i in 128 256 512 1024 2048 4096 8192 16384 32768  
do  
hdparm --setra $i  
  for j in 1 2 4 8 16 32  
  do  
  time dd if=/dev/sda of=/dev/null bs="$j"k  count=<fixthis> 1GB / blocksize  
  done  
done  

বিভিন্ন ব্লক মাপ এবং বিভিন্ন পঠন-সামনের সময়ে 1 জিবি পড়ার সময়


এসএফ স্বাগতম। আপনি আপনার পোস্টগুলিতে স্ট্রিংগুলির চারপাশে ব্যাককোট রেখে বা অনুচ্ছেদে অনুচ্ছেদে কোড হাইলাইটিং ব্যবহার করতে পারেন।
haphink

দুটি জিনিস - ১) --setraএখন -a, এবং ২), hdparm -{T,t}কমান্ডগুলি কেবলমাত্র ডিস্ক পড়ার ইস্যু করে strace, সুতরাং এটি অপরিহার্য। (ইন্টারনেটে পরামর্শ সম্পর্কে স্ট্যান্ডার্ড অস্বীকৃতি প্রযোজ্য)
i336_

4

হার্ড ডিস্ক লোড দেখানোর জন্য মানক সরঞ্জামটি iostat

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


3

আমি মনে করি আরআরডিটোলকে আপনি এখানে যা করতে চান তা করা উচিত এটি সিস্টেম ডেটা ডাম্প করার জন্য একটি ডেমন ব্যবহার করে এবং তারপরে আপনার পছন্দমতো এটি প্রক্রিয়া করার অনুমতি দেয়। সিস্টেম লোড পরিমাপ করার জন্য আমি প্রায়শই এটি গ্রাফ ইত্যাদি তৈরিতে ব্যবহার করেছি।

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