เมื่อเราเจาะลึกเข้าไปในโลกของการบริหารระบบลินุกซ์สิ่งแรกๆ ที่เราต้องรู้ก็คือ เกิดอะไรขึ้นบ้างภายในเครื่องของเรา คำสั่ง `top`เป็นมาตรฐานที่ได้รับการยอมรับมานานหลายปี เป็นเพื่อนเก่าที่คอยบอกเราเสมอว่ากระบวนการใดกำลังใช้ RAM มากเกินไป หรือทำไมโปรเซสเซอร์ถึงร้อนเกินไป
อย่างไรก็ตาม ระบบนิเวศโอเพนซอร์สไม่ได้หยุดนิ่ง และมีทางเลือกใหม่ๆ เกิดขึ้นมากมายที่ทำให้มอนิเตอร์แบบคลาสสิกดูเหมือนของเก่าจากยุค 90 เครื่องมืออย่างbtopและรุ่นก่อนหน้าได้เข้ามามอบประสบการณ์ที่มองเห็นได้ชัดเจน ใช้งานง่าย และพูดตามตรงคือ น่าพึงพอใจกว่ามาก ทำให้เทอร์มินัลกลายเป็นศูนย์ควบคุมที่ทันสมัย อย่างแท้จริง
หนังสือคลาสสิกที่สำคัญ: การเรียนรู้คำสั่งสูงสุดให้เชี่ยวชาญ
TOP (ซึ่งเป็นคำย่อของTable of Processes ) คือเครื่องมือพื้นฐานที่ติดตั้งมาล่วงหน้าในระบบปฏิบัติการ Linux หรือ UNIX เกือบทุกระบบ หน้าที่ของมันเรียบง่ายแต่สำคัญยิ่ง นั่นคือการช่วยให้เราสามารถตรวจสอบและจัดการงานที่กำลังทำงานอยู่แบบเรียลไทม์ มันเป็นด่านแรกในการตรวจจับกระบวนการซอมบี้การระบุการใช้งาน CPU ที่สูงผิดปกติ หรือเพียงแค่การดึง PID ของแอปพลิเคชันที่หยุดทำงาน
เมื่อเปิดใช้งาน เราจะพบกับอินเทอร์เฟซที่แบ่งออกเป็นหลายส่วน ด้านบนสุด เราจะเห็นเวลาการทำงานของเซิร์ฟเวอร์ (คล้ายกับที่เราเห็นจากคำสั่ง uptime) ซึ่งเราสามารถตรวจสอบเวลาได้ว่าเซิร์ฟเวอร์ทำงานมานานแค่ไหนแล้ว และภาระการใช้งาน CPU เฉลี่ยในช่วงเวลา 1, 5 และ 15 นาที ถัดลงมาคือสถานะการทำงานของระบบ ซึ่งจะแสดงรายละเอียดว่ามีกระบวนการทำงานอยู่กี่กระบวนการ กำลังพักเครื่อง หยุดทำงาน หรืออยู่ในสถานะซอมบี้
การวิเคราะห์เชิงลึกเกี่ยวกับการใช้ทรัพยากรใน TOP
การวิเคราะห์การใช้งาน CPU นั้นมีความสำคัญอย่างยิ่งต่อการทำความเข้าใจประสิทธิภาพ เราจะเห็นค่าต่างๆ เช่นus (ผู้ใช้)สำหรับแอปพลิเคชันทั่วไปsy (ระบบ)สำหรับเคอร์เนล และ ค่า id (ไม่ได้ใช้งาน)ซึ่งบอกเราว่ามี CPU ว่างอยู่เท่าใด ข้อมูลที่น่าสนใจอีกอย่างคือsteal time (st)ซึ่งจะปรากฏเฉพาะในเครื่องเสมือนเท่านั้น และบอกเราว่า CPU เสมือนรอ CPU จริงอยู่นานแค่ไหน
ในส่วนของหน่วยความจำ TOP จะแยกความแตกต่างระหว่างVIRT (หน่วยความจำเสมือนทั้งหมด), RES (RAM ทางกายภาพที่ใช้จริง) และSHR (หน่วยความจำที่ใช้ร่วมกัน) ในการจัดการกระบวนการเหล่านี้ เราสามารถใช้ปุ่มลัดได้ โดย ปุ่ม Mจะเรียงลำดับตามหน่วยความจำ ปุ่มPตาม CPU และ ปุ่ม Tตามเวลาการทำงาน หากเราต้องการล้างข้อมูล ปุ่ม kจะช่วยให้เราสามารถยุติกระบวนการได้โดยการป้อน PID และเราสามารถบังคับให้ยุติด้วยสัญญาณ SIGKILL (9 )
เทคนิคขั้นสูงและการตั้งค่าระดับสูงสุด
สำหรับผู้ที่ต้องการควบคุมมากขึ้น TOP ช่วยให้คุณสามารถปรับแต่งได้ tasa de refreshco โดยใช้ปุ่ม do ร่วมกับคำสั่ง top -d นอกจากนี้ยังสามารถกรองข้อมูลได้โดยการกดปุ่ม o เราสามารถสร้างกฎได้ เช่น การแสดงเฉพาะกระบวนการที่ใช้ CPU มากกว่า 0.2% (โดยใช้ %CPU>0.2หากเราต้องการบันทึกข้อมูลไว้เพื่อวิเคราะห์ในภายหลัง เราสามารถสร้างไฟล์ได้ ภาพถ่าย การเปลี่ยนเส้นทางการส่งออกไปยังไฟล์ด้วย top -b -n 5 > archivo.txt.
Btop: วิวัฒนาการด้านภาพและความทันสมัย
ถ้า top เป็นเครื่องมือที่เรียบง่ายbtopก็เปรียบเสมือน Ferrari ของโปรแกรมตรวจสอบทรัพยากร เขียนด้วยภาษา C++ เป็นรุ่นที่สามของโครงการที่เริ่มต้นด้วย bashtop (ใน Bash) และพัฒนาต่อด้วย bpytop (ใน Python) ข้อได้เปรียบหลักคือมีอินเทอร์เฟซแบบกราฟิกในเทอร์มินัลที่รองรับการป้อนข้อมูลด้วยเมาส์ ทำให้เราสามารถคลิกที่เมนูและปุ่มต่างๆ ได้ราวกับใช้งานบนแอปพลิเคชันเดสก์ท็อป
หน้าจอ btop เป็นแดชบอร์ดที่เต็มไปด้วยกราฟแบบเรียลไทม์ไม่เพียงแต่เราจะเห็นรายการกระบวนการทำงานเท่านั้น แต่เรายังมีแผนภูมิโดยละเอียดที่แสดงการใช้งานคอร์ CPU กิจกรรมเครือข่ายต่ออินเทอร์เฟซ และประสิทธิภาพของดิสก์ (อ่าน/เขียน) ทั้งหมดนี้สามารถปรับแต่งได้อย่างละเอียดผ่านเมนูตัวเลือก (ปุ่ม M หรือ Esc) ซึ่งเราสามารถเปลี่ยนธีมสีเช่น Catppuccin ที่ได้รับความนิยม หรือปรับเค้าโครงโมดูลได้
การติดตั้งและทดสอบระบบ Btop
การติดตั้งนั้นง่ายมากบนระบบปฏิบัติการส่วนใหญ่ บน Ubuntu คุณเพียงแค่ต้องทำ... sudo apt install btopใน Fedora เราใช้ sudo dnf install btop และบน Arch Linux sudo pacman -S btopหากเกิดข้อผิดพลาดขณะเรียกใช้งาน... ภาษาท้องถิ่น UTF-8ปัญหานี้สามารถแก้ไขได้โดยการบังคับการเข้ารหัสด้วย btop --force-utf หรือโดยการกำหนดค่าตัวแปร ภาษา ในไฟล์ .bashrc ของผู้ใช้
ในการใช้งานประจำวัน btop ช่วยให้การจัดการงานง่ายขึ้น หากต้องการยุติกระบวนการ เพียงเลือกกระบวนการนั้นแล้วกดปุ่มT (SIGTERM)หรือK (SIGKILL)หากต้องการดูรายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการใดกระบวนการหนึ่ง ให้กด Enter เพื่อดูสถิติโดยละเอียดนอกจากนี้ ยังช่วยให้คุณกรองรายการกระบวนการได้อย่างรวดเร็วด้วยปุ่ม F ซึ่งเป็นประโยชน์อย่างมากเมื่อระบบทำงานหนักเกินไปและมีบรรทัดปรากฏบนหน้าจอหลายร้อยบรรทัด
Bpytop: ทางเลือกที่ใช้ Python
ก่อนที่ btop จะเป็นที่ยอมรับในภาษา C++ นั้น มีสิ่งที่มีอยู่ก่อนหน้านี้แล้ว บีพีท็อปแม้ว่าจะมีแนวคิดด้านการออกแบบและฟังก์ชันการทำงานเหมือนกับรุ่นต่อมา แต่พัฒนาด้วยภาษา Python และต้องใช้ไลบรารี psutilวิธีนี้ยังคงเป็นทางเลือกที่ใช้ได้ โดยเฉพาะในสภาพแวดล้อมที่มีการติดตั้ง Python ไว้แล้ว และการติดตั้ง Python เป็นสิ่งที่ต้องการ pip3.
Bpytop รองรับการใช้งานเมาส์และสามารถส่งสัญญาณต่างๆ เช่นSIGINT หรือ SIGTERMได้ เช่นเดียวกับ btop มันช่วยให้คุณเปลี่ยนรูปลักษณ์โดยใช้ธีมที่เข้ากันได้กับ bashtop ซึ่งโดยปกติจะถูกจัดเก็บไว้ใน ไดเร็กทอรี . config/bpytop/themesมันเป็นเครื่องมือที่มีประสิทธิภาพ แต่โดยทั่วไปแล้วในปัจจุบันนิยมใช้ btop มากกว่าเนื่องจากมีส่วนประกอบที่ต้องพึ่งพาน้อยกว่าและประสิทธิภาพการทำงานที่ดีกว่า
การเปรียบเทียบและขั้นตอนการทำงานแบบมืออาชีพ
สิ่งสำคัญคือต้องเข้าใจว่าเครื่องมือเหล่านี้ไม่มีตัวใดเหมือนกัน TOP เป็น ตัวเลือกสำหรับการเอาตัวรอด : มันมีอยู่ทุกที่และไม่เคยล้มเหลว ส่วน Btop เป็น ตัวเลือก สำหรับการตรวจสอบอย่างต่อเนื่อง : เหมาะอย่างยิ่งสำหรับการเปิดใช้งานใน tmux หรือแผง หน้าจอ ขณะทำงานในอีกหน้าต่างหนึ่ง ทำให้คุณมองเห็นฮาร์ดแวร์ได้ตลอดเวลาโดยไม่ต้องสลับหน้าต่าง
อย่างไรก็ตาม btop และ top เป็นเครื่องมือตรวจสอบแบบโลคอล หากคุณจัดการกลุ่มเซิร์ฟเวอร์ ขั้นตอนต่อไปที่เหมาะสมคือการเปลี่ยนไปใช้ โซลูชัน การตรวจสอบแบบรวมศูนย์เช่น Prometheus และ Grafana ในขณะที่ btop บอกคุณว่าเกิดอะไรขึ้นในเครื่องใดเครื่องหนึ่งในขณะนี้ โซลูชันระดับอุตสาหกรรมเหล่านี้จะให้ข้อมูลในอดีตและการแจ้งเตือนอัตโนมัติเมื่อบริการหยุดทำงาน ซึ่งจะช่วยเสริมความสามารถในการตอบสนองทันทีที่ได้รับจากเครื่องมือตรวจสอบปลายทาง
เรามีตัวเลือกมากมาย ตั้งแต่ความเรียบง่ายทางเทคนิคของ `top` ไปจนถึงความซับซ้อนทางด้านภาพของ `btop` และ `bpytop` ช่วยให้คุณเลือกเครื่องมือที่เหมาะสมกับความต้องการของคุณได้ ไม่ว่าจะเป็นเครื่องมือขนาดเล็กที่ใช้งานได้หลากหลาย หรือแผงควบคุมที่ใช้งานง่ายพร้อมรองรับการใช้งานเมาส์และกราฟิก ไม่ว่าจะเป็นการจัดการลำดับความสำคัญด้วยการตั้งค่า `Nice` ใน `top` หรือการปรับแต่งธีมใน `btop` เป้าหมายคือการรักษาเสถียรภาพของระบบและเพิ่มประสิทธิภาพการใช้งาน CPU, RAM และเครือข่ายอย่างมีประสิทธิภาพ





