שאלה כיצד ניתן לפקח על עומס הדיסק הקשיח ב- Linux?


האם יש כלי שורת פקודה טובה כדי לפקח על עומס הדיסק הקשיח על לינוקס? משהו כמו top אבל אז ניטור פעילות הדיסק i.s. שימוש במעבד.

באופן ספציפי יותר, אני חושד כי עבור כמה (עומס כבד) שרתים לאחר מספר אופטימיזציות על חלקים שונים של התוכנית (ים) כי לרוץ על זה, עכשיו צוואר הבקבוק הוא פשוט רישום קבצים על הדיסק. אבל אני מוצא את זה מאוד קשה להעריך כמה תנועה השרתים יכולים להתמודד.

הכלי האידיאלי שלי יהיה משהו הדפסים "אתה משתמש 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
@ בריאן: זה בחבילה sysstat (דרך yum בכל מקרה ...) - Joe
לא ניתן למצוא את זה ב- RHEL 6.5. האם זה זמין עבור RHEL? - Hazok
האם זה יכול לעבוד מבלי להמשיך באיחור? מנסה להפעיל מופע יחיד כדי לקבל נתונים מ מקבל את אותו מספר ככל הנראה כפי שהוא לא יכול לקחת דגימות ??? - Wilf
@Hazok זה חלק RPM sysstat על RHEL 6.5. - TheGeneral


יוטופ היא גרסה של הדף זה מסתכל על כמה IO כל תהליך משתמש. זה במאגרים סטנדרטיים של אובונטו; אני לא יודע אם זה ב 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



ואכן, היא לא מותקנת כברירת מחדל באובונטו, כך שניתן להנפיק: sudo apt-get install iot כדי לקבל את זה - Moshe
iotop דורש גרעין גבוה יותר מאשר 2.6.20, אשר למרבה הצער שולטת החוצה הן RedHat el4 ו el5. - Dave Cheney
החל RedHat 5.4, את הביטים הנדרשים כדי לבצע את העבודה iotop כבר backported. תהנה! - Dave Cheney
זה בפדורה :). - jamie


כפי שהוצע על ידי 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/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. זה יראה לך לטעון לחיות על מספר פרמטרים של המערכת, כמו גם נתוני הקלטה לקובץ לעיון מאוחר יותר. זה כלי זמין בחינם כאןYou


4
2018-05-18 15:52





כדי לגלות מה רוחב הפס הכולל שלך אתה יכול להשתמש hdparm -T /dev/sda כדי לבדוק את ביצועי מטמון המאגר (fileio) hdparm -t /dev/sda כדי לבדוק את ביצועי הקריאה במכשיר

דוגמאות: המחשב הנייד שלי מקבל 82MB / sec מהדיסק SATA ו 2GB / sec מן המטמון. שלי dekstop מקבל 12GB / sec מן המטמון ו 500MB / sec מן 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  

פעמים קריאה 1GB בגדלים שונים לחסום שונים קריאה מראש


4
2018-05-18 15:58



ברוכים הבאים ל SF. אתה יכול להשתמש בקוד הדגשת הודעות שלך על ידי לשים backquotes סביב מחרוזות או הזחה פסקאות. - ℝ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