วิธีใช้คำสั่ง sar บน Linux

เผยแพร่แล้ว: 2022-06-16
เทอร์มินัล linux บนหน้าจอแล็ปท็อป
fatmawati achmad zaenuri/Shutterstock.com

คำสั่ง sar ให้คุณดูสถิติประสิทธิภาพสำหรับองค์ประกอบต่างๆ ของคอมพิวเตอร์ Linux ของคุณ สำหรับทั้งข้อมูลแบบเรียลไทม์และข้อมูลย้อนหลัง เราแสดงให้คุณเห็นถึงวิธีใช้ทรัพยากรที่ยอดเยี่ยมนี้

ที่เกี่ยวข้อง: วิธีดูสถิติประสิทธิภาพของระบบบน Chromebook ของคุณ

คำสั่งซาร์

คำสั่ง sar หรือ System Activity Reporter เป็นส่วนหนึ่งของแพ็คเกจ sysstat โดยจะรวบรวมชุดข้อมูลทางสถิติ เช่น ภาระของ CPU, การเพจหน่วยความจำ, การใช้หน่วยความจำ, การใช้สว็อป, I/O เครือข่าย และอื่นๆ อีกมากมาย ข้อมูลนี้ทำให้คุณเข้าถึงข้อมูลนี้ได้ในสแนปชอตแบบเรียลไทม์ ซึ่งแสดงให้คุณเห็นถึงสิ่งที่เกิดขึ้นบนคอมพิวเตอร์ของคุณในขณะนี้ และในรายงานที่ผ่านมา

ทำความเข้าใจเกี่ยวกับ Load Average บน Linux และระบบอื่นๆ ที่คล้ายกับ Unix
ที่เกี่ยวข้อง การทำความเข้าใจโหลดเฉลี่ยบน Linux และระบบอื่นๆ ที่คล้าย Unix

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

คำสั่ง sar ให้คุณสอบปากคำระบบและดูสถิติได้ แต่ก่อนอื่น คุณจะต้องติดตั้งแพ็คเกจ sysstat

การติดตั้ง sysstat Package

การติดตั้ง sysstat นั้นตรงไปตรงมามาก เราใช้ตัวจัดการแพ็คเกจของระบบ Linux ของคุณเพื่อติดตั้ง จากนั้นใช้ systemd เพื่อเปิดใช้งานและเริ่มต้นดีมอนพื้นหลัง

ในการติดตั้ง sysstat บน Ubuntu เราใช้ apt:

 sudo apt ติดตั้ง sysstat 

การติดตั้ง sysstat ด้วย apt บน Ubuntu

ในการติดตั้ง sysstat บน Fedora ให้พิมพ์:

 sudo dnf ติดตั้ง sysstat 

การติดตั้ง sysstat ด้วย dnf บน Fedora

และในการติดตั้ง sysstat บน Manjaro เราใช้ pacman:

 sudo pacman -S sysstat 

การติดตั้ง sysstat ด้วย pacman บน Manjaro

โฆษณา

เมื่อติดตั้ง sysstat ไว้ เราจำเป็นต้องเปิดใช้งานเพื่อให้สามารถทำงานเป็น daemon—กระบวนการเบื้องหลัง—ทุกครั้งที่คุณเปิดเครื่องคอมพิวเตอร์ และเราจำเป็นต้องเริ่มต้นทันทีเพื่อให้สามารถใช้งานได้ทันที เราใช้ systemctl ซึ่งเป็นส่วนหนึ่งของตระกูลยูทิลิตี้ systemd เพื่อเปิดใช้งานและเริ่มต้นภูต

 sudo systemctl เปิดใช้งาน sysstat 

การเปิดใช้งาน sysstat daemon

 sudo systemctl start sysstat 

การเริ่มต้น sysstat daemon

หากต้องการดูว่าคุณกำลังใช้ sar เวอร์ชันใดและเพื่อให้แน่ใจว่ามีการตอบสนอง คุณสามารถใช้ตัวเลือก -V (เวอร์ชัน):

 sar -V 

กำลังตรวจสอบเวอร์ชันของ sar

สถิติแบบเรียลไทม์ด้วย sar

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

สถิติซีพียู

หากต้องการดูสถิติ CPU สามชุดโดยใช้เวลาสองวินาทีระหว่างกัน เราจะใช้คำสั่งนี้ ซึ่งใช้ตัวเลือก -u (CPU) โปรดทราบว่าช่วงเวลานั้นมาก่อน ดังนั้นคำสั่งนี้จึงอ่านว่า "แสดงสถิติ CPU ในขั้นตอนสองวินาทีสำหรับข้อมูลสามชุด"

 sar -u 2 3 

กำลังแสดงสถิติ CPU สามชุด

การยืดหน้าต่างเทอร์มินัลของคุณทำให้ตารางเรียงกันเป็นระเบียบ เพื่อให้อ่านง่ายขึ้น

ส่วนหัวของคอลัมน์แรกคือเวลาที่ดำเนินการคำสั่ง ค่าในคอลัมน์คือเวลาที่รวบรวมข้อมูลแต่ละชุด คอลัมน์อื่นๆ ได้แก่

  • CPU : จำนวนคอร์ของ CPU หรือ ALL สำหรับค่าเฉลี่ยของคอร์ทั้งหมด
  • % ผู้ใช้ : เปอร์เซ็นต์ของเวลาที่ใช้เรียกใช้แอปพลิเคชันที่ระดับผู้ใช้ “ใน userland”
  • %Nice : เปอร์เซ็นต์ของเวลาที่ใช้เรียกใช้แอปพลิเคชันที่ระดับผู้ใช้ โดยมีลำดับความสำคัญที่ดี
  • %system : เปอร์เซ็นต์ของเวลาที่ใช้ในการประมวลผลที่ระดับระบบ ในเคอร์เนล
  • %iowait : เปอร์เซ็นต์ของเวลาที่ CPU ไม่ได้ใช้งานโดยมีการร้องขอดิสก์ I/O ที่รอดำเนินการ
  • %steal : ในเครื่องเสมือน นี่คือเปอร์เซ็นต์ของเวลาที่ CPU เสมือนไม่ได้ใช้งานเนื่องจาก CPU ของโฮสต์ฮาร์ดแวร์กำลังให้บริการเครื่องเสมือนอื่น
  • %idle : เปอร์เซ็นต์ของเวลาที่ CPU ไม่ได้ใช้งานโดยไม่มีการร้องขอดิสก์ I/O ที่รอดำเนินการ
โฆษณา

บรรทัดสุดท้ายคือค่าเฉลี่ยของบรรทัดก่อนหน้า

หากต้องการดูสถิติสำหรับคอร์เฉพาะ ให้ใช้ตัวเลือก -P (ต่อโปรเซสเซอร์) ตามด้วยจำนวนคอร์ของ CPU หรือรายการหรือช่วงของหมายเลขคอร์ เช่น 0,1,4 หรือ 4-8

คำสั่งนี้จะพิจารณาชุดข้อมูลสามชุดโดยใช้เวลา 1 วินาทีระหว่างกัน สำหรับคอร์ 1 โปรดจำไว้ว่า คอร์จะถูกนับจากศูนย์

 sar -P 1 1 3 

กำลังแสดงสถิติ CPU สำหรับคอร์เดียว

สถิติการเพจหน่วยความจำ

ตัวเลือก -B (เพจ) ทำให้ sar แสดงสถิติที่เกี่ยวข้องกับการเพจของหน่วยความจำไปยังฮาร์ดไดรฟ์ เราจะขอข้อมูลสองชุด โดยห่างกันห้าวินาที

 ซาร์ -B 5 2 

กำลังแสดงสถิติการเพจหน่วยความจำ

คอลัมน์ประกอบด้วยข้อมูลต่อไปนี้

  • pgpgin/s : จำนวนกิโลไบต์ทั้งหมดที่ระบบทำการ เพจ (ดึงข้อมูล) จากฮาร์ดไดรฟ์ต่อวินาที
  • pgpgout/s : จำนวนกิโลไบต์ทั้งหมดที่ระบบแยก เพจออก ไปยังฮาร์ดไดรฟ์ต่อวินาที
  • ข้อบกพร่อง/s : จำนวนหน้าข้อบกพร่อง ทั้งเล็กน้อยและหลัก สร้างโดยระบบต่อวินาที
  • majflt/s : จำนวนข้อผิดพลาดหลักที่ระบบสร้างขึ้นต่อวินาที ซึ่งจำเป็นต้องโหลดหน้าหน่วยความจำจากดิสก์
  • pgfree/s : จำนวนหน้าที่วางบนรายการอิสระโดยระบบต่อวินาที
  • pgscank/s : จำนวนหน้าที่สแกนโดยระบบจัดการหน่วยความจำ kswapd daemon ต่อวินาที
  • pgscand/s : จำนวนหน้าที่สแกนโดยตรงต่อวินาที
  • pgsteal/s : จำนวนหน้าที่ระบบเรียกคืนจากแคชต่อวินาที
  • %vmeff : คำนวณเป็น pgsteal / pgscan นี่เป็นตัวบ่งชี้ประสิทธิภาพของการเรียกคืนหน้า

อัตราการถ่ายโอน I/O

หากต้องการดูสถิติ I/O และอัตราการถ่ายโอน ให้ใช้ตัวเลือก -b (หมายเหตุ ตัวพิมพ์เล็ก “b”) เรากำลังขอข้อมูลสามชุดโดยมีเวลาสี่วินาทีระหว่างกัน

 sar -b 4 3 

กำลังแสดงสถิติการถ่ายโอน I/O

นี่คือสิ่งที่คอลัมน์ถือ

  • tps : จำนวนคำขอโอนทั้งหมดต่อวินาทีที่ส่งไปยังอุปกรณ์จริง โปรดทราบว่านี่เป็นจำนวน คำขอ พวกเขาอาจไม่ประสบความสำเร็จทั้งหมด
  • rtps : จำนวนคำขออ่านทั้งหมดต่อวินาทีที่ออกให้กับอุปกรณ์จริง
  • wtps : จำนวนคำขอเขียนทั้งหมดต่อวินาทีที่ออกให้กับอุปกรณ์จริง
  • dtps : จำนวนคำขอยกเลิกทั้งหมดต่อวินาทีที่ออกให้กับอุปกรณ์จริง
  • bread/s : จำนวนข้อมูลทั้งหมดที่อ่านจากอุปกรณ์จริง ตัวเลขนี้กำหนดเป็นบล็อกขนาด 512 ไบต์ต่อวินาที
  • bwrtn/s : จำนวนข้อมูลทั้งหมดที่เขียนไปยังอุปกรณ์จริงเป็นบล็อกต่อวินาที
  • bdscd/s : จำนวนข้อมูลทั้งหมดที่ทิ้งเป็นบล็อคต่อวินาที

มีหมวดหมู่ข้อมูลอีกมากมายที่คุณสามารถเลือกตรวจสอบได้ พวกเขาทั้งหมดใช้ในลักษณะเดียวกัน คุณยังสามารถใช้ตัวเลือก -A (ทั้งหมด) เพื่อดูดัมพ์ของทุกสิ่งที่ sar สามารถโยนใส่คุณได้

ตรวจสอบหน้า sar man สำหรับรายการทั้งหมด

ที่เกี่ยวข้อง: ความเร็วในการอ่าน/เขียนคืออะไร และเหตุใดจึงสำคัญ

สถิติประวัติศาสตร์ด้วย sar

ในการตรวจสอบข้อมูลประวัติใดๆ เป็นเพียงกรณีของการเพิ่มเวลาตัวเลือก -s (เริ่มต้น) และ -e (สิ้นสุด) ให้กับคำสั่ง sar ปกติใดๆ เวลาจะแสดงเป็นนาฬิกาแบบ 24 ชั่วโมง

โฆษณา

หากต้องการดูว่า CPU โหลดเป็นอย่างไรระหว่าง 06:30 ถึง 07:15 วันนี้ เราจะใช้คำสั่งนี้

 sar -u -s 06:30:00 -e 07:15:00 

แสดงข้อมูลย้อนหลังของวันนี้

หากต้องการดูว่าสถานการณ์เป็นอย่างไรในวันก่อนหน้า ให้ใช้ตัวเลขเป็นแฟล็กตัวเลือก ตัวเลขระบุวันที่จะรายงาน ตัวเลือก -1 หมายถึงเมื่อวาน ตัวเลือก -2 หมายถึงเมื่อสองวันก่อน เป็นต้น

มาสร้างรายงานระหว่างเวลา 13:00 น. ถึง 13:00 น. โดยใช้ข้อมูลของเมื่อวาน

 sar -u -1 -s 13:00:00 -e 13:30:00 

แสดงข้อมูลย้อนหลังของเมื่อวาน

อีกวิธีหนึ่งในการระบุวันที่คุณต้องการรายงานคือการใช้ชื่อไฟล์ข้อมูลของวันนั้นบนบรรทัดคำสั่ง เราทำสิ่งนี้ด้วยตัวเลือก -f (ชื่อไฟล์)

ไฟล์รายวันเรียกว่า “saXX” โดยที่ XX จะถูกแทนที่ด้วยวันของเดือน พวกมันถูกสร้างขึ้นในโฟลเดอร์บันทึกของคอมพิวเตอร์ Linux ของคุณ โฟลเดอร์บันทึก sar อาจเรียกว่า “/var/log/sa/” หรือ “/var/log/sysstat/”

โฆษณา

บน Ubuntu มันคือ "/var/log/sysstat/" ดังนั้นรูปแบบของคำสั่งของเราเพื่อดูการใช้งาน CPU ระหว่าง 14:00 น. ถึง 14:30 น. สำหรับวันที่ 21 ของเดือนนี้จะมีลักษณะดังนี้:

 sar -u -s 14:00:00 -e 14:30:00 -f /var/log/sysstat/sa21 

แสดงข้อมูลย้อนหลังจากไฟล์ข้อมูลเฉพาะ

ข้อมูลคือพลัง

และ sar ให้ข้อมูลเพียงพอแก่คุณในการตัดสินใจเกี่ยวกับประสิทธิภาพของคอมพิวเตอร์ของคุณอย่างมีข้อมูล

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

ที่เกี่ยวข้อง: ระบบช้า? วิธีดูว่า Linux เป็นหน่วยความจำ, CPU หรือ IO Bound