อินสแตนซ์ขนาดเล็กของ Amazon EC2 มีการใช้งาน CPU 100%


9

อินสแตนซ์ขนาดเล็กของฉัน Amazon EC2 มีการใช้งาน CPU 100% บ่อยครั้งมาก ฉันมีการติดตั้ง wordpress บนมันเท่านั้น ฉันยังอยู่ในโหมดการผลิตดังนั้นไม่มีผู้ใช้ แต่ฉันได้รับการใช้งาน CPU 100%

มีใครรู้วิธีลดความมันหรือไม่? ฉันได้รับการแจ้งเตือนอีเมลของ Amazon ทุก ๆ ชั่วโมงเพราะสิ่งนั้นมีระยะเวลานานกว่า 300 วินาที

ฉันย้ายฐานข้อมูลของฉันไปที่ RDS แล้ว แต่ไม่ได้แก้ปัญหานั้น มันทำให้ดีขึ้นเล็กน้อย ก่อนที่จะย้ายไปที่ RDS พร้อมฐานข้อมูลของฉันเว็บไซต์ของฉันจะขัดข้องเสมอเมื่อโหลดเพียงหน้าเว็บเดียว

mysqld.log ของฉันมีข้อผิดพลาด 12 ข้อผิดพลาดนั่นคือสาเหตุที่ฉันได้ทำ innodb_buffer_pool_size = 256M ใน my.cnf แต่ไม่ได้นำอะไรมาเลย

จะขอบคุณสำหรับทุกเคล็ดลับ


1
คุณต้องตรวจสอบอินสแตนซ์ของคุณเพื่อดูว่าเกิดอะไรขึ้น คุณไม่ได้บอกว่าคุณใช้ระบบปฏิบัติการรุ่นใด แต่หากใช้ Linux คุณก็สามารถใช้งานได้ง่ายและรวดเร็ว ในระยะยาวคุณควรพิจารณาอย่างอื่น
user9517

ในคำสั่ง linux top กระบวนการอะไรที่กินซีพียูของคุณ กด (Shift + P) เพื่อเรียงลำดับกระบวนการตามการใช้งาน CPU ขอบคุณ Sandeep
ZVIK

ขอบคุณ @lian! ใช่ฉันใช้ Linux เป็นเรื่องปกติที่จะมี CPU สูงถึง 100% หรือไม่ ฉันกำลังตรวจสอบด้วยการเตือนแล้วและได้รับการแจ้งเตือนที่น่ารำคาญนี้ทางอีเมลไม่กี่ครั้งต่อวัน คุณหมายถึง Ec2 ไม่คุ้มค่าหรือไม่โดยเฉพาะกับแพ็คเกจเล็ก ๆ เมื่อลงทุนเป็นจำนวนมาก? ขอบคุณสำหรับความช่วยเหลือของคุณ
Jaba L

ขอบคุณ @ZVIK สำหรับความช่วยเหลือของคุณ! โปรดอธิบายรายละเอียดเพิ่มเติมหน่อยได้ไหม ฉันคิดว่าฉันยังไม่เข้าใจเลย ฉันจะกด (Shift + P) ได้ที่ไหน ในบรรทัดคำสั่ง SSH ขออภัยที่ฉันไม่มีประสบการณ์ อีกสิ่งหนึ่งที่ปรากฏคือ SSH Terminal ของฉันช้ามากหลังจากผ่านไประยะหนึ่ง หากต้องการพิมพ์คำสั่ง ssh และการได้รับคำตอบในบางครั้งอาจใช้เวลานานมากซึ่งอาจล่าช้ามาก ฉันคิดว่ามันเป็นเพราะการใช้งาน CPU เช่นกัน เฉพาะการรีสตาร์ทด้วยคำสั่ง "sudo service httpd stop / start" และ "sudo service mysqld restart" ฉันทำให้มันทำงานได้เร็วขึ้นอีกครั้ง แต่ไม่นาน
Jaba L

@ Jaba LI สมมติว่ามีการรั่วไหลของหน่วยความจำในรหัส
ZVIK

คำตอบ:


7

โปรดทราบว่าm2.microอินสแตนซ์นั้นมีขนาดเล็ก ปริมาณที่แท้จริงของการโหลดจะทำให้พวกเขาสูงสุด

ตามที่ @zvik ชี้ให้เห็นในความคิดเห็นของเขาคุณควรทราบว่ากระบวนการใดที่ใช้หน่วยความจำและ / หรือรอบการทำงานของ CPU มากที่สุด เขาแนะนำให้เรียกใช้topซึ่งเป็นคำสั่งที่พบในการกระจาย Linux โดยการกดShift-Pมันจะจัดเรียงตามการใช้งาน CPU คุณจะต้องใช้ข้อมูลนี้เพื่อค้นหาว่าคอขวดอยู่ที่ไหน ตัวอย่างเช่นหากสิ่งนี้กำลังเรียกใช้ Apache การกำหนดค่าเริ่มต้นสำหรับ Apache อาจเป็นการเปิดใช้งานกระบวนการมากกว่าเซิร์ฟเวอร์ที่สามารถทำได้

ลองเรียกใช้topและดูว่าคำสั่งใดใช้ทรัพยากรมากที่สุด


1
ฉันตรวจสอบแล้วและ Apache กำลังใช้ทรัพยากรให้เกิดประโยชน์สูงสุด m2.micro สามารถโหลดออกมาได้อย่างง่ายดายจริงๆ ฉันคิดว่าฉันสามารถใช้ micro สำหรับไซต์การผลิตขนาดเล็กได้ ขอบคุณสำหรับความช่วยเหลือของคุณ
Jaba L

15

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

โดยพื้นฐานแล้ว VM ของคุณไม่ได้ใช้งานและ Amazon กำลัง "ยืม" บางรอบ CPU ของคุณเพื่อมอบให้กับคนอื่น ๆ ที่ต้องการ - นี่คือการปฏิบัติมาตรฐานสำหรับสภาพแวดล้อมเสมือนจริงที่ทรัพยากรเซิร์ฟเวอร์ทางกายภาพเช่นการใช้ RAM และรอบ CPU มักจะมุ่งมั่นอย่างมาก .

หากต้องการตรวจสอบ CPU ขโมยให้รันtopและดู%stค่าที่ไฮไลต์ที่นี่:

เอาต์พุตคำสั่งสูงสุด

หากค่านี้เป็นอย่างอื่นที่ไม่ใช่ศูนย์แสดงว่าซีพียูของ VM ของคุณกำลังถูก "ยืม"


1
ขอบคุณ @ craig-watson มากสำหรับคำตอบของคุณ ฉันเพิ่งตรวจสอบ% st และอยู่ระหว่าง 0-5% ขอบคุณสำหรับลิงค์ด้วยที่ให้ข้อมูลมาก
Jaba L
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.