ข้อกำหนดเบื้องต้น:
เพื่อดำเนินการตามขั้นตอนที่แสดงให้เห็นในคู่มือนี้ คุณต้องมีส่วนประกอบต่อไปนี้:
- ระบบ 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” ยังสามารถรายงานสถิติดิสก์ ส้อม แผ่นคอนกรีต และอื่นๆ อีกมากมาย
สนใจที่จะเรียนรู้เกี่ยวกับเครื่องมือตรวจสอบระบบอื่นๆ หรือไม่ เรียนรู้เพิ่มเติมเกี่ยวกับ ท็อป - ฆ่า - ปล ฯลฯ
มีความสุขในการใช้คอมพิวเตอร์!