ภาระเฉลี่ยสูง cpu ต่ำ


11

เซิร์ฟเวอร์ของฉันช้าลงและฉันไม่รู้ว่าทำไม

พิมพ์จากด้านบน:

top - 14:32:50 up 639 days,  6:30,  1 user,  load average: 67.93, 70.63, 79.85
Tasks: 245 total,   1 running, 244 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.9% us,  0.5% sy,  0.0% ni, 94.5% id,  1.0% wa,  0.0% hi,  0.0% si
Mem:   1034784k total,  1021256k used,    13528k free,     4360k buffers
Swap:  1023960k total,   635752k used,   388208k free,    36632k cached

vmstat 10 6

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0 110 795604  12328   3980  46676    0    0     0     0    0     0  4  1 95  1
 0 97 788848  12052   3960  46256 2985   33  3323    33  429     0  2  1  0 97
 0 119 782660  13992   4096  45740 2780   14  2995   360  435     0  2  1  1 96
 0 121 775924  15600   3724  42796 3084    0  3443   136  440     0  2  1  0 98
 0 113 769392  13576   3476  41968 3002    0  3458     7  426     0  2  1  0 97
 0 113 762284  12440   3332  34884 3151    0  3553    61  427     0  2  1  0 97

doitprod2: / var / log # grep -c processor / proc / cpuinfo

2

iostat 2

 tps   Blk_czyt/s   Blk_zapis/s  Blk_czyt   Blk_zapis
sda             166,00      7128,00        52,00      14256        104

ตกลงหลังจากฆ่าและเริ่มกระบวนการบางอย่างก็ใช้ได้ ขอบคุณสำหรับความช่วยเหลือของคุณต่อไป


คุณสามารถรวมการส่งออกของvmstat 10 6? (จะใช้เวลา 60 วินาทีในการทำงาน) และยังgrep -c processor /proc/cpuinfo
James C

คำตอบ / ความคิดเห็นในserverfault.com/q/482832/58957 ทำรายการเหตุผลและคำอธิบายเพิ่มเติมสำหรับอาการเหล่านี้
Nickolay

คำตอบ:


10

คุณอาจจะมีกระบวนการเกี่ยวกับUNINTERRUPTIBLE_SLEEPสถานะโดยปกติพวกเขาจะอยู่ในสถานะนั้นเพราะพวกเขากำลังรอบางสิ่งบางอย่างจากฮาร์ดแวร์เช่นการอ่านจากดิสก์ กระบวนการเหล่านั้นกำลังหลับอย่างมีประสิทธิภาพ (คุณมี 244 กระบวนการนอนหลับ) แต่พวกเขาเข้าสู่การคำนวณโหลดเฉลี่ย ตรวจสอบเซิร์ฟเวอร์ของคุณด้วย IO vmstatและดูว่าคุณมีDสถานะมากมายในtopหรือpsเพื่อยืนยัน

แก้ไข:เห็นvmstatผลลัพธ์ของคุณเพิ่มเติมยืนยันปัญหา IO bคอลัมน์ของคุณภายใต้procsแสดงกระบวนการโดยเฉลี่ย 100 กระบวนการในการพักเครื่องไม่ติดขัด biคอลัมน์ของคุณ(บล็อกอ่านจากอุปกรณ์บล็อก) สูงมากเช่นเดียวกับsiคอลัมน์ (หน่วยความจำที่อ่านจาก swap / disk) ในที่สุดภายใต้cpuส่วนหัวwaคอลัมน์แสดงว่า CPU ของคุณใช้เวลามากกว่า 90% ที่รอให้ IO เสร็จสมบูรณ์

คุณต้องตรวจสอบว่าทำไมคุณถึงมีปัญหากับ IO อาจเป็นเพราะความสามารถของเซิร์ฟเวอร์กระบวนการทำงานไม่ดีและมีเหตุผลอื่น ๆ แต่ก็เป็น IO อย่างแน่นอน


1
คุณสามารถเริ่มมองหาผู้รับผิดชอบได้โดยใช้iotop( apt-get install iotop) นอกจากนี้ในการเรียงลำดับสูงสุดตามหน่วยความจำที่ใช้โดยการกด O (นั่นคือตัวใหญ่ o) จากนั้น n จากนั้นป้อน ผู้ใช้หน่วยความจำสูงสุดอาจเป็นผู้รับผิดชอบการสลับทั้งหมด
Eduardo Ivanec

2

ตรวจสอบ 1.0% wa คุณมีด้านบนถ้ามันได้รับสูง เนื่องจากคุณกดไฟล์ swap อาจเป็นไปได้ที่กระบวนการต่างๆจะรอ I / O

ตรวจสอบ cat /proc/sys/fs/file-nrว่าหมายเลขแรกใกล้กับหมายเลขที่สาม (ไฟล์ที่เปิดเทียบกับไฟล์ที่เปิดทั้งหมด)

คุณอยู่ใน VPS หรือไม่?


/ proc / sys / fs / file-nr 3600 0 102712
Kamilos

อาจเป็นเรื่องเล็กน้อยหากคุณสามารถแบ่งปันซอฟต์แวร์ประเภทที่คุณใช้งานบนเซิร์ฟเวอร์ (เช่น apache, tomcat, glassfish เป็นต้น) แต่แน่นอน ram เพิ่มเติม (สองหรือมากกว่า) จะทำให้เครื่องของคุณดีขึ้น
pataroulis

2

iowait (แสดงรายการในคอลัมน์สุดท้ายเป็น "wa") ที่แสดงในเอาต์พุต vmstat นั้นสูงมาก และมีเพจจิ้งมากมายเกิดขึ้น (หน้าข้อมูลถูกย้ายระหว่างหน่วยความจำฟิสิคัลและการสลับจากดิสก์)

เครื่องนี้จะได้ประโยชน์จาก ram ที่มีอยู่จริง

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