คำสั่ง Linux Vmstat

Kha Sang Linux Vmstat



ในคู่มือนี้ เราจะสาธิตวิธีต่างๆ ในการใช้คำสั่ง “vmstat” ใน Linux

ข้อกำหนดเบื้องต้น:

เพื่อดำเนินการตามขั้นตอนที่แสดงให้เห็นในคู่มือนี้ คุณต้องมีส่วนประกอบต่อไปนี้:

  • ระบบ Linux ที่กำหนดค่าอย่างเหมาะสม เพื่อวัตถุประสงค์ในการทดสอบ พิจารณาใช้ Linux VM -
  • เข้าถึงก ผู้ใช้ที่ไม่ใช่รูทที่มีสิทธิ์ sudo
  • ความเข้าใจพื้นฐานเกี่ยวกับอินเทอร์เฟซบรรทัดคำสั่ง

หน่วยความจำเสมือนใน Linux

หน่วยความจำกายภาพหรือที่เรียกว่า RAM มีจำนวนจำกัด เคอร์เนลมีหน้าที่กระจายพื้นที่นี้ไปยังโปรแกรมที่ทำงานอยู่ทั้งหมด โปรแกรมที่ทำงานอยู่ทั้งหมด (รวมถึงระบบปฏิบัติการ) อยู่ใน RAM







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



หน่วยความจำเสมือนหมายถึงพื้นที่ดิสก์เฉพาะบน HDD/SSD ของคุณซึ่งสามารถทำหน้าที่เป็นหน่วยความจำเพิ่มเติมในสถานการณ์ที่เลวร้าย เนื่องจากทำหน้าที่เป็นพื้นที่ RAM (แต่ไม่ใช่จริงๆ) จึงถือเป็น 'เสมือน' ในระบบ UNIX/Linux ช่องว่างเหล่านี้เรียกว่าช่องว่างสว็อป



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





ประสิทธิภาพของหน่วยความจำเสมือนจะช้ากว่าหน่วยความจำกายภาพอย่างแน่นอนและเป็นสัดส่วนโดยตรงกับประสิทธิภาพของอุปกรณ์จัดเก็บข้อมูล อย่างไรก็ตาม ในการกำหนดค่าฮาร์ดแวร์เฉพาะ (เช่น การใช้ NVMe SSD) ประสิทธิภาพอาจเทียบเท่ากับ RAM

คำสั่ง Vmstat

คำสั่ง “vmstat” เป็นเครื่องมือตรวจสอบที่รายงานข้อมูลต่างๆ เกี่ยวกับหน่วยความจำเสมือน มีให้ใช้งานบนระบบ Linux ทั้งหมดโดยเป็นส่วนหนึ่งของแพ็คเกจ “sysstat”



โครงสร้างคำสั่งของ “vmstat” เป็นดังนี้:

- vmstat - ตัวเลือก - - ล่าช้า - - นับ -

การใช้งานขั้นพื้นฐาน

หากทำงานโดยไม่มีพารามิเตอร์ใด ๆ “vmstat” จะพิมพ์ข้อมูลระบบตั้งแต่การบู๊ตครั้งล่าสุด:

- vmstat

ผลลัพธ์จะถูกจัดเรียงเป็นหกส่วน:

  • กระบวนการ : สถิติของกระบวนการที่กำลังทำงานอยู่
    • : จำนวนกระบวนการที่ทำงานอยู่
    • : จำนวนกระบวนการสลีป
  • หน่วยความจำ : สถิติการใช้งานหน่วยความจำ
    • สวป : จำนวนหน่วยความจำเสมือนทั้งหมด (พื้นที่สว็อป)
    • ฟรี : พื้นที่สว็อปที่มีอยู่
    • หนัง : จำนวนพื้นที่สว็อปที่ใช้เป็นหน่วยความจำบัฟเฟอร์ชั่วคราว
    • แคช : หน่วยความจำแคชทั้งหมด
  • แลกเปลี่ยน : สถิติเกี่ยวกับพื้นที่สว็อป
    • ใช่ : อัตราการแลกเปลี่ยนเข้า
    • ดังนั้น : อัตราการแลกเปลี่ยนออก
  • นี้ : สถิติ I/O
    • กับ : จำนวนบล็อคที่ได้รับจากอุปกรณ์บล็อค
    • เป็น : จำนวนบล็อกที่ส่งไปยังอุปกรณ์บล็อก
  • ระบบ : สถิติการตั้งเวลา
    • ใน : จำนวนการขัดจังหวะของระบบ
    • ซีเอส : อัตราของการสลับบริบท
  • ซีพียู : สถิติ CPU ต่างๆ
    • เรา : CPU ใช้เวลากับกระบวนการที่ไม่ใช่เคอร์เนล
    • และ : CPU ใช้เวลากับกระบวนการเคอร์เนล
    • รหัส : CPU ใช้เวลาว่าง
    • ของ : CPU ใช้เวลาในการรอให้การดำเนินการ I/O เสร็จสิ้น
    • เซนต์ : เวลา CPU ที่ใช้โดยเครื่องเสมือน

การเปลี่ยนหน่วยแสดงผล

ตามค่าเริ่มต้น “vmstat” จะรายงานค่าหน่วยความจำเป็นกิโลไบต์ หากต้องการเปลี่ยนหน่วย ให้ใช้ปุ่ม “ -ส ' ธง:

- vmstat -ส - การโต้แย้ง -

ที่นี่ “vmstat” พิมพ์ค่าเป็นเมกะไบต์

มีหน่วยความจำหลายหน่วยให้เลือก:

  • : 1048576 ไบต์ (2^20 ไบต์)
  • : 1000000 ไบต์ (1,000 กิโลไบต์)
  • เค : 1024 ไบต์ (1 เมกะไบต์)
  • เค : 1,000 ไบต์ (1 กิโลไบต์)

อัพเดตสถิติอย่างต่อเนื่อง

ตามค่าเริ่มต้น “vmstat” จะพิมพ์รายงานหนึ่งครั้ง อย่างไรก็ตาม เราสามารถสั่งให้ “vmstat” จัดทำรายงานต่อเนื่องตามช่วงเวลาที่กำหนดได้ (เป็นวินาที)

โครงสร้างคำสั่งมีดังนี้:

- vmstat - ล่าช้า -

ตัวอย่างเช่น หากต้องการรับสถิติที่อัปเดตทุกๆ 2 วินาที คำสั่งจะเป็นดังนี้:

- vmstat 2

เอาต์พุตจะไม่หยุดเว้นแต่จะสิ้นสุดด้วยตนเองโดยใช้ 'Ctrl + C'

หรืออีกทางหนึ่ง เราสามารถระบุ “vmstat” เพื่อจัดทำสถิติตามจำนวนครั้งที่ระบุ:

- vmstat - ล่าช้า - - นับ -

ตัวอย่างเช่น หากต้องการรับสถิติที่อัปเดตทุกๆ 2 วินาทีเป็นเวลา 5 ครั้ง คำสั่งจะมีลักษณะดังนี้:

- vmstat 2 5

หน่วยความจำที่ใช้งานและไม่ใช้งาน

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

เมื่อใช้ “vmstat” เราสามารถตรวจสอบจำนวนหน่วยความจำที่ใช้งานอยู่และไม่ได้ใช้งานอยู่ได้:

- vmstat -ก

ในที่นี้ คอลัมน์ 'buff' และ 'cache' จะถูกแทนที่ด้วยคอลัมน์ 'inact' และ 'active' ตามลำดับ

หน่วยความจำและการกำหนดเวลา

หากต้องการรับรายงานโดยละเอียดเพิ่มเติมเกี่ยวกับหน่วยความจำและกำหนดเวลา ให้ใช้คำสั่งต่อไปนี้:

- vmstat -ส

ที่นี่:

  • ส่วนที่ 1: ส่วนนี้เกี่ยวข้องกับข้อมูลระบบพื้นฐาน เช่น หน่วยความจำกายภาพทั้งหมด หน่วยความจำที่ใช้งาน/ไม่ได้ใช้งาน หน่วยความจำว่าง/บัฟเฟอร์/แคช ฯลฯ
  • ส่วนที่ 2: สถิติ CPU ต่างๆ
    • CPU ไม่ดี : กระบวนการที่มีลำดับความสำคัญสูงใช้ CPU กี่ครั้ง
    • ซีพียูที่ดี : จำนวนครั้งที่กระบวนการที่มีลำดับความสำคัญต่ำกว่าใช้ CPU
    • ทำเครื่องหมาย CPU ของระบบ : จำนวนครั้งที่เคอร์เนลประมวลผลใช้ CPU
    • CPU ที่ไม่ได้ใช้งานถูกทำเครื่องหมาย : จำนวนครั้งที่ CPU ไม่ทำงาน
    • IO-รอ CPU ติ๊ก : จำนวนครั้งที่ CPU รอการจัดการ I/O
    • IRQ : จำนวนครั้งที่ CPU ได้รับการร้องขอการขัดจังหวะ
    • softirq : จำนวนครั้งที่ CPU ได้รับการร้องขอการขัดจังหวะซอฟต์แวร์
    • เห็บ CPU ที่ถูกขโมย : จำนวนครั้งที่ VM ขโมยเวลา CPU
  • ส่วนที่ 3: สถิติการเพจหน่วยความจำ
  • ส่วนที่ 4: ตัวนับเหตุการณ์

ส้อมตั้งแต่บูต

Forks หมายถึงกระบวนการที่เกิดจากกระบวนการที่มีอยู่ หากต้องการดูสถิติจำนวนทางแยก ให้รันคำสั่งต่อไปนี้:

- vmstat -ฉ

สถิติดิสก์และพาร์ติชัน

คำสั่ง “vmstat” ยังสามารถให้ข้อมูลเกี่ยวกับกิจกรรมของดิสก์ได้อีกด้วย หากต้องการดูสรุปกิจกรรมดิสก์โดยย่อ ให้รันคำสั่งต่อไปนี้:

- vmstat -D

หากต้องการรับรายงานกิจกรรมดิสก์โดยละเอียดเพิ่มเติม (รวมถึงสถิติการอ่าน/เขียน) ให้ใช้คำสั่งต่อไปนี้แทน:

- vmstat -d

ที่นี่:

  • อ่าน
    • ทั้งหมด : จำนวนการอ่านดิสก์ทั้งหมด
    • ผสาน : จำนวนการอ่านกลุ่มทั้งหมด
    • ภาคส่วน : จำนวนเซกเตอร์ทั้งหมดที่อ่าน
    • นางสาว : จำนวนเวลาทั้งหมดในการอ่านข้อมูลจากดิสก์ (หน่วยเป็นมิลลิวินาที)
  • เขียน
    • ทั้งหมด : จำนวนการเขียนดิสก์ทั้งหมด
    • ผสาน : จำนวนการเขียนกลุ่มทั้งหมด
    • ภาคส่วน : จำนวนภาคส่วนที่เขียนทั้งหมด
    • นางสาว : จำนวนเวลาทั้งหมดที่จะเขียนลงดิสก์ (หน่วยเป็นมิลลิวินาที)
  • ไอโอ
    • ใส่ : การอ่าน/เขียนดิสก์ปัจจุบันทั้งหมด
    • วินาที : ระยะเวลาที่ใช้ในการอ่าน/เขียนอย่างต่อเนื่อง (เป็นวินาที)

คำสั่ง 'vmstat' ยังสามารถสร้างรายงานสำหรับพาร์ติชันดิสก์เฉพาะได้ หากต้องการรับรายงานพาร์ติชัน ให้ใช้โครงสร้างคำสั่งต่อไปนี้:

- vmstat -พี - partition_identifier -

สถิติแผ่นพื้น

การจัดสรรแผ่นพื้นได้รับการออกแบบให้เป็นกลไกที่มีประสิทธิภาพสำหรับการจัดสรรหน่วยความจำของวัตถุ เมื่อเปรียบเทียบกับกลไกก่อนหน้านี้ การจัดสรรแบบ Slab ช่วยลดการกระจายตัวของหน่วยความจำ (เกิดจากการจัดสรรหน่วยความจำและการจัดสรรคืน)

หากต้องการตรวจสอบสถิติสแลบของระบบ ให้ใช้คำสั่ง “vmstat” ต่อไปนี้:

- ซูโดะ vmstat -ม

โปรดทราบว่าต้องได้รับอนุญาตจากรูทเพื่อดูสถิติ

ที่นี่:

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

บทสรุป

ในคู่มือนี้ เราได้แสดงวิธีต่างๆ ในการใช้คำสั่ง “vmstat” นอกจากหน่วยความจำเสมือนแล้ว “vmstat” ยังสามารถรายงานสถิติดิสก์ ส้อม แผ่นคอนกรีต และอื่นๆ อีกมากมาย

สนใจที่จะเรียนรู้เกี่ยวกับเครื่องมือตรวจสอบระบบอื่นๆ หรือไม่ เรียนรู้เพิ่มเติมเกี่ยวกับ ท็อป - ฆ่า - ปล ฯลฯ

มีความสุขในการใช้คอมพิวเตอร์!