วิธีการวินิจฉัย Ubuntu CPU spikes / IO รอ?


19

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

ไม่มีใครรู้วิธีแก้ไขปัญหาประสิทธิภาพการทำงานนี้หรือไม่

แก้ไข: ฉันได้ลองลงชื่อเข้าใช้ด้วย Gnome Classic (ไม่มีเอฟเฟกต์) แทน Unity แต่ยังคงค้างทุกครั้งในชั่วขณะหนึ่ง

แก้ไข: กราฟ CPU ดูเหมือนจะไม่แสดง spikes จริงดังนั้นดูเหมือนว่าคุณถูกและการวินิจฉัยดั้งเดิมของ CPU spikes เป็นปัญหาไม่ถูกต้องตอนนี้ฉันสงสัยว่ารอ IO ฉันจำไม่ได้ว่าเกิดเหตุการณ์นี้ขึ้นในช่วงไม่กี่สัปดาห์ที่ผ่านมาฉันมี Windows 7 Starter ทำงานอยู่ซึ่งทำให้ฉันเชื่อว่าไม่ใช่ (เพียงแค่) ฮาร์ดแวร์ .. มีอะไรที่ฉันสามารถปรับแต่งเพื่อปรับปรุงนี้ได้บ้าง ฉันใช้ Acer Aspire One D257 กับ Ubuntu 11.10

แก้ไข: ผลลัพธ์ของdmesgคือที่http://paste.ubuntu.com/1060054/และ kern.log อยู่ที่http://paste.ubuntu.com/1060055/


คำถามนี้น่าสนใจทั้งในกรณีทั่วไปและคำถามเฉพาะของคุณ
RafałCieślak

1
ด้วยการเปิดกราฟ CPU คุณสามารถทราบได้อย่างแน่นอนว่าเป็น CPU ที่ขัดขวางความเร็วที่ช้าลงหรือไม่ I / O อาจเป็นตัวการอื่นหรือความล่าช้าของเครือข่ายในบางกรณี มันเกิดขึ้นไม่ว่าคุณจะใช้โปรแกรมอะไรในเวลานั้น?
David Oneill

สุดยอดเดวิดฉันจะทำอย่างนั้น ฉันเคยใช้ Vim และ Firefox บนเครื่องนี้พวกเขาจะเปิดตลอดเวลาและมันจะเกิดขึ้นไม่ว่าในเบื้องหน้า ตอนแรกฉันคิดว่ามันเป็นรุ่น ctag อัตโนมัติจาก Vim แต่หลังจากแสดงความคิดเห็นในส่วนนั้นและลบไฟล์ vimrc ทั้งหมดของฉันปัญหายังคงเกิดขึ้น ฉันจะลองกราฟเพื่อดูว่าจริง ๆ แล้วมันคือ CPU spike หรือ IO wait
Jeff Welling

มันไม่ตอบสนองได้อย่างไร ตัวชี้เมาส์ของคุณหยุดปรับปรุงหรือไม่?
AdamKG

ขออภัยสำหรับการตอบกลับที่ล่าช้าฉันคิดว่ามันหยุดตัวชี้ด้วยเช่นกัน แต่มันหยุดเกิดขึ้นหรือฉันไม่ได้สังเกตเห็นเมื่อเร็ว ๆ นี้ ที่น่าสนใจฉันยังมีไดรฟ์สำรองข้อมูล USB ที่เข้ารหัสของฉันเสียบอยู่และติดตั้งบ่อยครั้งเมื่อเร็ว ๆ นี้เช่นกันซึ่งทำให้ฉันสงสัยว่าอาจเกี่ยวข้องกันได้หรือไม่ ฉันกำลังพยายามทำการทดสอบเพิ่มเติมโดยใช้และไม่เสียบไดรฟ์เพื่อตรวจสอบว่า A) เกี่ยวข้องหรือไม่และ B) ตัวชี้หยุดตอบสนองระหว่างหยุดทำงานเหล่านี้
Jeff Welling

คำตอบ:


12

มีเครื่องมือเพิ่มเติมสองอย่างที่คุณอาจต้องการใช้:

หากคุณไม่ได้รับสิ่งที่คุณต้องการจากทั้งสองเครื่องมือแล้วคุณอาจจำเป็นต้องใช้นักพัฒนาเครื่องมือเช่นoprofileหรือSysprof

เครื่องมือทั้งหมดที่มีอยู่ในรายการจาก ubuntu repositories

จากการสังเกตของคุณด้วย usb จากสิ่งที่ฉันได้ยินตัวควบคุม usb บางตัวมีพฤติกรรมที่ไม่สม่ำเสมอด้วยฮาร์ดแวร์บางอย่างซึ่งอาจทำให้เกิดพายุขัดจังหวะสิ่งนี้อาจทำให้คุณอธิบายได้ ลองค้นหา usb interrupt storm และคุณจะได้รับความนิยมไม่มาก


หืมมมฉันจะดูเป็นพายุที่ขัดจังหวะ แต่ปัญหายังคงเกิดขึ้นแม้หลังจากที่ฉันหยุดใช้อุปกรณ์ usb ในระบบนี้เป็นประจำ เวลาส่วนใหญ่ฉันจะเขียนโปรแกรมเกี่ยวกับวิธีการทำงาน (การขนส่ง) และนั่นคือเมื่อฉันจะสังเกตเห็น
Jeff Welling

5

ฉันใช้ฮ็อพมาหลายปีและในที่สุดฉันก็พบวิธีการใช้ประโยชน์จาก Cpu ด้วยตัวเลขและเปอร์เซ็นต์ฉันประหลาดใจที่ฉันพลาดมันไป

ภาพ htop iowait

กด F2

ลูกศรเพื่อ "เมตรที่มีอยู่"

เน้นค่าเฉลี่ย CPU

F5 หรือ F6 เพื่อเพิ่มลงในคอลัมน์

ลูกศรไปที่รายการ "CPU [บาร์]"

กด F4 จนกว่าคุณจะได้รับ "CPU [ข้อความ]"

คุณยังสามารถรับ IORates

F2-> Columns-> มีจำหน่าย

เพิ่ม IO_RATE, IO_READ_RATE, IO_WRITE_RATE


2

วิธีที่ดีที่สุดที่เห็นนี้คือการใช้โปรแกรมประยุกต์บรรทัดคำสั่งที่ชอบtopหรือhtop ติดตั้ง htop

ด้านบน
ด้านบน

htop
htop

คุณจะต้องดูมันสักครู่จนกว่าคุณจะเห็นว่าอะไรทำให้เกิดขัดขวาง (ถ้าเป็นจริงในการใช้งาน CPU และไม่รอ i / o ซึ่งอาจไม่ถูกจับในทุกกรณี)


1
ฉันคุ้นเคยกับด้านบน แต่ไม่ใช่ htop, htop บ่งบอกถึงการรอของ IO / ฉันจะตีความส่วนหนึ่งของมันได้อย่างไร ฉันตรวจสอบคำถามที่พบบ่อยบนเว็บไซต์ htop แต่มันไม่ได้พูดถึง IO รอ
Jeff Welling

@JefWelling: มันไม่ได้ afaik ทั้งสองจะแสดงเป็นการใช้งาน CPU อย่างไรก็ตาม
RolandiXor

มีจอภาพเพิ่มเติมสำหรับกิจกรรม I / O มันเรียกว่า iotop (ดูคำตอบ danjo133s)
FuzzyQ

2

เครื่องมือใหม่และมีประโยชน์มากคือcpustat มันมีส่วนต่อประสานกราฟิกที่ช่วยให้คุณตรวจสอบหลาย pids เมื่อเวลาผ่านไป

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.