โหลดเซิร์ฟเวอร์? คำสั่งบนสุด/การใช้งาน CPU/วิธีการคำนวณค่าเฉลี่ยโหลด

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

เพื่อให้เข้าใจสิ่งนี้ จำเป็นต้องเข้าใจคำอธิบายตัวแปรต่อไปนี้

คำอธิบายโดยละเอียดของค่าเฉลี่ยการโหลดคำสั่งสูงสุด

โหลดเซิร์ฟเวอร์? คำสั่งบนสุด/การใช้งาน CPU/วิธีการคำนวณค่าเฉลี่ยโหลด

นี่คือคำแนะนำโดยละเอียดเกี่ยวกับวิธีการใช้งาน ▼

top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd
14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top
1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
  • 5 บรรทัดแรกของพื้นที่สถิติคือสถิติของทั้งระบบ
  • บรรทัดที่ 1 คือข้อมูลคิวงานด้วยuptimeผลการดำเนินการของคำสั่งเหมือนกัน

เนื้อหามีดังนี้:

  • 01:06:48 เวลาปัจจุบัน
  • ขึ้น 1:22 เวลาทำงานของระบบในรูปแบบชั่วโมง:นาที
  • 1 ผู้ใช้ จำนวนผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน
  • โหลดเฉลี่ย: 0.06, 0.60, 0.48 โหลดระบบ ซึ่งเป็นความยาวเฉลี่ยของคิวงาน
  • ค่าทั้งสามคือค่าเฉลี่ยตั้งแต่ 3 นาที 1 นาทีและ 5 นาทีที่แล้วจนถึงปัจจุบัน
  • บรรทัดที่ 2 และ 3 เป็นข้อมูลกระบวนการและ CPU
  •  

เมื่อมี CPU หลายตัว เนื้อหานี้อาจเกิน 2 บรรทัดเนื้อหามีดังนี้:

  • งาน: 29 ​​จำนวนกระบวนการทั้งหมด
  • 1 รัน จำนวนกระบวนการที่ทำงานอยู่
  • 28 sleep จำนวนกระบวนการที่กำลังหลับ
  • 0 หยุด จำนวนของกระบวนการที่หยุด
  • 0 ซอมบี้จำนวนกระบวนการซอมบี้
  • Cpu(s): 0.3% us เปอร์เซ็นต์ของ CPU ที่ครอบครองโดยพื้นที่ผู้ใช้
  • 1.0% sy เปอร์เซ็นต์ของ CPU ที่ครอบครองโดยพื้นที่เคอร์เนล
  • 0.0% ni เปอร์เซ็นต์ของ CPU ที่ถูกครอบครองโดยกระบวนการที่ลำดับความสำคัญเปลี่ยนไปในพื้นที่กระบวนการของผู้ใช้
  • เปอร์เซ็นต์ CPU ที่ไม่ได้ใช้งาน 98.7%
  • 0.0% wa เปอร์เซ็นต์ของเวลา CPU ที่รออินพุตและเอาต์พุต
  • 0.0% สวัสดี
  • 0.0% ซิ

ต่อไปนี้เป็นข้อมูลหน่วยความจำสองบรรทัดสุดท้าย:

  • หน่วยความจำ: หน่วยความจำกายภาพทั้งหมด 191272k
  • 173656k ใช้หน่วยความจำกายภาพทั้งหมดที่ใช้ไป
  • หน่วยความจำว่างทั้งหมดฟรี 17616k
  • บัฟเฟอร์ 22052k จำนวนหน่วยความจำที่ใช้เป็นเคอร์เนลแคช
  • สวอป: พื้นที่สวอปทั้งหมด 192772k
  • ใช้พื้นที่สวอปทั้งหมดที่ใช้ไป 0k
  • 192772k ฟรี พื้นที่สวอปฟรีทั้งหมด
  • พื้นที่สลับบัฟเฟอร์แคชทั้งหมด 123988k

เนื้อหาของหน่วยความจำจะถูกสลับออกไปยังพื้นที่สว็อป จากนั้นจึงกลับเข้าสู่หน่วยความจำ แต่พื้นที่สว็อปที่ใช้ไม่ได้ถูกเขียนทับ

ค่านี้คือขนาดของพื้นที่สลับที่มีเนื้อหาอยู่แล้วในหน่วยความจำ

เมื่อหน่วยความจำที่เกี่ยวข้องถูกสลับอีกครั้ง ไม่จำเป็นต้องเขียนไปยังพื้นที่สลับอีกต่อไป

ข้อมูลโดยละเอียดเกี่ยวกับกระบวนการ ซึ่งแสดงอยู่ใต้พื้นที่สถิติในแต่ละพื้นที่ข้อมูลกระบวนการ

ก่อนอื่น มาทำความเข้าใจความหมายของแต่ละคอลัมน์กันก่อน

ความหมายของชื่อคอลัมน์

  • รหัสกระบวนการ PID
  • รหัสกระบวนการหลัก PPID
  • RUSER ชื่อผู้ใช้จริง
  • UID ID ผู้ใช้ของเจ้าของกระบวนการ
  • ชื่อผู้ใช้ USER ของเจ้าของกระบวนการ
  • GROUP ชื่อกลุ่มของเจ้าของกระบวนการ
  • TTY ชื่อของเทอร์มินัลที่เริ่มกระบวนการกระบวนการที่ไม่ได้เริ่มต้นจากเทอร์มินัลจะแสดงเป็น ?
  • ลำดับความสำคัญในการประชาสัมพันธ์
  • NI คุ้มค่าค่าลบระบุลำดับความสำคัญสูง ค่าบวกระบุลำดับความสำคัญต่ำ
  • P CPU ตัวสุดท้ายที่ใช้ มีความหมายเฉพาะในสภาพแวดล้อมแบบ multi-CPU
  • %CPU เปอร์เซ็นต์ของเวลา CPU ที่ใช้ตั้งแต่การอัพเดตครั้งล่าสุด
  • TIME เวลา CPU ทั้งหมดที่ใช้โดยกระบวนการ หน่วยเป็นวินาที
  • TIME+ เวลา CPU ทั้งหมดที่ใช้โดยกระบวนการ ใน 1/100 วินาที
  • %MEM เปอร์เซ็นต์ของหน่วยความจำกายภาพที่ใช้โดยกระบวนการ
  • จำนวนหน่วยความจำเสมือนทั้งหมดที่ใช้โดยกระบวนการ VIRT ในหน่วย kb VIRT=SWAP+RES
  • ขนาดของหน่วยความจำเสมือนที่ใช้โดยกระบวนการ SWAP ที่จะสลับออก หน่วยเป็น kb
  • ขนาดของหน่วยความจำกายภาพที่ใช้โดยกระบวนการ RES และไม่มีการสลับออกเป็น kb RES=CODE+DATA
  • CODE ขนาดของหน่วยความจำกายภาพที่ถูกครอบครองโดยโค้ดเรียกทำงาน ในหน่วย kb
  • DATA ขนาดของหน่วยความจำกายภาพที่ถูกครอบครองโดยส่วนอื่นที่ไม่ใช่โค้ดปฏิบัติการ (กลุ่มข้อมูล + สแต็ก) ในหน่วย kb
  • ขนาดหน่วยความจำที่แชร์ SHR ในหน่วย kb
  • ความผิดพลาดของหน้า nFLT
  • จำนวนหน้าที่แก้ไขตั้งแต่การเขียน nDRT ครั้งล่าสุด
  • สถานะกระบวนการ S
  • D = สถานะการนอนหลับต่อเนื่อง
  • R = วิ่ง
  • S = นอน
  • T=ติดตาม/หยุด
  • Z = กระบวนการซอมบี้
  • COMMAND ชื่อคำสั่ง/บรรทัดคำสั่ง
  • WCHAN หากกระบวนการอยู่ในโหมดสลีป ให้แสดงชื่อฟังก์ชันระบบสลีป
  • แฟล็กงานแฟล็ก อ้างถึง sched.h

linux โหลดคำแนะนำการดีบักโดยเฉลี่ย

มองไปที่topหลังจากสถานะที่แสดงโดยคำสั่ง จะต้องมีการปรับให้เหมาะสมตามนั้น แต่topคำสั่งแสดงแค่รูปลักษณ์เท่านั้นจึงผ่านได้iostatหรือvmstatสั่งซื้อข้อสังเกตเพิ่มเติม

vmstat เพื่อดูการโหลดระบบ

vmstat
procs -------memory-------- ----swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 100152 2436 97200 289740 0 1 34 45 99 33 0 0 99 0

โพรเทคส์

  • คอลัมน์ r แสดงจำนวนกระบวนการที่ทำงานและรอการแบ่งเวลาของ CPU หากมากกว่า 1 เป็นเวลานาน แสดงว่า CPU ไม่เพียงพอและต้องเพิ่ม CPU
  • คอลัมน์ b ระบุจำนวนกระบวนการที่รอทรัพยากร เช่น การรอ I/O หรือการสลับหน่วยความจำ เป็นต้น

cpu แสดงสถานะการใช้งานของ cpu

  • คอลัมน์ us แสดงเปอร์เซ็นต์ของเวลา CPU ที่ใช้ในโหมดผู้ใช้ เมื่อค่าของเราค่อนข้างสูง แสดงว่ากระบวนการของผู้ใช้กินเวลา CPU มาก แต่ถ้ามากกว่า 50% เป็นเวลานาน จำเป็นต้องพิจารณาปรับโปรแกรมผู้ใช้ให้เหมาะสม
  • คอลัมน์ sy แสดงเปอร์เซ็นต์ของเวลา CPU ที่ใช้โดยกระบวนการเคอร์เนลในที่นี้ ค่าอ้างอิง us + sy คือ 80% หาก us + sy มากกว่า 80% แสดงว่าอาจมี CPU ไม่เพียงพอ
  • คอลัมน์ wa แสดงเปอร์เซ็นต์ของเวลา CPU ที่ใช้โดย IO รอ
  • ค่าอ้างอิงของ wa ที่นี่คือ 30% หาก wa เกิน 30% แสดงว่าการรอ IO นั้นร้ายแรง ซึ่งอาจเกิดจากการสุ่มเข้าถึงดิสก์จำนวนมาก หรือคอขวดแบนด์วิดท์ของดิสก์หรือการเข้าถึงดิสก์ ตัวควบคุม (ส่วนใหญ่บล็อกการทำงาน)
  • คอลัมน์ id แสดงเปอร์เซ็นต์ของเวลาที่ cpu ไม่ได้ใช้งาน

บทความต่อไปนี้จะอธิบายว่า Linux Load Average สูงแค่ไหน?

ฉันควรทำอย่างไรหากโหลด VPS สูงเกินไป

ตอนนี้เว็บไซต์ของฉันไม่สามารถเข้าถึงได้เนื่องจากโหลดสูงเกินไป ฉันควรทำอย่างไร?

สูงสุด – 20:44:30 อัพ 12 นาที 1 ผู้ใช้ โหลดเฉลี่ย: 2.21, 8.39, 6.48

  • เซิร์ฟเวอร์ของคุณเป็นแบบจัดการตัวเอง สิ่งที่คุณควรทำคือตรวจสอบเซิร์ฟเวอร์ของคุณผ่าน SSH
  • ตรวจสอบสิ่งที่ทำงาน?กระบวนการอะไร?
  • หากจำเป็น ให้ลองรีสตาร์ทเซิร์ฟเวอร์
  • หากหลังจากรีสตาร์ทเซิร์ฟเวอร์แล้ว โหลดยังคงสูงเกินไป ให้ลองระบุกระบวนการโอเวอร์โหลดและหยุดการทำงาน
  • หากจำเป็น ให้เริ่มกระบวนการใหม่ (ไม่ใช่เซิร์ฟเวอร์) ทีละรายการ
  • หรือหลังจากปรึกษาฝ่ายบริการลูกค้าแล้ว "ทำไม VPS/เซิร์ฟเวอร์โหลดสูงเกินไป" ก็ยังไม่มีวิธีที่จะทำ และสุดท้ายวิธีเดียวคือเพิ่มการกำหนดค่าเซิร์ฟเวอร์

พื้นที่เท่าไหร่จึงจะเหมาะกับเว็บไซต์ของบริษัทการค้าต่างประเทศ?

วิธีการเลือกการกำหนดค่าเซิร์ฟเวอร์ที่เหมาะสม?คลิกลิงก์ด้านล่างเพื่อดูโซลูชันเซิร์ฟเวอร์ 1 IP เฉลี่ยรายวัน ▼

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แชร์ "โหลดเซิร์ฟเวอร์? คำสั่งบนสุด / การใช้ซีพียู / วิธีการคำนวณค่าเฉลี่ยโหลด" มันจะช่วยคุณได้

ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-1029.html

ยินดีต้อนรับสู่ช่อง Telegram ของบล็อกของ Chen Weiliang เพื่อรับข่าวสารล่าสุด!

🔔 เป็นคนแรกที่ได้รับ "คู่มือการใช้งานเครื่องมือ AI การตลาดเนื้อหา ChatGPT" อันทรงคุณค่าในไดเรกทอรีด้านบนของช่อง! 🌟
📚 คู่มือนี้มีคุณค่ามหาศาล 🌟 นี่เป็นโอกาสที่หายาก อย่าพลาด! ⏰⌛💨
แชร์และชอบถ้าคุณชอบ!
การแบ่งปันและไลค์ของคุณเป็นแรงจูงใจอย่างต่อเนื่องของเรา!

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注