โหลด avg weirdness บน Linux Ubuntu


9

ในช่วงไม่กี่วันที่ผ่านมาฉันพยายามเข้าใจความแปลกประหลาดที่เกิดขึ้นในโครงสร้างพื้นฐานของเรา แต่ฉันไม่สามารถคิดได้ว่ามันเป็นของเราดังนั้นฉันจึงหันไปหาพวกคุณเพื่อให้คำแนะนำ

ฉันสังเกตเห็นใน Graphite, spikes ใน load_avg ซึ่งเกิดขึ้นกับระเบียบที่เป็นอันตรายถึงชีวิตประมาณ 2 ชั่วโมง - มันไม่ได้เกิดขึ้น 2 ชั่วโมง แต่มันก็ปกติมาก ฉันกำลังแนบสกรีนช็อตของสิ่งนี้ที่ฉันได้รับจาก Graphite

Load Averag - คลิกเพื่อดูภาพขยาย

ฉันติดขัดในการตรวจสอบเรื่องนี้ - ความสม่ำเสมอของสิ่งนี้ทำให้ฉันคิดว่ามันเป็นงาน cron หรืออะไรทำนองนั้น แต่ไม่มี cronjobs ทำงานบนเซิร์ฟเวอร์เหล่านี้ - จริง ๆ แล้วนี่คือ VMs ที่ทำงานในคลาวด์ Spacespace สิ่งที่ฉันกำลังมองหาคือสิ่งบ่งชี้ว่าอาจเป็นสาเหตุของปัญหาเหล่านี้และวิธีการตรวจสอบเพิ่มเติม

เซิร์ฟเวอร์ไม่ได้ใช้งานพอสมควร - นี่เป็นสภาพแวดล้อมที่มีการจัดเตรียมดังนั้นจึงแทบไม่มีการรับส่งข้อมูลเข้ามา / ไม่ควรมีการโหลด เหล่านี้คือ VM เสมือน 4 คอร์เสมือน สิ่งที่ฉันรู้แน่นอนคือเรากำลังรวบรวมตัวอย่างของกราไฟต์ทุก ๆ 10 วินาที แต่ถ้านั่นเป็นสาเหตุของการโหลดฉันคาดว่ามันจะสูงอย่างต่อเนื่องมากกว่าที่จะเกิดขึ้นทุก ๆ 2 ชั่วโมงในเซิร์ฟเวอร์ที่แตกต่างกัน

ความช่วยเหลือใด ๆ ในการตรวจสอบสิ่งนี้จะได้รับการชื่นชมอย่างมาก!


นี่คือข้อมูลบางส่วนจาก sar สำหรับ app01 - ซึ่งเป็นเข็มสีน้ำเงินครั้งแรกในภาพด้านบน - ฉันไม่สามารถดึงข้อสรุปใด ๆ จากข้อมูลได้ ไม่ใช่ว่าไบต์เขียนถึงความเร็วที่คุณเห็นว่าเกิดขึ้นทุก ๆ ครึ่งชั่วโมง (ไม่ใช่ทุก ๆ 2 ชั่วโมง) เป็นเพราะเชฟ - ลูกค้าทำงานทุก 30 นาที ฉันจะพยายามรวบรวมข้อมูลเพิ่มเติมแม้ว่าฉันได้ทำไปแล้ว แต่ก็ไม่สามารถสรุปได้จากสิ่งเหล่านั้น

โหลด

09:55:01 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
10:05:01 PM         0       125      1.28      1.26      0.86         0
10:15:01 PM         0       125      0.71      1.08      0.98         0
10:25:01 PM         0       125      4.10      3.59      2.23         0
10:35:01 PM         0       125      0.43      0.94      1.46         3
10:45:01 PM         0       125      0.25      0.45      0.96         0
10:55:01 PM         0       125      0.15      0.27      0.63         0
11:05:01 PM         0       125      0.48      0.33      0.47         0
11:15:01 PM         0       125      0.07      0.28      0.40         0
11:25:01 PM         0       125      0.46      0.32      0.34         0
11:35:01 PM         2       130      0.38      0.47      0.42         0
11:45:01 PM         2       131      0.29      0.40      0.38         0
11:55:01 PM         2       131      0.47      0.53      0.46         0
11:59:01 PM         2       131      0.66      0.70      0.55         0
12:00:01 AM         2       131      0.81      0.74      0.57         0

ซีพียู

09:55:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:05:01 PM     all      5.68      0.00      3.07      0.04      0.11     91.10
10:15:01 PM     all      5.01      0.00      1.70      0.01      0.07     93.21
10:25:01 PM     all      5.06      0.00      1.74      0.02      0.08     93.11
10:35:01 PM     all      5.74      0.00      2.95      0.06      0.13     91.12
10:45:01 PM     all      5.05      0.00      1.76      0.02      0.06     93.10
10:55:01 PM     all      5.02      0.00      1.73      0.02      0.09     93.13
11:05:01 PM     all      5.52      0.00      2.74      0.05      0.08     91.61
11:15:01 PM     all      4.98      0.00      1.76      0.01      0.08     93.17
11:25:01 PM     all      4.99      0.00      1.75      0.01      0.06     93.19
11:35:01 PM     all      5.45      0.00      2.70      0.04      0.05     91.76
11:45:01 PM     all      5.00      0.00      1.71      0.01      0.05     93.23
11:55:01 PM     all      5.02      0.00      1.72      0.01      0.06     93.19
11:59:01 PM     all      5.03      0.00      1.74      0.01      0.06     93.16
12:00:01 AM     all      4.91      0.00      1.68      0.01      0.08     93.33

IO

09:55:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
10:05:01 PM      8.88      0.15      8.72      1.21    422.38
10:15:01 PM      1.49      0.00      1.49      0.00     28.48
10:25:01 PM      1.54      0.00      1.54      0.03     29.61
10:35:01 PM      8.35      0.04      8.31      0.32    411.71
10:45:01 PM      1.58      0.00      1.58      0.00     30.04
10:55:01 PM      1.52      0.00      1.52      0.00     28.36
11:05:01 PM      8.32      0.01      8.31      0.08    410.30
11:15:01 PM      1.54      0.01      1.52      0.43     29.07
11:25:01 PM      1.47      0.00      1.47      0.00     28.39
11:35:01 PM      8.28      0.00      8.28      0.00    410.97
11:45:01 PM      1.49      0.00      1.49      0.00     28.35
11:55:01 PM      1.46      0.00      1.46      0.00     27.93
11:59:01 PM      1.35      0.00      1.35      0.00     26.83
12:00:01 AM      1.60      0.00      1.60      0.00     29.87

เครือข่าย:

10:25:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:35:01 PM      eth1      7.07      4.77      5.24      2.42      0.00      0.00      0.00
10:35:01 PM      eth0      2.30      1.99      0.24      0.51      0.00      0.00      0.00
10:45:01 PM        lo      8.35      8.35      2.18      2.18      0.00      0.00      0.00
10:45:01 PM      eth1      3.69      3.45      0.65      2.22      0.00      0.00      0.00
10:45:01 PM      eth0      1.50      1.33      0.15      0.36      0.00      0.00      0.00
10:55:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
10:55:01 PM      eth1      3.66      3.40      0.64      2.19      0.00      0.00      0.00
10:55:01 PM      eth0      0.79      0.87      0.08      0.29      0.00      0.00      0.00
11:05:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:05:01 PM      eth1      7.29      4.73      5.25      2.41      0.00      0.00      0.00
11:05:01 PM      eth0      0.82      0.89      0.09      0.29      0.00      0.00      0.00
11:15:01 PM        lo      8.34      8.34      2.18      2.18      0.00      0.00      0.00
11:15:01 PM      eth1      3.67      3.30      0.64      2.19      0.00      0.00      0.00
11:15:01 PM      eth0      1.27      1.21      0.11      0.34      0.00      0.00      0.00
11:25:01 PM        lo      8.32      8.32      2.18      2.18      0.00      0.00      0.00
11:25:01 PM      eth1      3.43      3.35      0.63      2.20      0.00      0.00      0.00
11:25:01 PM      eth0      1.13      1.09      0.10      0.32      0.00      0.00      0.00
11:35:01 PM        lo      8.36      8.36      2.18      2.18      0.00      0.00      0.00
11:35:01 PM      eth1      7.16      4.68      5.25      2.40      0.00      0.00      0.00
11:35:01 PM      eth0      1.15      1.12      0.11      0.32      0.00      0.00      0.00
11:45:01 PM        lo      8.37      8.37      2.18      2.18      0.00      0.00      0.00
11:45:01 PM      eth1      3.71      3.51      0.65      2.20      0.00      0.00      0.00
11:45:01 PM      eth0      0.75      0.86      0.08      0.29      0.00      0.00      0.00
11:55:01 PM        lo      8.30      8.30      2.18      2.18      0.00      0.00      0.00
11:55:01 PM      eth1      3.65      3.37      0.64      2.20      0.00      0.00      0.00
11:55:01 PM      eth0      0.74      0.84      0.08      0.28      0.00      0.00      0.00

สำหรับคนที่อยากรู้เกี่ยวกับ cronjobs นี่เป็นบทสรุปของ cronjobs ทั้งหมดที่ติดตั้งบนเซิร์ฟเวอร์ (ฉันเลือก app01 แต่สิ่งนี้เกิดขึ้นกับเซิร์ฟเวอร์อื่น ๆ สองสามตัวด้วยการตั้งค่า cronjobs เดียวกัน)

$ ls -ltr /etc/cron*
-rw-r--r-- 1 root root  722 Apr  2  2012 /etc/crontab

/etc/cron.monthly:
total 0

/etc/cron.hourly:
total 0

/etc/cron.weekly:
total 8
-rwxr-xr-x 1 root root 730 Dec 31  2011 apt-xapian-index
-rwxr-xr-x 1 root root 907 Mar 31  2012 man-db

/etc/cron.daily:
total 68
-rwxr-xr-x 1 root root  2417 Jul  1  2011 popularity-contest
-rwxr-xr-x 1 root root   606 Aug 17  2011 mlocate
-rwxr-xr-x 1 root root   372 Oct  4  2011 logrotate
-rwxr-xr-x 1 root root   469 Dec 16  2011 sysstat
-rwxr-xr-x 1 root root   314 Mar 30  2012 aptitude
-rwxr-xr-x 1 root root   502 Mar 31  2012 bsdmainutils
-rwxr-xr-x 1 root root  1365 Mar 31  2012 man-db
-rwxr-xr-x 1 root root  2947 Apr  2  2012 standard
-rwxr-xr-x 1 root root   249 Apr  9  2012 passwd
-rwxr-xr-x 1 root root   219 Apr 10  2012 apport
-rwxr-xr-x 1 root root   256 Apr 12  2012 dpkg
-rwxr-xr-x 1 root root   214 Apr 20  2012 update-notifier-common
-rwxr-xr-x 1 root root 15399 Apr 20  2012 apt
-rwxr-xr-x 1 root root  1154 Jun  5  2012 ntp

/etc/cron.d:
total 4
-rw-r--r-- 1 root root 395 Jan  6 18:27 sysstat
$ sudo ls -ltr /var/spool/cron/crontabs 
total 0
$

อย่างที่คุณเห็นไม่มี cronjobs ทุกชั่วโมง เฉพาะรายวัน / รายสัปดาห์เป็นต้น

ฉันรวบรวมสถิติมากมาย (vmstat, mpstat, iostat) - แต่ยากที่ฉันพยายามฉันไม่เห็นโอกาสในการขายใด ๆ ที่จะแนะนำองค์ประกอบ VM ใด ๆ ที่ทำงานผิดปกติ ... รู้สึกอิสระที่จะดูสถิติส่วนสำคัญเริ่มต้นด้วย sar -q เอาท์พุทรอบเวลา "กระทำผิด" แล้วคุณจะเห็น vm, mp และ iostats ....

โดยพื้นฐานแล้วมันยังคงเป็นความลึกลับทั้งหมดสำหรับฉัน ...


คุณมีข้อมูลแบบโต้ตอบใด ๆ ที่คุณสามารถแชร์เพื่อตรวจสอบเพิ่มเติมได้หรือไม่ (เช่น 'จอแสดงผล' top ',' htop 'และ' iotop 'ในระหว่างการโหลดที่เกิดซ้ำ)? นอกจากนี้ให้คุณตรวจสอบบันทึกการใช้งานของคุณในช่วงเวลาที่มีปัญหาเพื่อดูว่าพวกเขาแสดงพฤติกรรมแปลก ๆ หรือไม่? นอกจากนี้คุณมีโฮสต์ที่มีการกำหนดค่าที่คล้ายกันซึ่งไม่ได้โฮสต์ไว้บนโครงสร้างพื้นฐานคลาวด์สาธารณะและถ้าเป็นเช่นนั้นพวกเขาจะแสดงพฤติกรรมที่คล้ายกันหรือไม่
esquireofoz

ในแง่ของบันทึกของแอพ - ไม่มีอะไรเกิดขึ้น รายการบันทึกเดียวที่มีอยู่คือการตรวจสอบจากการตรวจสอบซึ่งเกิดขึ้นทุกนาที - โดยทั่วไประบบการตรวจสอบจะเข้าสู่ไซต์หลักและรายงานรหัสผลลัพธ์ - นอกเหนือจากบันทึกนั้นว่างเปล่าอย่างสมบูรณ์ เช่นเดียวกับที่คุณเห็นว่ามีโฮสต์ที่หลากหลายด้านบน - สิ่งนี้เกิดขึ้นกับพวกเขาทุกคน (redis, เซิร์ฟเวอร์แอพ, เซิร์ฟเวอร์เชฟ ฯลฯ )
milosgajdos

คุณลองใช้psacctเพื่อ จำกัด ให้แคบลงไหม?
HTTP500

คุณถือว่าเป็นระเบียบ แต่ข้อมูลที่คุณแสดงไม่ได้แสดงให้เห็นว่ามีอะไรเกิดขึ้นเป็นประจำ .. โปรดระบุช่วงเวลาที่แน่นอนว่ามันแสดงให้เห็นถึงความสม่ำเสมอที่ (ในอีกหลายวันหรือไม่? เรียกใช้ "top -n 1" ทุก ๆ 1mn หรือมากกว่านั้นและเก็บไว้ในไฟล์และสิ่งนี้จะช่วยดูว่ากระบวนการอื่นใดที่กำลังแข่งขันกับ cpu ในเวลาเดียวกันที่มีการขัดขวาง หาก App1 เป็นแอปหันหน้าไปทางอินเทอร์เน็ตอาจเป็นแค่บางคนที่เข้าถึงและบังคับใช้พฤติกรรมดังกล่าวใช่ไหม เพิ่มการบันทึก "netstat -an" ปกติด้วย (ทุกนาทีหรือไม่)
Olivier Dulac

คุณเห็นภาพหน้าจอที่แนบมาหรือไม่? หากนั่นไม่แสดงสถานะปกติฉันไม่รู้ว่าจะทำอะไร ตอนนี้ฉันได้เพิ่มระยะเวลาการสุ่มตัวอย่างสำหรับซาร์ดังนั้นฉันจะสุ่มตัวอย่างทุก 5 นาที ความสม่ำเสมอของรูปภาพนั้นชัดเจนกว่า - เกิดขึ้นทุกสองชั่วโมง นี่เป็นสภาวะแวดล้อมแบบไม่มีการรับส่งข้อมูลใด ๆ ซึ่งคุณสามารถดูได้จากเอาต์พุต sar ด้านบนสำหรับสถิติเครือข่าย
milosgajdos

คำตอบ:


3

น่าสนใจ

ประการแรกคุณสามารถเพิ่มความถี่ของการบันทึก sar ได้หรือไม่ ใช้เวลาประมาณ 10 นาทีพยายามล็อกทุกนาที sysstat cronjob นั้นสามารถกำหนดค่าได้

จากนั้นให้ลองสคริปต์คำสั่งต่อไปนี้

ps auxf > /tmp/ps.out
vmstat 1 50 > /tmp/vm.out
mpstat -P ALL 1 50 > /tmp/mp.out
iostat -xdk 1 50 > /tmp/io.out
cat /proc/meminfo > /tmp/meminfo.out

รวบรวมชุดข้อมูลนี้ในทุก ๆ รอบซ้ำเมื่อค่าเฉลี่ยการโหลดเพิ่มขึ้นด้วยตนเองหรือผ่าน cron มันจะดีถ้ามีข้อมูลอย่างน้อยหนึ่งวันทำงานเต็ม

ตอนนี้ฉันเข้าใจว่าเซิร์ฟเวอร์ไม่ได้ใช้งาน แต่ยังคงมีบางแอปพลิเคชันที่ต้องทำงาน พวกเขาคืออะไร

เป็นไปได้หรือไม่ที่คุณสามารถเรียกใช้เครื่องมือทำโปรไฟล์เช่น perf หรือ oprofile

มีการเปลี่ยนแปลงองค์ประกอบฮาร์ดแวร์เซิร์ฟเวอร์ใด ๆ แม้แต่บางสิ่งบางอย่างที่ไม่น่ากลัวเท่าการอัพเกรดเฟิร์มแวร์หรือการอัพเกรดซอฟต์แวร์

เฮ้คำถามหนึ่งข้อ ตัวกำหนดตารางเวลาที่คุณใช้คืออะไร ฉันเชื่อว่ามันเป็น CFQ โอกาสใด ๆ ที่คุณสามารถเปลี่ยนเป็น noop ใส่elevator=noopในพารามิเตอร์บรรทัดคำสั่งเคอร์เนลและรีบูตระบบและดูว่ามันปรับปรุง


ฉันเพิ่มการแก้ไขเล็กน้อยเกี่ยวกับกำหนดการ โปรดดูผลลัพธ์
Soham Chakraborty

1

เข้าสู่ระบบกระบวนการด้านบน

เนื่องจากการเกิดขึ้นเป็นเรื่องปกติมากให้ติดตั้งงาน cron เพื่อตรวจสอบกระบวนการขั้นสูงในช่วงเวลาดังกล่าว

#app01
20-59 0/2 * * * root /usr/bin/top -b -n 1 | /usr/bin/head -n 15 >> /var/log/top.log

เปลี่ยน20-59เป็น*จะบันทึกชั่วโมงทั้งหมดสำหรับทุก ๆ ชั่วโมง งาน Cron จะทำงานหนึ่งครั้งต่อนาทีในทั้งสองกรณี

คุณอาจต้องการเพิ่มไฟล์ top.log เพื่อบันทึกการหมุนดังนั้นมันจะไม่กินพื้นที่ทั้งหมดในกรณีที่คุณลืมปิดการใช้งาน

ตรวจสอบไฟล์บันทึก

ค้นหารายการล็อกไฟล์ในช่วงเวลาโหลดสูง

ใช้รายการโหลดต่อไปนี้เป็นตัวอย่าง

10:25:01 PM         0       125      4.10      3.59      2.23         0

ทำ

grep ' 22:2' /var/log/*
grep ' 22:2' /var/log/apache2/*

22:2x:xxที่จะแสดงรายการบันทึกทั้งหมด อาจต้องรวมไดเรกทอรีบันทึกอื่น ๆ

อาทิตย์ 6 มกราคม 21:00:07 น.: xvda w_await ขัดขวาง

แผนภูมิ xvda - เข็ม w_await อยู่ที่ Sun Jan 6 21:00:07 น ป้อนคำอธิบายรูปภาพที่นี่


0

สิ่งหนึ่งที่ฉันจะตรวจสอบอย่างแน่นอน:

  • vSphere กราฟสำหรับรูปแบบเดียวกันอาจเป็นอีก VM บนโฮสต์เดียวกันกำลังกิน CPU (ดังนั้นการโหลดบน VM ของคุณจะเพิ่มขึ้นเนื่องจากต้องใช้เวลามากขึ้นในการประมวลผลข้อมูลจำนวนเดียวกันด้วยการไหลคงที่เนื่องจากมีเวลา CPU น้อยลง VM ของคุณ)

แก้ไข: ไม่ได้เป็นครั้งแรก :) คุณกำลังรันบน Rackspace ดังนั้นจึงไม่มีการควบคุมไฮเปอร์ไวเซอร์ แต่มันอาจคุ้มค่าที่จะถาม rackspace ถ้าพวกเขาสามารถตรวจสอบว่ารูปแบบนี้เป็นเรื่องปกติใน VMs อื่น ๆ บนโฮสต์เดียวกัน .


1
ฉันก็สงสัยเช่นกัน - มันจะไม่เป็นครั้งแรกที่ Cloudspace จะก่อให้เกิดความบ้าคลั่งบางอย่าง ฉันสงสัยว่าพวกเขาตรวจสอบเซิร์ฟเวอร์ไฮเปอร์ไวเซอร์ใด ๆ ของพวกเขา - ฉันหมายถึงในแง่ของการใช้งาน VM ที่ไม่ถูกต้อง แต่ฉันต้องการแยกแยะความเป็นไปได้ "ภายใน" ก่อนที่ฉันจะหันไปใช้วิธีสุดท้าย - สนับสนุน Rackspace
milosgajdos

ประสิทธิภาพของไฮเปอร์ไวเซอร์จะส่งผลกระทบต่อโหลดเฉลี่ยที่เห็นได้ชัดของ VM หรือไม่? สิ่งนี้ทำให้ฉันคิดเกี่ยวกับวิธีคำนวณหาค่าเฉลี่ยโหลด นี่อาจเป็นผลกระทบของคุณสมบัติประหยัดพลังงาน / สีเขียวเป็นระยะ ๆ เปลี่ยนเป็นรอบเพื่อคอร์น้อยลงไม่รู้จัก OS? หรือวิธีการเกี่ยวกับการเปลี่ยนแปลงอัตรานาฬิกาแบบไดนามิกขึ้นอยู่กับปัจจัยแวดล้อมเช่น?
trp

ค่าเฉลี่ยของโหลดคำนวณโดยอัลกอริธึมการจัดตารางเวลาในคำง่าย ๆ ถ้าคุณมี 100 งานในคิวการประมวลผลของคุณและ hypervisor นั้นมีประสิทธิภาพ 100% ในการทำงาน 10 งานต่อ 1 วินาทีจากนั้นคุณต้องใช้ 10 วินาทีในการดำเนินงาน 100 ชิ้น มีประสิทธิภาพเพียง 50% (อาจใช้งาน CPU มากเกินไป) จะใช้เวลา 20 วินาทีในการทำงานในปริมาณที่เท่ากันจึงทำให้โหลดเพิ่มขึ้น คำอธิบายที่สมบูรณ์: blog.scoutapp.com/articles/2009/07/31/…
Martino Dino
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.