วิธีตรวจสอบการใช้งานหน่วยความจำ Linux

How Check Linux Memory Usage



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

RAM เร็วมากและอยู่ใกล้กับ CPU (หน่วยประมวลผลกลาง) ของคอมพิวเตอร์มากขึ้น เนื่องจาก RAM อยู่ใกล้กับ CPU ของคอมพิวเตอร์มากขึ้น CPU จึงสามารถเข้าถึง RAM ได้โดยตรง ดังนั้นเวลาแฝงในการเข้าถึงข้อมูลจึงน้อยมากเมื่อเทียบกับอุปกรณ์จัดเก็บข้อมูล เช่น HDD หรือ SSD นั่นเป็นสาเหตุที่โปรแกรมทั้งหมดใช้ RAM เพื่อจัดเก็บข้อมูลแคช







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



การตรวจสอบการใช้ RAM เป็นหนึ่งในงานที่สำคัญที่สุดใน Linux คุณสามารถวินิจฉัยปัญหาต่างๆ ของ Linux ได้หากคุณสามารถตรวจสอบการใช้ RAM ของระบบ Linux ของคุณได้



มีเครื่องมือมากมายในการตรวจสอบการใช้หน่วยความจำใน Linux ในบทความนี้ ผมจะแสดงวิธีทั่วไปในการตรวจสอบการใช้หน่วยความจำบน Linux มาเริ่มกันเลยดีกว่า





หน่วยของหน่วยความจำคอมพิวเตอร์:

ในบทความนี้ คุณจะเห็นฉันใช้คำว่า กิโลไบต์ เมกะไบต์ กิกะไบต์ คิบิไบต์ เมบิไบต์ กิบิไบต์ และอื่นๆ อย่าสับสน ฉันจะอธิบายพวกเขาในส่วนนี้

ที่เก็บข้อมูลคอมพิวเตอร์ทั้งหมดใช้หน่วยเดียวกัน นี่เป็นสิ่งสำคัญมากที่จะเข้าใจ



หน่วยเก็บข้อมูลคอมพิวเตอร์ได้รับด้านล่าง

  • นิดหน่อย: หน่วยเก็บข้อมูลคอมพิวเตอร์ที่เล็กที่สุดคือบิต บิตสามารถถือได้ทั้ง 0 หรือ 1 เท่านั้น
  • ไบต์: 8 บิตในรูปแบบไบต์
  • กิโลไบต์: 1,000 ไบต์ในรูปแบบกิโลไบต์
  • เมกะไบต์: 1,000 กิโลไบต์ในรูปแบบเมกะไบต์
  • กิกะไบต์: 1,000 เมกะไบต์ในรูปแบบกิกะไบต์
  • เทราไบต์: 1,000 กิกะไบต์ในรูปแบบเทราไบต์
  • เพตาไบต์: 1,000 เทราไบต์ในรูปแบบเพตาไบต์
  • กิบิไบต์: 1,024 ไบต์ในรูปแบบกิบิไบต์
  • เมบิไบต์: 1,024 กิบิไบต์ในรูปแบบเมบิไบต์
  • กิบิไบต์: 1,024 เมบิไบต์จากกิบิไบต์
  • เทบิไบต์: 1,024 กิบิไบต์ในรูปแบบเทบิไบต์
  • เพบิไบต์: 1,024 เทบิไบต์สร้างเป็นเพบิไบต์

ในแง่ของไบต์ หน่วยเก็บข้อมูลคอมพิวเตอร์มีดังนี้

  • กิโลไบต์: 1,000 ไบต์หรือ 103ไบต์
  • เมกะไบต์: 1,000,000 ไบต์หรือ 106ไบต์
  • กิกะไบต์: 1,000,000,000 ไบต์หรือ 109ไบต์
  • เทราไบต์: 1,000,000,000,000 ไบต์หรือ 1012ไบต์
  • เพตาไบต์: 1,000,000,000,000,000 ไบต์หรือ 10สิบห้าไบต์
  • กิบิไบต์: 1024 ไบต์หรือ 210ไบต์
  • เมบิไบต์: 1,048,576 ไบต์หรือ2ยี่สิบไบต์
  • กิบิไบต์: 1,073,741,824 ไบต์ หรือ 230ไบต์
  • เทบิไบต์: 1,099,511,627,776 ไบต์ หรือ 240ไบต์
  • เพบิไบต์: 1,125,899,906,842,624 หรือ 2ห้าสิบไบต์

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

โปรดสังเกตว่ากิโลไบต์ เมกะไบต์ กิกะไบต์ เทราไบต์ และเพทาไบต์มีกำลัง 10 ไบต์ แต่ kibibyte, mebibyte, gibibyte, tebibyte และ pebibyte มีขนาดกำลัง 2 ไบต์ สำหรับมนุษย์อย่างเรา การคำนวณกำลัง 10 เป็นเรื่องง่าย (ระบบเลขฐานสิบ) เนื่องจากเรามี 10 นิ้ว แต่สำหรับคอมพิวเตอร์ จะคำนวณเป็นกำลัง 2 ได้ง่ายกว่า (ระบบเลขฐานสอง) ดังนั้น คอมพิวเตอร์จึงใช้กำลัง 2 เพื่อแสดงจำนวนที่เก็บข้อมูลหรือหน่วยความจำ

หน่วยมีสัญกรณ์ชวเลขหรือสัญลักษณ์ คุณจะเห็นบ่อยมากขณะตรวจสอบการใช้หน่วยความจำใน Linux

สัญกรณ์ชวเลขหรือสัญลักษณ์ได้รับด้านล่าง

  • ไบต์: NS
  • กิโลไบต์: KB หรือ kB
  • เมกะไบต์: MB
  • กิกะไบต์: GB
  • เทราไบต์: อีกด้วย
  • เพตาไบต์: PB
  • ไบต์: NS
  • กิบิไบต์: KiB หรือ K
  • เมบิไบต์: MiB หรือ M
  • กิบิไบต์: GiB หรือ G
  • เทบิไบต์: TiB หรือ T
  • เพบิไบต์: PiB หรือ P

บางโปรแกรมอาจไม่เป็นไปตามมาตรฐานนี้และใช้ชวเลขหรือสัญลักษณ์แทนกันได้ ความแตกต่างไม่มากนักระหว่างหน่วยเหล่านี้ (เช่น กิโลไบต์ กับ คิบิไบต์) อย่างไรก็ตาม ไม่ต้องกังวลกับมัน

หน่วยความจำเทียบกับ Swap ใน Linux:

ใน Linux หน่วยความจำกายภาพเรียกว่า หน่วยความจำ . เมื่อหน่วยความจำกายภาพเต็ม Linux จะย้ายข้อมูลที่เข้าถึงน้อยกว่าจากหน่วยความจำไปยังส่วนเฉพาะของดิสก์อย่างชาญฉลาด (HDD หรือ SSD) ส่วนนี้ของดิสก์เรียกว่าการสลับ

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

Swap disk ช้ามากเมื่อเทียบกับ RAM หรือหน่วยความจำกายภาพ หากระบบ Linux ใช้พื้นที่สว็อปอย่างกว้างขวาง ระบบอาจทำงานช้ามากและไม่ตอบสนอง ดังนั้นระบบ Linux ไม่ควรใช้พื้นที่สว็อป เราต้องการหลีกเลี่ยงมันให้มากที่สุด เมื่อระบบ Linux เริ่มที่จะเติมพื้นที่สว็อป แสดงว่าระบบ Linux ต้องการหน่วยความจำกายภาพมากขึ้น เป็นความคิดที่ดีที่จะเพิ่ม RAM หรือหน่วยความจำกายภาพให้กับระบบ

ตรวจสอบการใช้หน่วยความจำฟรี:

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

คุณสามารถตรวจสอบการใช้หน่วยความจำด้วยปุ่ม ฟรี คำสั่งดังต่อไปนี้:

$ฟรี

NS ฟรี คำสั่งที่ไม่มีตัวเลือกบรรทัดคำสั่งใด ๆ จะแสดงหน่วยความจำและข้อมูลการใช้งานสลับในหน่วย Kibibytes

โดยค่าเริ่มต้น the ฟรี คำสั่งแสดงการใช้บัฟเฟอร์และหน่วยความจำแคชในไฟล์ บัฟ / แคช คอลัมน์. หากคุณต้องการเห็นบัฟเฟอร์และหน่วยความจำแคชแยกจากกัน ให้รันคำสั่ง free ด้วยคำสั่ง -ใน ตัวเลือกดังนี้:

$ฟรี -ใน

อย่างที่คุณเห็น บัฟเฟอร์ และ แคช ข้อมูลการใช้หน่วยความจำจะแสดงในคอลัมน์ต่างๆ

คำสั่งฟรีแสดงข้อมูลต่อไปนี้:

ทั้งหมด: นี่คือหน่วยความจำกายภาพที่มีอยู่ทั้งหมดและพื้นที่สว็อป (หน่วยเป็นกิบิไบต์) ของระบบ Linux ของคุณ

ใช้แล้ว: นี่คือจำนวนหน่วยความจำกายภาพและพื้นที่สว็อปที่ระบบ Linux ของคุณใช้ โปรดสังเกตว่ามีการใช้พื้นที่สว็อป 0 KiB ในเครื่อง Ubuntu ของฉัน ดังนั้นจึงไม่ใช้การสลับเลย นั่นเป็นสิ่งที่ดีมาก

ฟรี: นี่คือจำนวนหน่วยความจำกายภาพที่ยังไม่ได้ใช้

แบ่งปัน: นี่คือจำนวนหน่วยความจำที่แบ่งใช้โดยกระบวนการหรือโปรแกรมต่างๆ โปรแกรม Linux หนึ่งโปรแกรมขึ้นไปอาจใช้ไลบรารีหรือการเรียกใช้ฟังก์ชันเดียวกัน แทนที่จะจัดสรรหน่วยความจำหลายครั้งสำหรับสิ่งเดียวกัน Linux แชร์สิ่งทั่วไประหว่างกระบวนการหรือโปรแกรมเหล่านี้อย่างชาญฉลาด ซึ่งจะช่วยประหยัดหน่วยความจำกายภาพ NS tmpfs ระบบไฟล์ (เช่น /dev/shm , /วิ่ง , /วิ่ง/ล็อค , /เรียกใช้/ผู้ใช้/ , /sys/fs/cgroup เป็นต้น) ยังใช้หน่วยความจำกายภาพบางส่วนซึ่งแชร์กับทุกกระบวนการและโปรแกรมใน Linux

บัฟเฟอร์: นี่คือจำนวนหน่วยความจำที่ใช้โดยบัฟเฟอร์เคอร์เนล บัฟเฟอร์เป็นบล็อกของหน่วยความจำที่ข้อมูลถูกเก็บไว้ชั่วคราวในขณะที่ย้ายข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่ง

แคช: นี่คือจำนวนหน่วยความจำกายภาพที่ใช้สำหรับข้อมูลแคช

บัฟ / แคช: นี่คือจำนวนหน่วยความจำกายภาพทั้งหมดที่ใช้สำหรับบัฟเฟอร์และแคช

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

คุณยังสามารถใช้ตัวเลือกบรรทัดคำสั่งต่างๆ เพื่อดูหน่วยความจำและสลับข้อมูลการใช้งานในหน่วยต่างๆ

ตัวอย่างเช่น หากต้องการดูหน่วยความจำและสลับข้อมูลการใช้งานเป็นไบต์ ให้เรียกใช้ ฟรี สั่งกับ -NS หรือ –ไบต์ ตัวเลือกดังนี้:

$ฟรี -NS

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

$ฟรี -ถึง

หากต้องการดูหน่วยความจำและสลับข้อมูลการใช้งานเป็นเมบิไบต์ ให้เรียกใช้ ฟรี สั่งกับ -NS หรือ –เมบิ ตัวเลือกดังนี้:

$ฟรี -NS

หากต้องการดูหน่วยความจำและสลับข้อมูลการใช้งานเป็นกิกะไบต์ ให้เรียกใช้ ฟรี สั่งกับ -NS หรือ -เช่น ตัวเลือกดังนี้:

$ฟรี -NS

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

หากคุณต้องการแสดงหน่วยความจำและสลับข้อมูลการใช้งานเป็นกิโลไบต์ ให้เรียกใช้ ฟรี สั่งกับ -กิโล ตัวเลือกดังนี้:

$ฟรี --กิโล

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

$ฟรี --mega

หากคุณต้องการแสดงหน่วยความจำและสลับข้อมูลการใช้งานเป็นกิกะไบต์ ให้เรียกใช้ ฟรี สั่งกับ –giga ตัวเลือกดังนี้:

$ฟรี --giga

ในทำนองเดียวกัน คุณสามารถใช้ –tera และ -แผนที่ ตัวเลือกบรรทัดคำสั่งเพื่อแสดงหน่วยความจำและสลับข้อมูลการใช้งานเป็นเทราไบต์และเพทาไบต์ตามลำดับ

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

สำหรับเอาต์พุตที่มนุษย์อ่านได้ ให้เรียกใช้ ฟรี สั่งกับ -ชม หรือ -มนุษย์ ตัวเลือกดังนี้:

$ฟรี -ชม

อย่างที่คุณเห็น รูปแบบที่มนุษย์อ่านได้นั้นเข้าใจง่ายมาก

NS -ชม หรือ -มนุษย์ option พิมพ์หน่วยความจำและสลับข้อมูลการใช้งานเป็นไบต์ กิบิไบต์ เมบิไบต์ กิบิไบต์ เทบิไบต์ หรือเพบิไบต์ตามค่าเริ่มต้น หน่วยเหล่านี้ใช้ฐาน 2 หรือระบบเลขฐานสอง (ยกกำลัง 2)

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

$ฟรี --มนุษย์ --ใช่

NS ฟรี คำสั่งจะพิมพ์หน่วยความจำและสลับข้อมูลการใช้งานเป็นไบต์ กิโลไบต์ เมกะไบต์ กิกะไบต์ เทราไบต์ หรือเพตาไบต์ หน่วยเหล่านี้ใช้ฐาน 10 หรือระบบตัวเลขทศนิยม (ยกกำลัง 10)

หากคุณต้องการแสดงข้อมูลหน่วยความจำทั้งหมดและสลับการใช้งาน ให้รันคำสั่ง free ด้วยตัวเลือก -t หรือ –total ดังนี้:

$ฟรี -NS

อย่างที่คุณเห็น ข้อมูลการใช้งานหน่วยความจำทั้งหมด (กายภาพ + สลับ) จะแสดงที่ส่วนท้ายของเอาต์พุต

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

คุณสามารถเรียกใช้ ฟรี คำสั่งในโหมดการตรวจสอบด้วย -NS หรือ –วินาที ตัวเลือกบรรทัดคำสั่งดังนี้:

$ฟรี -NS <ล่าช้า>

หรือ,

$ฟรี–วินาที<ล่าช้า>

ที่นี่, คือจำนวนวินาทีหลังจากที่หน่วยความจำใหม่และข้อมูลการใช้งานการสลับจะถูกพิมพ์บนหน้าจอ

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

$ฟรี -NS 5

อย่างที่คุณเห็น ข้อมูลการใช้หน่วยความจำและการสลับจะถูกพิมพ์ทุกๆ 5 วินาที

หากคุณต้องการหยุด ฟรี คำสั่ง กด + .

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

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

$ฟรี -NS 10 -ค 5

อย่างที่คุณเห็น ฟรี คำสั่งพิมพ์หน่วยความจำและสลับข้อมูลการใช้งานเพียง 5 ครั้ง ในช่วงเวลา 10 วินาที

นั่นคือเกือบทั้งหมดที่คุณต้องรู้เพื่อตรวจสอบหน่วยความจำและสลับการใช้งานด้วย ฟรี สั่งการ. แต่ถ้าคุณต้องการทราบข้อมูลเพิ่มเติม ตรวจสอบ manpage ของ ฟรี คำสั่งดังต่อไปนี้:

$ชาย ฟรี

manpage ของ ฟรี ควรแสดงคำสั่ง

ตรวจสอบการใช้หน่วยความจำโดยการอ่านไฟล์ /proc/meminfo:

คุณยังสามารถตรวจสอบข้อมูลการใช้หน่วยความจำของระบบ Linux ของคุณได้โดยการอ่าน /proc/meminfo ไฟล์.

คุณสามารถอ่าน /proc/meminfo ไฟล์ด้วยคำสั่งต่อไปนี้:

$แมว /เปอร์เซ็นต์/meminfo

ไฟล์มีข้อมูลการใช้หน่วยความจำจำนวนมาก การใช้หน่วยความจำอยู่ในหน่วยกิบิไบต์

ข้อมูลการใช้หน่วยความจำที่สำคัญที่สุดใน /proc/meminfo ไฟล์คือ:

รวมเมม: นี่คือหน่วยความจำหรือหน่วยความจำกายภาพ (RAM) ที่ติดตั้งทั้งหมดของระบบ Linux

เมมฟรี: นี่คือจำนวนหน่วยความจำกายภาพ (RAM) ที่ไม่ได้ใช้

มีจำหน่าย: นี่คือจำนวนหน่วยความจำกายภาพ (RAM) โดยประมาณที่พร้อมใช้งานสำหรับโปรแกรมใหม่

บัฟเฟอร์: นี่คือจำนวนหน่วยความจำฟิสิคัลที่สงวนไว้สำหรับเคอร์เนลบัฟเฟอร์ บัฟเฟอร์ใช้เพื่อเก็บข้อมูลชั่วคราวขณะย้ายจากที่หนึ่งไปยังอีกที่หนึ่ง

แคช: นี่คือจำนวนหน่วยความจำกายภาพที่ใช้เป็นหน่วยความจำแคช

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

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

ไม่ใช้งาน: นี่คือจำนวนหน่วยความจำกายภาพที่ใช้และเรียกคืนได้ง่ายโดยกระบวนการหรือโปรแกรมอื่น หากจำเป็น

ใช้งานอยู่(อานนท์): นี่คือจำนวนหน่วยความจำกายภาพที่ใช้โดยระบบไฟล์ tmpfs ที่ไม่ระบุชื่อและหน่วยความจำแบบแบ่งใช้

ไม่ใช้งาน(อานนท์): นี่คือจำนวนหน่วยความจำฟิสิคัลที่ใช้โดยระบบไฟล์ tmfs ที่ไม่ระบุชื่อและหน่วยความจำแบบแบ่งใช้ที่สามารถเรียกคืนได้

ใช้งานอยู่ (ไฟล์): นี่คือจำนวนหน่วยความจำแคชที่ใช้งาน

ไม่ทำงาน (ไฟล์): นี่คือจำนวนหน่วยความจำแคชที่โหลดใหม่หรือเรียกคืนได้

หนีไม่พ้น: นี่คือจำนวนหน่วยความจำที่ไม่สามารถเรียกคืนได้เนื่องจากถูกล็อกโดยโปรแกรมผู้ใช้

ถูกล็อค: นี่คือจำนวนหน่วยความจำทั้งหมดที่ไม่สามารถเรียกคืนได้เนื่องจากถูกล็อกโดยโปรแกรมผู้ใช้

ยอดสลับ: นี่คือขนาดรวมของดิสก์สลับ

สวอปฟรี: นี่คือจำนวนพื้นที่สว็อปที่ว่าง

สกปรก: จำนวนหน่วยความจำทั้งหมดที่รอการเขียนกลับไปยังดิสก์

เขียนกลับ: จำนวนหน่วยความจำทั้งหมดที่เขียนกลับไปยังดิสก์

อานนท์เพจ: จำนวนหน่วยความจำทั้งหมดที่เพจใช้และถูกแมปเข้ากับตารางเพจ userspace

แผนที่: จำนวนหน่วยความจำที่ใช้สำหรับไฟล์ที่ได้รับการ mmaped โดยเคอร์เนล Linux เช่น ไลบรารีที่ใช้โดยโปรแกรมต่างๆ

ตัวอย่าง: นี่คือจำนวนหน่วยความจำที่แบ่งใช้และใช้งานโดยระบบไฟล์ tmpfs

เครีเคลมได้: จำนวนหน่วยความจำที่เคอร์เนลอ้างสิทธิ์และสามารถเรียกคืนได้เมื่อจำเป็น

แผ่นพื้น: นี่คือจำนวนหน่วยความจำที่เคอร์เนลใช้เพื่อแคชโครงสร้างข้อมูลสำหรับการใช้เคอร์เนล

เรียกคืนได้: นี่คือจำนวนหน่วยความจำจาก Slab ที่สามารถเรียกคืนได้

ยกเลิกการเรียกคืน: นี่คือจำนวนหน่วยความจำจาก Slab ที่ไม่สามารถเรียกคืนได้แม้เมื่อจำเป็น

KernelStack: นี่คือจำนวนหน่วยความจำที่ใช้สำหรับการจัดสรรเคอร์เนลสแต็ก

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

ตีกลับ: นี่คือจำนวนหน่วยความจำที่ใช้สำหรับบัฟเฟอร์ของอุปกรณ์บล็อก (เช่น อุปกรณ์จัดเก็บข้อมูล เช่น HDD หรือ SSD)

เขียนกลับTmp: จำนวนหน่วยความจำที่ใช้สำหรับบัฟเฟอร์การเขียนกลับชั่วคราวของ FUSE

มีข้อมูลการใช้หน่วยความจำอื่น ๆ อีกมากมายใน /proc/meminfo ไฟล์. หากคุณสนใจคุณสามารถดูสิ่งที่พวกเขาอยู่ใน manpage ของ เปอร์เซ็นต์ .

ในการเปิด manpage ของ เปอร์เซ็นต์ ให้รันคำสั่งต่อไปนี้:

$ชาย 5เปอร์เซ็นต์

ควรเปิด manpage ของ proc

พิมพ์ /proc/meminfo แล้วกด . ควรนำทางคุณไปยังส่วน /proc/meminfo ดังที่คุณเห็นในภาพหน้าจอด้านล่าง คุณจะพบคำอธิบายของทุกฟิลด์ใน /proc/meminfo ไฟล์ที่นี่.

ตรวจสอบการใช้หน่วยความจำโดยใช้ด้านบน:

NS สูงสุด เป็นโปรแกรมที่แสดงกระบวนการทำงานและการใช้ทรัพยากรแบบเรียลไทม์ NS สูงสุด ติดตั้งมาล่วงหน้าในลีนุกซ์ส่วนใหญ่

วิ่งได้ สูงสุด ด้วยคำสั่งดังนี้

$สูงสุด

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

NS สูงสุด คำสั่งจะแสดงข้อมูลหน่วยความจำกายภาพต่อไปนี้:

ทั้งหมด: หน่วยความจำกายภาพที่มีอยู่ทั้งหมดของระบบ

ฟรี: จำนวนหน่วยความจำกายภาพยังไม่ได้ใช้งาน

ใช้แล้ว: จำนวนหน่วยความจำกายภาพที่ใช้โดยระบบ

บัฟ / แคช: จำนวนหน่วยความจำกายภาพที่ใช้เป็นหน่วยความจำแคชและบัฟเฟอร์

ประโยชน์ Mem: จำนวนหน่วยความจำกายภาพที่มีให้สำหรับโปรแกรมใหม่

NS สูงสุด คำสั่งจะแสดงข้อมูลการสลับต่อไปนี้:

ทั้งหมด: หน่วยความจำสว็อปที่มีอยู่ทั้งหมดของระบบ

ฟรี: จำนวนหน่วยความจำสวอปว่างของระบบ

ใช้แล้ว: จำนวนหน่วยความจำสว็อปที่ระบบใช้

สามารถกด NS เพื่อเปลี่ยนระหว่างโหมดสรุปการใช้หน่วยความจำที่แตกต่างกัน

เช่น กด NS เมื่อจะเปลี่ยนเป็นโหมดต่อไปนี้ ในโหมดนี้ สูงสุด แสดงหน่วยความจำกายภาพและสลับข้อมูลการใช้งานเป็น เปอร์เซ็นต์_memory_used/total_memory_in_mebibytes .

กด NS อีกครั้งจะเปลี่ยนสไตล์แถบความคืบหน้า ข้อมูลจะเหมือนกับเมื่อก่อน

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

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

ที่เคารพ: นี่คือขนาดหน่วยความจำเสมือนของกระบวนการ หน่วยความจำเสมือนคือหน่วยความจำกายภาพและหน่วยความจำสลับทั้งหมดที่ใช้โดยกระบวนการ

เนื้อวัว: นี่คือขนาดหน่วยความจำประจำของกระบวนการ หน่วยความจำภายในคือจำนวนหน่วยความจำกายภาพที่กระบวนการใช้

SHR: นี่คือขนาดหน่วยความจำที่ใช้ร่วมกันของกระบวนการ นี่คือจำนวนหน่วยความจำที่กระบวนการใช้ซึ่งแบ่งใช้กับกระบวนการอื่นด้วย

%MEM: เปอร์เซ็นต์ของหน่วยความจำกายภาพที่กระบวนการใช้

คุณสามารถกำหนดค่า สูงสุด คำสั่งแสดงข้อมูลการใช้หน่วยความจำเพิ่มเติม เช่น

รหัส: นี่คือขนาดรหัสของกระบวนการ เป็นจำนวนหน่วยความจำกายภาพสำหรับโค้ดปฏิบัติการของกระบวนการ เรียกอีกอย่างว่า Text Resident Set หรือ TRS

ข้อมูล: นี่คือข้อมูลและขนาดสแต็กของกระบวนการ เป็นจำนวนหน่วยความจำที่สงวนไว้โดยกระบวนการ อาจยังไม่ได้จับคู่กับหน่วยความจำกายภาพ แต่จะแสดงขึ้นในหน่วยความจำเสมือน (VIRT) ของกระบวนการเสมอ เรียกอีกอย่างว่า Data Resident Set หรือ DRS

อาร์ซัน: นี่คือขนาดหน่วยความจำที่ไม่ระบุตัวตนของผู้พักอาศัยของกระบวนการ เป็นชุดย่อยของหน่วยความจำกายภาพ (RES) ซึ่งแสดงถึงหน้าส่วนตัวที่ยังไม่ได้แมปกับไฟล์

RSFD: นี่คือขนาดหน่วยความจำสำรองของไฟล์ Resident ของกระบวนการ เป็นเซตย่อยของหน่วยความจำกายภาพ (RES) ซึ่งแสดงถึงเพจที่ใช้ร่วมกันและสนับสนุนอิมเมจของโปรแกรม ไลบรารีที่ใช้ร่วมกัน การแมปไฟล์ ฯลฯ

อาร์เอส: นี่คือขนาดหน่วยความจำที่ใช้ร่วมกันของ Resident ของกระบวนการ เป็นเซตย่อยของหน่วยความจำกายภาพ (RES) ซึ่งแสดงถึงเพจที่ไม่ระบุชื่อที่ใช้ร่วมกัน

อาร์เอสแอล: นี่คือขนาดหน่วยความจำที่ถูกล็อกโดย Resident ของกระบวนการ เป็นจำนวนหน่วยความจำกายภาพ (RES) ที่ไม่สามารถสลับออกได้ จะต้องอยู่ในหน่วยความจำกายภาพ

แลกเปลี่ยน: นี่คือขนาดที่สับเปลี่ยนของกระบวนการ เป็นจำนวนข้อมูลหน่วยความจำกายภาพ (RES) ที่ย้ายไปยังพื้นที่ดิสก์สว็อปจากหน่วยความจำกายภาพ

ใช้แล้ว: นี่คือจำนวนหน่วยความจำทั้งหมด (กายภาพ + สลับ) ที่กระบวนการใช้

ใช้แล้ว = RES + SWAP

โปรดทราบว่าหน่วยความจำกายภาพ (RES) ที่ใช้โดยกระบวนการคือผลรวมของ Resident Anonymous Memory Size (RSan), Resident File-Backed Memory Size (RSfd) และ Resident Shared Memory Size (RSsh)

RES = RSan + RSfd + RSsh

หากต้องการเปิดใช้งานคอลัมน์ข้อมูลหน่วยความจำเหล่านี้ ให้เรียกใช้ สูงสุด แล้วกด NS .

ใช้แป้นลูกศรเพื่อไปยังคอลัมน์ที่ทำเครื่องหมายไว้ แล้วกด เพื่อสลับ คอลัมน์ที่เปิดใช้งานจะมี a * ทำเครื่องหมายทางด้านซ้าย

เสร็จแล้วกด อะไร เพื่อกลับไปที่หน้าต่างการตรวจสอบกระบวนการด้านบน อย่างที่คุณเห็น คอลัมน์ข้อมูลการใช้หน่วยความจำ SWAP, CODE, DATA, USED, RSan, RSfd, RSlk, RSsh จะปรากฏขึ้น

โดยค่าเริ่มต้น the สูงสุด คำสั่งแสดงข้อมูลการใช้หน่วยความจำในหน่วย kibibyte หากคุณต้องการดูข้อมูลการใช้หน่วยความจำในหน่วยอื่น เช่น mebibyte, gibibyte, tebibyte หรือ pebibyte คุณก็สามารถทำได้เช่นกัน

ในการสลับระหว่างหน่วยหน่วยความจำต่างๆ (kibibyte, mebibyte, gibibyte, tebibyte หรือ pebibyte) ให้รัน top แล้วกด และ .

สูงสุด ข้อมูลการใช้หน่วยความจำจะแสดงเป็นเมบิไบต์

สูงสุด ข้อมูลการใช้หน่วยความจำจะแสดงเป็นกิกะไบต์

สูงสุด ข้อมูลการใช้หน่วยความจำจะแสดงเป็นเทบิไบต์

สูงสุด ข้อมูลการใช้หน่วยความจำจะแสดงเป็นเพบิไบต์

กระบวนการจำนวนมากทำงานบนระบบปฏิบัติการ Linux ของคุณ คำสั่งบนสุดไม่สามารถแสดงทั้งหมดพร้อมกันได้ คุณสามารถกด . ค้างไว้ และ ปุ่มลูกศรเพื่อนำทางรายการของกระบวนการ สูงสุด แสดงคำสั่ง

คุณยังสามารถเรียงลำดับผลลัพธ์ของคำสั่งบนสุดตามคอลัมน์เฉพาะได้

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

จากนั้นเลือกคอลัมน์ SWAP โดยใช้ปุ่มลูกศรบนแป้นพิมพ์แล้วกด NS .

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

อย่างที่คุณเห็น กระบวนการที่ใช้พื้นที่สว็อปมากที่สุดจะถูกแสดงรายการก่อน

เมื่อคุณกำหนดค่า .แล้ว สูงสุด คำสั่งคุณสามารถกด + ใน เพื่อบันทึกการกำหนดค่าไปยัง a toprc ไฟล์การกำหนดค่า ด้วยวิธีนี้ คุณไม่จำเป็นต้องกำหนดค่า สูงสุด ทุกครั้งที่ใช้งาน

ตรวจสอบการใช้หน่วยความจำโดยใช้ htop:

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

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

ติดตั้ง htop บน Ubuntu/Debian ให้รันคำสั่งต่อไปนี้:

$sudoapt update
$sudoฉลาดติดตั้ง htop -และ

บันทึก: บน CentOS/RHEL htop มีอยู่ในที่เก็บ EPEL ก่อนที่คุณจะติดตั้ง htop คุณต้องมีที่เก็บ EPEL ( epel-ปล่อย แพ็คเกจ) ติดตั้งบนระบบ CentOS/RHEL ของคุณ

ติดตั้ง htop บน CentOS 7/RHEL 7 ให้รันคำสั่งต่อไปนี้:

$sudo ยำติดตั้งepel-ปล่อย-และ
$sudo ยำติดตั้ง htop -และ

ติดตั้ง htop บน CentOS 8/RHEL 8 ให้รันคำสั่งต่อไปนี้:

$sudodnfติดตั้งepel-ปล่อย-และ
$sudodnfติดตั้ง htop -และ

ครั้งหนึ่ง htop ติดตั้งแล้ว คุณสามารถเรียกใช้ด้วยคำสั่งต่อไปนี้:

$htop

Htop ควรเริ่มต้น

ด้านบน, htop แสดงหน่วยความจำกายภาพและสรุปการใช้การสลับ นอกจากนี้ยังแสดงหน่วยความจำและการใช้งานสลับในกราฟแท่งที่สวยงาม

ข้อมูลการใช้หน่วยความจำและการสลับอยู่ในรูปแบบ ใช้แล้ว / ทั้งหมด . htop จะตัดสินใจหน่วยโดยอัตโนมัติ (kibibyte, mebibyte, gibibyte, tebibyte หรือ pebibyte) เพื่ออธิบายหน่วยความจำและสลับข้อมูลการใช้งานได้ดีที่สุด

แถบการใช้งานหน่วยความจำและสว็อปจะแสดงด้วยสีต่างๆ สีมีความหมาย

หากต้องการทราบว่าแต่ละสีแสดงถึงอะไร ให้เรียกใช้ htop แล้วกด ชม เพื่อไปที่หน้าต่างวิธีใช้ของ htop .

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

กลับไปสู่หลัก htop หน้าต่าง กด อะไร .

ชอบ สูงสุด , NS htop โปรแกรมยังแสดงข้อมูลการใช้หน่วยความจำของแต่ละกระบวนการที่ทำงานบนระบบ Linux ของคุณ htop จะตัดสินใจหน่วยโดยอัตโนมัติ (kibibyte, mebibyte, gibibyte, tebibyte หรือ pebibyte) เพื่ออธิบายการใช้หน่วยความจำของแต่ละกระบวนการได้ดีที่สุด

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

VIRT/M_SIZE: นี่คือขนาดของหน่วยความจำเสมือนของกระบวนการ หน่วยความจำเสมือนคือหน่วยความจำกายภาพและหน่วยความจำสลับทั้งหมดที่ใช้โดยกระบวนการ

RES/M_RESIDENT: นี่คือขนาดชุดประจำของกระบวนการ หน่วยความจำภายในคือจำนวนหน่วยความจำกายภาพที่กระบวนการใช้ เท่ากับ text + data + stack หรือ M_TRS + M_DRS

SHR/M_SHARE: นี่คือขนาดหน่วยความจำที่ใช้ร่วมกันของกระบวนการ นี่คือจำนวนหน่วยความจำที่กระบวนการใช้ซึ่งแชร์กับกระบวนการอื่นด้วย

%MEM/PERCENT_MEM: เปอร์เซ็นต์ของหน่วยความจำกายภาพที่กระบวนการใช้

คุณสามารถกำหนดค่า htop คำสั่งแสดงข้อมูลการใช้หน่วยความจำเพิ่มเติม เช่น

รหัส / M_TRS: นี่คือขนาดรหัสของกระบวนการ เป็นจำนวนหน่วยความจำกายภาพสำหรับโค้ดปฏิบัติการของกระบวนการ

ข้อมูล/M_DRS: นี่คือข้อมูลและขนาดสแต็กของกระบวนการ เป็นจำนวนหน่วยความจำที่สงวนไว้โดยกระบวนการ อาจยังไม่ได้จับคู่กับหน่วยความจำกายภาพ แต่จะแสดงขึ้นในหน่วยความจำเสมือน (VIRT/M_SIZE) ของกระบวนการเสมอ

LIB/M_LRS: นี่คือขนาดไลบรารีของกระบวนการ คือจำนวนหน่วยความจำกายภาพที่โค้ดไลบรารี (ใช้โดยกระบวนการ/โปรแกรม) กำลังใช้อยู่

สกปรก/M_DT: นี่คือขนาดของหน้าสกปรกของกระบวนการ ส่วน/หน้าที่แก้ไขในบัฟเฟอร์เรียกว่าหน้าสกปรก

หากต้องการเปิดใช้งานคอลัมน์ข้อมูลหน่วยความจำเหล่านี้ ให้เรียกใช้ htop แล้วกด F2 .

จากนั้นไปที่ คอลัมน์ จาก ติดตั้ง ส่วน เลือกคอลัมน์ก่อนหน้าที่คุณต้องการเพิ่มคอลัมน์ใหม่จาก คอลัมน์ที่ใช้งานอยู่ ส่วน เลือกคอลัมน์ที่คุณต้องการเพิ่มจาก คอลัมน์ที่มีอยู่ ส่วนแล้วกด เพื่อเพิ่มคอลัมน์

ควรเพิ่มคอลัมน์ลงใน คอลัมน์ที่ใช้งานอยู่ ส่วน.

ในทำนองเดียวกัน เพิ่มคอลัมน์หน่วยความจำอื่นๆ (คอลัมน์ที่ขึ้นต้นด้วย NS_ ). เสร็จแล้วกด กลับไปสู่หลัก htop หน้าต่าง.

อย่างที่คุณเห็น มีการเพิ่มคอลัมน์ข้อมูลการใช้หน่วยความจำเพิ่มเติม

คุณสามารถดูกระบวนการใน วิวต้นไม้ . ในมุมมองนี้ กระบวนการถูกจัดระเบียบโดยความสัมพันธ์หลักและรอง

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

หากต้องการออกจากมุมมองต้นไม้ ให้กด NS อีกครั้ง. คุณควรกลับไปที่มุมมองเริ่มต้น

คุณยังสามารถจัดเรียงกระบวนการตามคอลัมน์การใช้หน่วยความจำต่างๆ ได้อีกด้วย โดยค่าเริ่มต้น กระบวนการจะถูกจัดเรียงตามการใช้งาน CPU (CPU%)

ในการจัดเรียงกระบวนการตามคอลัมน์เฉพาะ ให้กด F6 .

จากนั้นเลือกคอลัมน์ที่คุณต้องการจัดเรียงกระบวนการจาก เรียงโดย ส่วนและกด .

ฉันจะเรียงลำดับกระบวนการโดย M_RESIDENT / เนื้อวัว คอลัมน์สำหรับการสาธิต

อย่างที่คุณเห็น กระบวนการต่างๆ ได้รับการจัดเรียงอย่างดีตามการใช้หน่วยความจำภายใน

NS htop โปรแกรมแสดงรายการกระบวนการมากมาย กระบวนการทั้งหมดนี้ไม่สามารถแสดงในขนาดหน้าต่าง/หน้าจอที่จำกัดได้ แต่คุณสามารถกด และ ปุ่มลูกศรเพื่อนำทางรายการกระบวนการอย่างง่ายดาย

ตรวจสอบการใช้หน่วยความจำโดยใช้ smem:

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

ในวิชาคณิตศาสตร์ดูเหมือนว่านี้

การใช้หน่วยความจำกายภาพของกระบวนการ = การใช้หน่วยความจำที่ใช้ร่วมกัน + การใช้หน่วยความจำที่ไม่แชร์

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

ในวิชาคณิตศาสตร์ดูเหมือนว่านี้

การใช้หน่วยความจำกายภาพของกระบวนการ =(การใช้หน่วยความจำร่วมกัน/จำนวนกระบวนการที่แชร์หน่วยความจำ)
+ หน่วยความจำที่ไม่ได้แชร์

ฉันสามารถ ไม่ได้ติดตั้งไว้ล่วงหน้าโดยค่าเริ่มต้นในลีนุกซ์ส่วนใหญ่ แต่มีอยู่ในที่เก็บแพ็คเกจอย่างเป็นทางการของการกระจาย Linux ส่วนใหญ่

บน Ubuntu/Debian คุณสามารถติดตั้งได้ ฉันสามารถ ด้วยคำสั่งต่อไปนี้:

$sudoapt update
$sudoฉลาดติดตั้งฉันสามารถ-และ

บน CentOS/RHEL 7 ฉันสามารถ มีอยู่ในที่เก็บแพ็คเกจ EPEL ดังนั้น คุณต้องเพิ่มที่เก็บ EPEL บน CentOS/RHEL 7 เพื่อติดตั้ง ฉันสามารถ .

บน CentOS/RHEL 7 คุณสามารถติดตั้งได้ ฉันสามารถ ด้วยคำสั่งต่อไปนี้:

$sudo ยำติดตั้งepel-ปล่อย-และ
$sudo ยำติดตั้งฉันสามารถ-และ

น่าเสียดาย, ฉันสามารถ ไม่มีอยู่ในที่เก็บแพ็คเกจอย่างเป็นทางการหรือที่เก็บ EPEL ของ CentOS/RHEL 8 คุณควรจะคอมไพล์ได้ ฉันสามารถ จากแหล่งที่มาหรือดาวน์โหลด ฉันสามารถ เลขฐานสองจาก เว็บไซต์อย่างเป็นทางการของ smm .

หากคุณต้องการรวบรวม ฉันสามารถ จากแหล่งที่มาจากนั้นคุณสามารถดาวน์โหลดซอร์สโค้ด smem ได้จาก หน้าแหล่งที่มา smem อย่างเป็นทางการ .

หากคุณต้องการดาวน์โหลด a ฉันสามารถ ไฟล์ไบนารีที่คอมไพล์ไว้ล่วงหน้า จากนั้นคุณสามารถดาวน์โหลดได้จาก หน้าดาวน์โหลดอย่างเป็นทางการของ smem .

ฉันสามารถ สามารถแสดงการใช้งานหน่วยความจำของผู้ใช้แต่ละคนได้

หากต้องการทราบจำนวนหน่วยความจำที่ผู้ใช้ Linux ใช้ ให้เรียกใช้ ฉันสามารถ ดังนี้

$sudoฉันสามารถ-คุณ

ที่นี่ -ถึง ตัวเลือกที่ใช้เพื่อแสดงหน่วยที่ ฉันสามารถ กำลังใช้เพื่อแสดงข้อมูลการใช้หน่วยความจำ

ฉันสามารถ ใช้หน่วยต่อไปนี้:

K – คิบิไบต์

M – เมบิไบต์

G - Gibibyte

T – Tebibyte

P - Pebibyte

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

NS -ยู ใช้ตัวเลือกเพื่อแสดงข้อมูลการใช้หน่วยความจำของผู้ใช้

อย่างที่เห็น, ฉันสามารถ รายงานข้อมูลหน่วยความจำและสลับการใช้งานของผู้ใช้เครื่อง Ubuntu ของฉันแต่ละคน

ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำของผู้ใช้ดังต่อไปนี้:

ผู้ใช้: ชื่อผู้ใช้ Linux ที่รายงานการใช้หน่วยความจำ

นับ: จำนวนกระบวนการที่ผู้ใช้กำลังทำงานอยู่ในขณะนี้

แลกเปลี่ยน: จำนวนพื้นที่ดิสก์สว็อปที่ผู้ใช้ใช้

ยูเอส: นี่คือขนาดชุดที่ไม่ซ้ำทั้งหมดของกระบวนการผู้ใช้ เป็นจำนวนหน่วยความจำกายภาพทั้งหมดที่กระบวนการเป็นเจ้าของโดยผู้ใช้ซึ่งไม่ได้ใช้ร่วมกับกระบวนการอื่น

พีเอสเอส: นี่คือขนาดชุดตามสัดส่วนทั้งหมดของกระบวนการของผู้ใช้ เป็นจำนวนหน่วยความจำกายภาพทั้งหมดและหน่วยความจำกายภาพที่ใช้ร่วมกันที่แบ่งเท่าๆ กันซึ่งกระบวนการที่ผู้ใช้เป็นเจ้าของใช้อยู่

อาร์เอส: นี่คือขนาดชุดประจำถิ่นทั้งหมดของกระบวนการผู้ใช้ เป็นจำนวนหน่วยความจำกายภาพทั้งหมดและหน่วยความจำกายภาพที่ใช้ร่วมกันซึ่งกระบวนการที่ผู้ใช้เป็นเจ้าของใช้อยู่ ข้อมูลการใช้หน่วยความจำ RSS ของ ฉันสามารถ เหมือนกับข้อมูลการใช้หน่วยความจำ RSS ของ สูงสุด หรือ htop .

โดยค่าเริ่มต้น, ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำในลำดับจากน้อยไปมาก (ต่ำสุดไปสูงสุด) หากคุณต้องการดูข้อมูลการใช้หน่วยความจำโดยเรียงลำดับจากมากไปน้อย (สูงสุดไปต่ำสุด) ให้ใช้ปุ่ม -NS ตัวเลือกของ ฉันสามารถ ดังนี้

$sudoฉันสามารถ-kaur

อย่างที่เห็น, ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำของผู้ใช้เดียวกัน แต่ในลำดับถัดลงมา

หากคุณต้องการดูข้อมูลการใช้หน่วยความจำของผู้ใช้ทั้งหมด ให้เรียกใช้ ฉันสามารถ กับ -NS ตัวเลือกดังนี้:

$sudoฉันสามารถผ่าน

อย่างที่เห็น, ฉันสามารถ เพิ่มข้อมูลของแถวทั้งหมดสำหรับแต่ละคอลัมน์ และแสดงข้อมูลการใช้หน่วยความจำทั้งหมดของแต่ละคอลัมน์ในตอนท้าย

โดยค่าเริ่มต้น, ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำในหน่วย kibibytes หากคุณใช้ -ถึง ตัวเลือก, ฉันสามารถ จะเลือกหน่วยที่ดีที่สุดโดยอัตโนมัติเพื่อแสดงข้อมูลการใช้หน่วยความจำ

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

$sudoฉันสามารถ-pau

อย่างที่เห็น, ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำของผู้ใช้เป็นเปอร์เซ็นต์ของหน่วยความจำกายภาพทั้งหมดและสลับพื้นที่ดิสก์

หากคุณต้องการดูข้อมูลการใช้หน่วยความจำทั้งระบบหรือสรุปการใช้หน่วยความจำของระบบ ให้รัน ฉันสามารถ กับ -ใน ตัวเลือกดังนี้:

$sudoฉันสามารถ-kaw

อย่างที่เห็น, ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำทั้งระบบ

ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำทั้งระบบดังต่อไปนี้:

พื้นที่: ส่วนของระบบที่ใช้หน่วยความจำ

ใช้แล้ว: จำนวนหน่วยความจำกายภาพที่ใช้สำหรับพื้นที่นี้

แคช: จำนวนหน่วยความจำกายภาพที่ใช้เป็นหน่วยความจำแคชสำหรับพื้นที่นี้

ไม่แคช: จำนวนหน่วยความจำกายภาพที่ใช้สำหรับพื้นที่นี้ซึ่งไม่ได้แคชไว้

เช่นเดียวกับเมื่อก่อน คุณสามารถใช้ -NS ตัวเลือกเพื่อดูข้อมูลการใช้หน่วยความจำทั้งระบบทั้งหมดด้วย

$sudoฉันสามารถ-ระมัดระวัง

คุณยังสามารถดูการใช้หน่วยความจำของกระบวนการที่ทำงานบนระบบ Linux ของคุณได้ด้วย ฉันสามารถ .

ในการทำเช่นนั้น ให้เรียกใช้ ฉันสามารถ ดังนี้

$sudoฉันสามารถ-kar

อย่างที่เห็น, ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำของแต่ละกระบวนการที่ทำงานบนเครื่อง Ubuntu ของฉัน

ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำตามกระบวนการต่อไปนี้:

พีไอดี: รหัสกระบวนการของกระบวนการ

ผู้ใช้: ชื่อผู้ใช้ของผู้ใช้ที่เริ่มกระบวนการหรือเป็นเจ้าของกระบวนการ

สั่งการ: คำสั่งที่ใช้ในการเริ่มกระบวนการ

แลกเปลี่ยน: จำนวนพื้นที่ดิสก์สว็อปที่กระบวนการใช้

ยูเอส: นี่คือขนาดชุดที่ไม่ซ้ำของกระบวนการ เป็นจำนวนหน่วยความจำกายภาพที่กระบวนการใช้ซึ่งไม่ได้ใช้ร่วมกับกระบวนการอื่น

พีเอสเอส: นี่คือขนาดชุดตามสัดส่วนของกระบวนการ เป็นจำนวนหน่วยความจำกายภาพและหน่วยความจำกายภาพที่ใช้ร่วมกันที่แบ่งเท่าๆ กันที่กระบวนการใช้

อาร์เอส: นี่คือขนาดชุดผู้อยู่อาศัยของกระบวนการ เป็นจำนวนหน่วยความจำกายภาพและหน่วยความจำกายภาพที่ใช้ร่วมกันที่กระบวนการใช้

คุณยังสามารถดูข้อมูลการใช้หน่วยความจำของไฟล์ไลบรารีแต่ละไฟล์ที่กระบวนการใช้ด้วย ฉันสามารถ .

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

$sudoฉันสามารถ-kamr

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

ฉันสามารถ แสดงข้อมูลการใช้หน่วยความจำที่ชาญฉลาดต่อไปนี้:

แผนที่: ไฟล์ไลบรารีที่แมปกับหน่วยความจำกายภาพของคอมพิวเตอร์ของคุณ

PID: จำนวนกระบวนการทั้งหมดที่ใช้ไฟล์ไลบรารีนี้

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

AVGPSS: นี่คือขนาดชุดตามสัดส่วนเฉลี่ยของกระบวนการที่ใช้ไฟล์ไลบรารีนี้ เป็นหน่วยความจำกายภาพเฉลี่ยที่แชร์ระหว่างแต่ละกระบวนการ (โดยใช้ไฟล์ไลบรารีนี้) ที่กำลังใช้งานอยู่ คุณยังสามารถพูดได้ว่า AVGPSS = PSS/PIDs (ประมาณ)

การตรวจสอบการใช้หน่วยความจำโดยใช้ vmstat:

vmstat เป็นโปรแกรมตรวจสอบการใช้หน่วยความจำใน Linux อีกโปรแกรมหนึ่ง จะแสดงข้อมูลเกือบเหมือนกับใน /proc/meminfo ไฟล์.

หากต้องการดูข้อมูลการใช้หน่วยความจำ ให้เรียกใช้ vmstat ดังนี้

$vmstat -NS

vmstat ควรแสดงข้อมูลการใช้หน่วยความจำทั้งระบบในหน่วย kibibytes ดังที่คุณเห็นในภาพหน้าจอด้านล่าง

vmstat แสดงข้อมูลการใช้หน่วยความจำดังต่อไปนี้:

หน่วยความจำทั้งหมด: หน่วยความจำกายภาพที่มีอยู่ทั้งหมดของคอมพิวเตอร์ของคุณ

หน่วยความจำที่ใช้: หน่วยความจำกายภาพที่ใช้ทั้งหมดของคอมพิวเตอร์ของคุณ

หน่วยความจำว่าง: หน่วยความจำกายภาพฟรีทั้งหมดของคอมพิวเตอร์ของคุณ

แลกเปลี่ยนทั้งหมด: พื้นที่ว่างในดิสก์สวอปทั้งหมด

ใช้แลก: จำนวนพื้นที่ดิสก์สว็อปที่ใช้

แลกเปลี่ยนฟรี: จำนวนพื้นที่ว่างในดิสก์สว็อปยังคงว่างอยู่

สลับแคช: จำนวนพื้นที่ดิสก์สว็อปที่ใช้เป็นแคช

หน่วยความจำบัฟเฟอร์: จำนวนหน่วยความจำกายภาพที่ใช้เป็นบัฟเฟอร์เพื่อเก็บข้อมูลชั่วคราวขณะย้ายจากที่หนึ่งไปยังอีกที่หนึ่ง

หน่วยความจำที่ใช้งาน: จำนวนหน่วยความจำกายภาพที่ใช้แต่ไม่สามารถเรียกคืนได้หากโปรแกรมอื่นต้องการ

หน่วยความจำที่ไม่ใช้งาน: จำนวนหน่วยความจำกายภาพที่ใช้แต่โปรแกรมอื่นเรียกคืนได้ง่ายหากจำเป็น

การตรวจสอบการใช้หน่วยความจำโดยใช้การตรวจสอบระบบ GNOME:

การตรวจสอบระบบ GNOME เป็นซอฟต์แวร์กราฟิกสำหรับตรวจสอบการใช้หน่วยความจำ กระบวนการทำงาน และการใช้ดิสก์ มันถูกติดตั้งไว้ล่วงหน้าบน GNOME 3, Ubuntu MATE, Cinnamon และสภาพแวดล้อมเดสก์ท็อป Budgie

คุณสามารถดูหน่วยความจำและสลับข้อมูลการใช้งานใน ทรัพยากร แท็บของ การตรวจสอบระบบ GNOME ดังที่คุณเห็นในภาพหน้าจอด้านล่าง

มันแสดงหน่วยความจำแบบเรียลไทม์ที่ดีและสลับกราฟการใช้งานในช่วง 60 วินาทีที่ผ่านมา คุณสามารถทราบจำนวนหน่วยความจำและการใช้สว็อปในช่วงการทำงานล่วงเวลาได้จากกราฟนี้

โดยจะแสดงหน่วยความจำกายภาพที่มีอยู่ทั้งหมด จำนวนหน่วยความจำกายภาพที่ใช้ เปอร์เซ็นต์ของหน่วยความจำกายภาพที่ใช้ และจำนวนหน่วยความจำกายภาพที่ใช้เป็นหน่วยความจำแคช นอกจากนี้ยังจะแสดงแผนภูมิวงกลมการใช้หน่วยความจำกายภาพที่ดี

นอกจากนี้ยังจะแสดงพื้นที่ว่างในดิสก์สว็อปทั้งหมด จำนวนพื้นที่สว็อปที่ใช้ เปอร์เซ็นต์ของจำนวนพื้นที่สว็อปที่ใช้ และแผนภูมิวงกลมการใช้งานสว็อปที่ดี

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

หากคุณต้องการดูข้อมูลการใช้หน่วยความจำเพิ่มเติมสำหรับกระบวนการ ให้คลิกขวา (RMB) บนแถบชื่อเรื่องแล้วทำเครื่องหมายที่ หน่วยความจำเสมือน , หน่วยความจำที่อยู่อาศัย , และ หน่วยความจำที่ใช้ร่วมกัน ตามที่แสดงในภาพหน้าจอด้านล่าง

ข้อมูลการใช้หน่วยความจำ Virtual (VIRT), Resident (RES) และ Shared (RSS) ของกระบวนการควรแสดงดังที่คุณเห็นในภาพหน้าจอด้านล่าง

ข้อมูลการใช้หน่วยความจำนี้เหมือนกับใน สูงสุด หรือ htop .

ตามค่าเริ่มต้น GNOME System Monitor จะแสดงเฉพาะกระบวนการที่เป็นของผู้ใช้ล็อกอินของคุณเท่านั้น หากคุณต้องการดูรายการกระบวนการทั้งหมดที่ผู้ใช้ทุกคนในระบบของคุณเป็นเจ้าของ ให้คลิกที่เมนูแฮมเบอร์เกอร์ (

) และเลือก กระบวนการทั้งหมด ตามที่แสดงในภาพหน้าจอด้านล่าง

หากคุณต้องการดูกระบวนการในมุมมองแบบต้นไม้ (ความสัมพันธ์ระหว่างพ่อแม่และลูก) ให้คลิกที่เมนูแฮมเบอร์เกอร์ (

) และตรวจสอบ แสดงการพึ่งพา ตามที่แสดงในภาพหน้าจอด้านล่าง

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

การตรวจสอบการใช้หน่วยความจำโดยใช้ KSysGuard:

KSysGuard เป็นซอฟต์แวร์กราฟิกสำหรับตรวจสอบการใช้หน่วยความจำและกระบวนการทำงาน มันถูกติดตั้งไว้ล่วงหน้าในสภาพแวดล้อมเดสก์ท็อป KDE Plasma

คุณสามารถดูหน่วยความจำและสลับข้อมูลการใช้งานใน โหลดระบบ แท็บของ KSysGuard ดังที่คุณเห็นในภาพหน้าจอด้านล่าง

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

ตามค่าเริ่มต้น KSysGuard จะแสดงหน่วยความจำกายภาพและข้อมูลการใช้หน่วยความจำที่ใช้ร่วมกันสำหรับแต่ละกระบวนการที่ทำงานอยู่

คุณสามารถคลิกขวา (RMB) บนแถบชื่อเรื่องแล้วคลิก แสดงคอลัมน์ 'ขนาดเสมือน' และ แสดงคอลัมน์ 'หน่วยความจำทั้งหมด' เพื่อดูข้อมูลการใช้หน่วยความจำเพิ่มเติม

อย่างที่คุณเห็น KSysGuard จะแสดงขนาดหน่วยความจำเสมือน (VIRT) และการใช้หน่วยความจำกายภาพทั้งหมดสำหรับแต่ละกระบวนการที่ทำงานอยู่ด้วย

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

สำหรับมุมมองแบบต้นไม้ เลือก กระบวนการทั้งหมด ต้นไม้ จากเมนูแบบเลื่อนลง

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

หากคุณต้องการดูเฉพาะกระบวนการระดับระบบ ให้เลือก กระบวนการของระบบ จากเมนูแบบเลื่อนลง กระบวนการเหล่านี้มักจะเป็นของ ราก ผู้ใช้

หากคุณต้องการดูกระบวนการระดับผู้ใช้ ให้เลือก กระบวนการของผู้ใช้ จากเมนูแบบเลื่อนลง กระบวนการเหล่านี้มักจะเป็นเจ้าของโดยผู้ใช้ทั่วไป (ไม่ใช่รูท)

หากคุณต้องการดูเฉพาะกระบวนการที่ผู้ใช้ล็อกอินเป็นเจ้าของ ให้เลือก กระบวนการของตัวเอง .

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

บทสรุป:

ในบทความนี้ ฉันได้กล่าวถึงวิธีทั่วไปในการตรวจสอบการใช้หน่วยความจำบน Linux ฉันได้แสดงวิธีตรวจสอบการใช้หน่วยความจำของระบบ Linux จากบรรทัดคำสั่งและจากสภาพแวดล้อมเดสก์ท็อปแบบกราฟิก ฉันได้อธิบายวิธีการใช้โปรแกรมต่างๆ เช่น ฟรี , สูงสุด , htop , ฉันสามารถ , vmstat , การตรวจสอบระบบ GNOME , และ KSysGuard เพื่อตรวจสอบการใช้งานหน่วยความจำของ Linux ฉันได้กล่าวถึงรูปแบบผลลัพธ์ของคำสั่งและโปรแกรมเหล่านี้ด้วย บทความนี้ควรช่วยให้คุณเริ่มต้นใช้งานการตรวจสอบการใช้หน่วยความจำ Linux และให้ความรู้เชิงลึกเกี่ยวกับเครื่องมือตรวจสอบการใช้หน่วยความจำ Linux