سؤال كيف يمكنني مراقبة تحميل القرص الصلب على Linux؟


هل هناك أداة سطر الأوامر الجيدة لمراقبة تحميل القرص الصلب على لينكس؟ شيء مثل top ولكن بعد ذلك مراقبة نشاط القرص i.s.o. استخدام المعالج.

بشكل أكثر تحديدًا ، أظن أنه بالنسبة لبعض خوادم (التحميل الثقيل) بعد عدة تحسينات على أجزاء مختلفة من البرنامج (البرامج) التي تعمل عليه ، فإن عنق الزجاجة هو ببساطة تسجيل الملفات على القرص. ولكنني أجد صعوبة كبيرة في تقدير عدد الزيارات التي يمكن للخوادم التعامل معها.

ستكون أداتي المثالية عبارة عن شيء يطبع "أنت تستخدم 35٪ من عرض النطاق الترددي للقرص في الوقت الحالي". أيه أفكار؟


88
2018-05-18 13:56


الأصل


السؤال المثالي ، هو بالضبط ما كنت أبحث عنه =) - rafa.ferreira
من الممكن قراءة sysfs مباشرة ، مثل /sys/block/sda/stat. الحقل # 1 يعطي إجمالي عدد عمليات القراءة ، الحقل رقم 5 هو إجمالي عدد عمليات الكتابة ، الحقل رقم 9 هو عدد عمليات الإدخال / الإخراج قيد التقدم. شاهد المزيد في kernel.org/doc/Documentation/iostats.txt القيم غير الموقعة طويلة وقد يتم التفاف. - sastanin
هذا سؤال جيد جدًا لأننا نكافح دائمًا مع هذه المشكلة على خوادم Plesk. ومع ذلك ، ما هو مفقود how do you do it with SNMP?. لا بأس في تسجيل الدخول والتحقق من الأشياء ، ولكن يحتاج المرء بالفعل إلى بيانات تاريخية. - Eugene van der Merwe
unix.stackexchange.com/questions/55212/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


الأجوبة:


يمكنك الحصول على مقياس جيد لهذا باستخدام 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

يتم سرد استخدام القرص في العمود الأخير. هذا هو تعريف

النسبة المئوية لوقت وحدة المعالجة المركزية التي تم خلالها إصدار طلبات I / O إلى الجهاز   (استخدام النطاق الترددي للجهاز). تشبع الجهاز   يحدث عندما تكون هذه القيمة قريبة من 100٪.


77
2018-05-18 14:15



ما هي الحزمة التي يقيمها هذا في دبيان ، إن وجدت؟ apt-cache dump لم يحوّل أي شيء إلى iostat - hBy2Py
Brian: إنه في حزمة sysstat (من خلال yum على أي حال ...) - Joe
لا يمكن العثور على هذا RHEL 6.5. هل هذا متاح لـ RHEL؟ - Hazok
هل يمكن لهذا العمل دون الاضطرار إلى مواصلة التأخير؟ محاولة تشغيل مثيل واحد للحصول على البيانات من يحصل على نفس الرقم كما يفترض أنه لا يمكن أخذ عينات ؟؟ - Wilf
Hazok وهو جزء من RPM sysstat على RHEL 6.5. - TheGeneral


iotop هو إصدار من أعلى ينظر إلى مقدار ما تستخدمه كل عملية. إنه في مستودعات أوبونتو القياسية ؛ لا أعرف ما إذا كان في RHEL أو فيدورا ، ولكن ينبغي أن يكون.

enter image description here

بالنسبة للحبيبات الأقدم (قل CentOS 5.x أو RHEL 5.x) التي لا تدعم iotop ، استخدم topio بدلاً من ذلك (موثقة هنا: http://yong321.freeshell.org/freeware/pio.html#linux. وهو يعتمد على / proc // io لإحصائيات io ويوفر وظائف مشابهة لـ iotop. انظر الرابط لمزيد من التفاصيل.


75
2018-05-18 14:14



في الواقع ، لم يتم تثبيته افتراضيًا في Ubuntu ، لذا يمكن للمرء أن يصدر: sudo apt-get install iotop to get it - Moshe
يتطلب iotop نواة أعلى من 2.6.20 ، والتي تستبعد للأسف كل من RedHat el4 و el5. - Dave Cheney
اعتبارا من RedHat 5.4 ، تم إرجاع الأجزاء المطلوبة لجعل عمل iotop. استمتع! - Dave Cheney
إنه في فيدورا :). - jamie


كما اقترحه sastanin في التعليقات ، يمكنك معالجة القيم المباشرة الواردة في /sys/block/sda/stat أو /proc/diskstats. قد يكون هذا مفيدًا عندما لا تتوفر أي من الأدوات الأخرى المذكورة ولا يمكنك تثبيتها بسهولة.

على سبيل المثال (IIUC) شيء من هذا القبيل (في bash) يجب أن يعطي عدد القراءات في الثانية:

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/Documentation/iostats.txt و https://www.kernel.org/doc/Documentation/block/stat.txt للوثائق.


12
2017-07-22 10:16





يجب عليك إلقاء نظرة على فوقوالذي يجمع بين قوة iotop / top / iftop ، وكل ذلك في مكان واحد ، ويسلط الضوء على الأجزاء المهمة في نظامك.


5
2018-03-01 04:42





أوصي بأخذ نظرة على أداة nmon. سيظهر لك تحميل مباشر على عدد من معلمات النظام وكذلك تسجيل البيانات إلى ملف لإطلاعه لاحقًا. إنها أداة مجانية متاحة هنا:


4
2018-05-18 15:52





لمعرفة ما هو إجمالي النطاق الترددي الذي تستخدمه hdparm -T /dev/sda لاختبار أداء ذاكرة التخزين المؤقت (Fileio) hdparm -t /dev/sda لاختبار الجهاز قراءة الأداء

أمثلة: يحصل الكمبيوتر المحمول على 82 ميجا بايت / ثانية من قرص SATA و 2 جيجابايت / ثانية من ذاكرة التخزين المؤقت. يحصل ديكيستوبي على 12 جيجابايت / ثانية من ذاكرة التخزين المؤقت و 500 ميجابايت / ثانية من مجموعة HW RAID. أظن أن هذه الأرقام الأخيرة يمكن أن تكون مزدوجة على أجهزة فئة الخادم.

تعيين readahead أعلى من 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 غيغابايت في أحجام كتل مختلفة ومختلفة للقراءة


4
2018-05-18 15:58



مرحبا بك في SF. يمكنك استخدام تمييز التعليمات البرمجية في مشاركاتك عن طريق وضع backquotes حول السلاسل أو الفقرات indenting. - ℝaphink
شيئين - 1) --setra هو الآن -aو 2) و hdparm -{T,t} الأوامر تصدر فقط قراءات القرص، وفقا ل strace، لذلك هي غير تدميري. (يتم إخلاء المسئولية عن النصيحة على الإنترنت) - i336_


الأداة القياسية لإظهار تحميل القرص الثابت iostat.

لن يخبرك ذلك عن النطاق الترددي العريض للقرص الذي تستخدمه ، نظرًا لأنه لا يعرف مقدار النطاق الترددي الذي يحتوي عليه القرص. على أي حال ، لا يحتوي القرص الخاص بك إلا على الرقم الخاص بالشركة المُصنّعة على عمليات نقل كبيرة للبيانات القريبة.


3
2018-05-18 14:02





أعتقد أن RRDtool يجب أن تفعل ما تريد هنا فإنه يستخدم daemon لتفريغ بيانات النظام ثم يسمح لك بمعالجته كيفما تشاء. لقد استخدمتها في كثير من الأحيان لإنتاج الرسوم البيانية وما إلى ذلك لقياس تحميل النظام.


2
2018-05-18 14:03