วิธีใช้คำสั่ง sar บน Linux
เผยแพร่แล้ว: 2022-06-16 คำสั่ง sar
ให้คุณดูสถิติประสิทธิภาพสำหรับองค์ประกอบต่างๆ ของคอมพิวเตอร์ Linux ของคุณ สำหรับทั้งข้อมูลแบบเรียลไทม์และข้อมูลย้อนหลัง เราแสดงให้คุณเห็นถึงวิธีใช้ทรัพยากรที่ยอดเยี่ยมนี้
ที่เกี่ยวข้อง: วิธีดูสถิติประสิทธิภาพของระบบบน Chromebook ของคุณ
คำสั่งซาร์
คำสั่ง sar
หรือ System Activity Reporter เป็นส่วนหนึ่งของแพ็คเกจ sysstat
โดยจะรวบรวมชุดข้อมูลทางสถิติ เช่น ภาระของ CPU, การเพจหน่วยความจำ, การใช้หน่วยความจำ, การใช้สว็อป, I/O เครือข่าย และอื่นๆ อีกมากมาย ข้อมูลนี้ทำให้คุณเข้าถึงข้อมูลนี้ได้ในสแนปชอตแบบเรียลไทม์ ซึ่งแสดงให้คุณเห็นถึงสิ่งที่เกิดขึ้นบนคอมพิวเตอร์ของคุณในขณะนี้ และในรายงานที่ผ่านมา
มันทำงานในพื้นหลังเป็น daemon โดยรวบรวมข้อมูลทุก ๆ สิบนาที ข้อมูลสำหรับวันปัจจุบันถูกเขียนลงในไฟล์ข้อความ มันถูกแปลงเป็นไฟล์ไบนารีเมื่อเวลาเที่ยงคืนผ่านไป ไฟล์ต่างๆ จะถูกเขียนทับในแต่ละเดือน เพื่อไม่ให้ไปกินความจุของฮาร์ดไดร์ฟของคุณอย่างต่อเนื่อง
คำสั่ง sar
ให้คุณสอบปากคำระบบและดูสถิติได้ แต่ก่อนอื่น คุณจะต้องติดตั้งแพ็คเกจ sysstat
การติดตั้ง sysstat Package
การติดตั้ง sysstat
นั้นตรงไปตรงมามาก เราใช้ตัวจัดการแพ็คเกจของระบบ Linux ของคุณเพื่อติดตั้ง จากนั้นใช้ systemd
เพื่อเปิดใช้งานและเริ่มต้นดีมอนพื้นหลัง
ในการติดตั้ง sysstat
บน Ubuntu เราใช้ apt:
sudo apt ติดตั้ง sysstat
ในการติดตั้ง sysstat
บน Fedora ให้พิมพ์:
sudo dnf ติดตั้ง sysstat
และในการติดตั้ง sysstat บน Manjaro เราใช้ pacman:
sudo pacman -S sysstat
เมื่อติดตั้ง sysstat
ไว้ เราจำเป็นต้องเปิดใช้งานเพื่อให้สามารถทำงานเป็น daemon—กระบวนการเบื้องหลัง—ทุกครั้งที่คุณเปิดเครื่องคอมพิวเตอร์ และเราจำเป็นต้องเริ่มต้นทันทีเพื่อให้สามารถใช้งานได้ทันที เราใช้ systemctl
ซึ่งเป็นส่วนหนึ่งของตระกูลยูทิลิตี้ systemd
เพื่อเปิดใช้งานและเริ่มต้นภูต
sudo systemctl เปิดใช้งาน sysstat
sudo systemctl start sysstat
หากต้องการดูว่าคุณกำลังใช้ sar
เวอร์ชันใดและเพื่อให้แน่ใจว่ามีการตอบสนอง คุณสามารถใช้ตัวเลือก -V
(เวอร์ชัน):
sar -V
สถิติแบบเรียลไทม์ด้วย sar
คุณสามารถใช้ sar
เพื่อดูว่าเกิดอะไรขึ้นภายในคอมพิวเตอร์ของคุณตอนนี้ และเนื่องจากสแนปชอตเป็นเพียงสถานะนั้น—สถานะการเล่น ณ จุดใดเวลาหนึ่ง—และบางครั้ง แนวโน้ม ก็มีประโยชน์มากกว่า คุณจึงขอให้ sar
แสดงสแนปชอตหลายภาพด้วยจำนวนวินาทีที่กำหนดระหว่างกัน
สถิติซีพียู
หากต้องการดูสถิติ CPU สามชุดโดยใช้เวลาสองวินาทีระหว่างกัน เราจะใช้คำสั่งนี้ ซึ่งใช้ตัวเลือก -u
(CPU) โปรดทราบว่าช่วงเวลานั้นมาก่อน ดังนั้นคำสั่งนี้จึงอ่านว่า "แสดงสถิติ CPU ในขั้นตอนสองวินาทีสำหรับข้อมูลสามชุด"
sar -u 2 3
การยืดหน้าต่างเทอร์มินัลของคุณทำให้ตารางเรียงกันเป็นระเบียบ เพื่อให้อ่านง่ายขึ้น
ส่วนหัวของคอลัมน์แรกคือเวลาที่ดำเนินการคำสั่ง ค่าในคอลัมน์คือเวลาที่รวบรวมข้อมูลแต่ละชุด คอลัมน์อื่นๆ ได้แก่
- 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
สถิติการเพจหน่วยความจำ
ตัวเลือก -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
นี่คือสิ่งที่คอลัมน์ถือ
- 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