เหตุใดแรมเต็มบางส่วนจึงทำให้เกิดความล่าช้า


53

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

ฉันสังเกตเห็นว่าบนมือถือมากกว่าบนพีซีเนื่องจากมี RAM ขนาดเล็กเช่นมือถือของฉันมี RAM 2 GB เมื่อฉันมี RAM น้อยกว่า 1 GB มันจะล่าช้ามาก! ทำไมถึงเกิดขึ้นแม้ว่าจะยังมี ~ 1 GB ให้ใช้?


28
ฉันสงสัยว่าคุณกำลังสมมติว่า RAM ที่มีอยู่ไม่ได้ถูกใช้งาน ดังนั้นคุณเห็น RAM 20% พร้อมใช้งานและคิดว่ามีการใช้ RAM เพียง 80% ไม่ถูกต้อง RAM สามารถใช้ได้และพร้อมใช้งาน (ตัวอย่างเช่นเครื่องที่ฉันใช้อยู่ในขณะนี้มี RAM ขนาด 32GB และ 21.1 GB มีให้ใช้ แต่มีเพียง 1.8 GB เท่านั้น)
David Schwartz

2
คุณหมายถึงพื้นที่ว่าง HDD ของฉันกับ RAM ของฉัน? ไม่โกรธ
Mohammed Noureldin

3
พวกเขาสามารถถูกแทนที่แน่นอน แต่นั่นจะมีผลเสียอย่างมากต่อประสิทธิภาพ - เหมือนกับที่คุณเห็น หากชุดการทำงานสูงกว่า RAM ประสิทธิภาพจะแย่ไม่ว่า RAM จะมีจำนวนเท่าใดก็ตาม
David Schwartz

3
อะไรทำให้คุณคิดว่าเป็นเปอร์เซ็นต์ RAM ที่ทำให้อุปกรณ์ทำงานช้า
enkryptor

4
@ MohammedNoureldin ฉันคิดว่าคงมีเหตุผลว่าทำไม RAM ของคุณไม่ว่าง (กระบวนการจำนวนหนึ่งทำงานและทำบางสิ่ง) นี่อาจเป็นเหตุผลเดียวกับที่อุปกรณ์ล้าหลัง การโหลด RAM อาจเป็นเพียงอาการ แต่ไม่ใช่สาเหตุ
enkryptor

คำตอบ:


71

มีส่วนเกี่ยวข้องมากที่นี่ แต่ฉันจะพยายามอธิบายให้ง่ายที่สุดเท่าที่จะทำได้และในทางที่เกี่ยวข้องกับระบบปฏิบัติการใด ๆ

มีหลักการพื้นฐาน 2 ข้อที่นี่:

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

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

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

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

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

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

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


1
คำตอบของคุณช่วยฉันได้มากขอบคุณ! นั่นmemory mangerเป็นส่วนหนึ่งของOSสิทธิของฉัน? ดังนั้นถ้าฉันจัดการกับพอยน์เตอร์และสิ่งต่าง ๆ ในระดับต่ำมากมันจะยังสามารถเพจได้หรือไม่
Mohammed Noureldin

7
ตัวจัดการหน่วยความจำเป็นส่วนหนึ่งของระบบปฏิบัติการ การเพจเป็นฟังก์ชันพื้นฐานของตัวจัดการหน่วยความจำและมีความสำคัญต่อการดำเนินการเช่นเดียวกับการหายใจสำหรับคุณและฉันไม่สามารถหยุดได้
LMiller7

2
@MohammedNoureldin: เมื่อคุณกำลังเขียนโปรแกรมที่ใช้งานพื้นที่ (ที่มีมุมมองที่หน่วยความจำจะแยกจากที่ของเคอร์เนลและกระบวนการอื่น ๆ ) คุณไม่สามารถเข้าถึงหน่วยความจำกายภาพโดยตรง สิ่งที่คุณสามารถเข้าถึงได้คือมุมมองในหน่วยความจำที่จัดการโดย - คุณเดาได้ - ตัวจัดการหน่วยความจำพร้อมคุณสมบัติทั้งหมด (อาจ) รวมถึงการเพจ พอยน์เตอร์หน่วยความจำอ้างอิงเฉพาะจุดในพื้นที่ที่อยู่ของมุมมองหน่วยความจำ เป็นแนวคิดภาษาที่ใช้ในเคอร์เนลและรหัสพื้นที่ผู้ใช้ แต่นั่นไม่ได้หมายความว่ามุมมองหน่วยความจำทั้งสองเหมือนกัน อย่าสับสนระหว่างการจัดการหน่วยความจำด้วยเคอร์เนล MM!
David Foerster

6
มันเป็น 'ชัดเจน' หรือ 'รู้จัก' แต่อาจยังควรเพิ่มในคำตอบนี้: หน่วยความจำ (ram) อยู่ในลำดับ 1000x เร็วกว่าฮาร์ดไดรฟ์ (ดีขึ้นอยู่กับหลายสิ่งเช่น ssd / ide / sata เป็นต้น) ระบบปฏิบัติการรันโค้ดจาก ram (+ cache) ไม่ใช่จากดิสก์ เมื่อหน่วยความจำเหลือน้อยและระบบปฏิบัติการจำเป็นต้อง "สลับ" ส่วนของรหัส ("ไม่ได้ใช้") จากหน่วยความจำไปยังดิสก์เพื่อให้หน่วยความจำว่างเพื่อให้ทำงานอย่างอื่นนี่จะใช้เวลานาน (การแลกเปลี่ยน) และ หากสิ่งนี้เกิดขึ้นบ่อยครั้ง (เช่นคุณมีหลายโปรแกรมแต่ละโปรแกรมต้องการการสลับเพื่อให้โหลดรหัสของพวกเขาลงในหน่วยความจำ) มันจะช้าลงมาก
Olivier Dulac

3
เรามักจะไม่ใช้คำว่า "สลับ" เพื่ออ้างถึงการโหลดรหัสลงในหน่วยความจำ มักเรียกว่า "ความผิดพลาด" โดยปกติแล้วคำว่า "swap" จะใช้สำหรับข้อมูลที่ต้องเขียนลงดิสก์ก่อนที่จะสามารถนำออกจาก RAM ได้
David Schwartz

30

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


11
ที่จริงแล้วแอปพลิเคชันไม่จำเป็นต้อง "ล้าง" แคช พวกเขาแค่ขอ RAM จากระบบปฏิบัติการ ระบบปฏิบัติการที่เห็นว่ามันไม่มีแรมที่ไม่ได้ใช้จะล้างส่วนของแคชไฟล์และมอบแรมเป็นศูนย์ให้กับแอพพลิเคชั่น แอปพลิเคชันไม่สามารถบอกได้ว่า RAM นั้นมาจากที่ใด
MSalters

5
@MSalters ใช่ฉันเห็นด้วยแอปพลิเคชันจะขอ RAM และระบบปฏิบัติการล้างแคชหากจำเป็น ฉันพยายามทำให้มันง่าย
Mike Scott

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

4

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

การเพจคือโครงร่างการจัดการหน่วยความจำซึ่งบล็อกหน่วยความจำขนาดคงที่มีกระบวนการที่กำหนดให้ เมื่อการใช้หน่วยความจำเพิ่มขึ้นถึงระดับสูง (เช่นความจุ 80%) เพจจะเริ่มขยายจาก RAM ไปเป็น vRAM (RAM เสมือน)

vRAM ตั้งอยู่ในที่เก็บข้อมูลระบบโดยปกติแล้วจะอยู่ในฮาร์ดไดรฟ์หรือที่เก็บข้อมูลขนาดใหญ่อื่น ๆ

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

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

อย่างไรก็ตามสิ่งนี้ทำให้เกิดผลกระทบต่อประสิทธิภาพเพียงเล็กน้อยเท่านั้น เมื่ออัตราการเพจที่ vRAM เพิ่มขึ้นอย่างมาก (เมื่อ RAM มีความจุใกล้เคียง) การฟาดฟันจะเกิดขึ้น

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

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

ค้นหาเพิ่มเติมเกี่ยวกับการฟาดฟันที่นี่ !

ขอบคุณใหญ่เพื่อร่วมสมทบของคำตอบนี้รวมถึงแดเนียล B , xenoidและจอนเบนท์ลีย์


3
มันไม่เหมือนการฟาดฟันที่ตั้งใจ เป็นเพียงผลข้างเคียงของการเพจและการแข่งขันสำหรับหน่วยความจำกายภาพ นอกจากนี้หน่วยความจำเสมือนไม่ได้“ สร้าง” โดยการย้ายหน้าไปยังดิสก์
Daniel B

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

8
ไม่คุณกำลังสับสนในการกำจัดและการเพจ การทิ้งขยะเป็นเพียงการเพจกลายเป็นพยาธิวิทยา
xenoid

@xenoid Paging เป็นรูปแบบการจัดการหน่วยความจำ มันเหมือนกับว่าฉันสับสนกับกวางและรถยนต์กับระบบทางหลวง Thrashing เป็นกระบวนการที่ทำให้ประสิทธิภาพลดลง อย่างไรก็ตามฉันเห็นด้วยกับคุณว่านี่เป็นผลมาจากระบบการเพจ
จะ

1
ความคิดเห็นรวมอยู่ในคำตอบของ wiki รู้สึกอิสระที่จะแก้ไข
จะ

1

เป็นเพราะระบบปฏิบัติการต้องทำเพจจิ้งมากมาย (การโหลดบางส่วนของโปรแกรมที่ใช้งานอยู่) และการแลกเปลี่ยน (การย้ายข้อมูลใน RAM เป็น HD และในทางกลับกัน) เพื่อให้ซอฟต์แวร์ของคุณทำงานต่อไป เมื่อจำเป็นต้องโหลดหน้าใหม่ซึ่งอาจต้องใช้พื้นที่มากกว่า availble 20% ระบบปฏิบัติการจะต้องสลับหน้าที่มีอยู่ใน RAM ซึ่งพิจารณาว่ามีโอกาสน้อยที่จะใช้ในไม่ช้า โดยเฉพาะอย่างยิ่งเมื่อเริ่มต้นโปรแกรมอื่น ๆ การสลับหน้าและย้อนกลับใช้เวลานานและทำให้พีซีของคุณช้าลงอย่างมากเพราะตอนนี้คุณทำงานด้วยความเร็วของ HD ไม่ใช่ RAM

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


ROM เป็นศัพท์เฉพาะสำหรับ HD เมื่อพูดถึงแคช, การเพจเป็นต้นสิ่งใด ๆ ที่ไม่ใช่หน่วยความจำที่ใช้งานได้ และ ROM มักจะช้ากว่าแรมเกือบจะเป็น คอมพิวเตอร์เก่าคัดลอกข้อมูลจาก ROM ไปยัง RAM (ROM Shadowing) เมื่อทำการบู๊ตเพราะมันทำงานได้เร็วขึ้น
Gilles Lesire

1
แน่นอน แต่ ROM และ RAM นั้นยังใช้เป็นหน่วยความจำแบบไม่ลบเลือนหรือไม่เมื่อเทียบกับการระเหย? โดยทั่วไปแล้ว BTW ROM จะช้ากว่านั้น ROM จะถูกคัดลอกไปยัง RAM (ROM Shadowing) ในการบูตเพื่อเพิ่มประสิทธิภาพ แต่แน่นอนฉันจะเปลี่ยนการอ้างอิงเดียวเพื่อแก้ไข nitpicking ของคุณ ;)
Gilles Lesire

1

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

  1. ลงทะเบียนประมวลผล - ในแง่การปฏิบัติลงทะเบียนที่มีอยู่ภายในรอบ 1 หน่วยประมวลผล เมื่อพิจารณาว่าโปรเซสเซอร์ประมวลผลเป็นพันล้านรอบต่อวินาที (3 GHz = 3 พันล้านรอบต่อวินาที) นี่มันเร็วอย่างบ้าคลั่ง
  2. แคชตัวประมวลผล - ขึ้นอยู่กับระดับ แต่สิ่งเหล่านี้ยังค่อนข้างเร็ว (ความพร้อมใช้งาน 3-5 รอบสำหรับแคช L1)
  3. หน่วยความจำเข้าถึงโดยสุ่ม (RAM) - ส่วนที่สุ่มหมายความว่าคุณไม่รู้ว่าอยู่ในสถานะใดเมื่อคุณเข้าถึง นึกถึงคนส่งพัสดุที่ต้องหยุดหยิบพัสดุเดินไปที่ประตูแล้วกดกริ่งที่ประตูแล้วรอการตอบกลับ บางทีคุณอาจไม่รอเลยหรืออาจจะรอสักครู่หรือสองนาทีเพื่อให้มิสซิสสมิ ธ สลับไปที่ประตูบ้านด้านหลัง ในแง่การปฏิบัติเรากำลังพูดถึงที่ใดก็ได้ตั้งแต่ 14-27 รอบ (ขึ้นอยู่กับสถานะของ RAM เมื่อเราเข้าถึง)
  4. ฮาร์ดดิสก์ไดรฟ์ - มีกระบวนการทางกายภาพที่นี่ตอนนี้และในขณะที่มันเกิดขึ้นเร็วที่สุดเท่าที่เป็นไปได้ ในแง่การปฏิบัติตัว RPM ฮาร์ดดิสก์ 7,200 สามารถดำเนินการปฏิวัติในประมาณ 4 มิลลิวินาทีหรือบางรอบ750,000 วงจรสำหรับหน่วยประมวลผล นั่นช้า

ผู้จัดการหน่วยความจำเสมือนเป็นนักการพนัน มันเป็นการเดิมพันที่คุณไม่ต้องการ RAM ทั้งหมดตลอดเวลาดังนั้นมันจึงเป็นการคาดเดาที่มีการศึกษาและทำให้ลูกเต๋าที่โปรแกรมเอกสารของคุณ (ซึ่งอยู่ในพื้นหลังเป็นเวลา 10 นาทีในขณะที่คุณอ่านข้อความนี้) ไม่ใช่ สำคัญมากและผลักไปที่ HDD

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


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

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

0

การฟาดฟันตอบเล็บสวยมาก หากคุณสามารถทำได้คุณสามารถย่อให้เล็กที่สุดว่าเกิดเหตุการณ์นี้ได้เร็วเพียงใดโดยการลดความ swappiness (จำนวน ram ที่ระบบอนุญาตให้ใช้ก่อนที่จะย้ายสิ่งของเพื่อเปลี่ยนพื้นที่) ฉันชอบที่จะตั้งระบบให้ไม่ต้องสลับจนกว่า ram จะถึง 99% สำหรับแอปพลิเคชันเซิร์ฟเวอร์เนื่องจากค่าเริ่มต้นจะมีประสิทธิภาพหมายความว่าฉันจะต้องเขียนโค้ดสำหรับสิ่งต่าง ๆ เพื่อใช้ประโยชน์เพียง 80% ของ ram เพื่อใช้ประโยชน์จากแคชโดยไม่ถูกลงโทษ ระบบเข้าสู่พื้นที่สว็อป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.