ตั้งแต่เคอร์เนล 2.6.28, Linux ใช้กลยุทธ์การแทนที่เพจSplit Least Recent Used (LRU) เพจที่มีซอร์สระบบไฟล์เช่นข้อความโปรแกรมหรือไลบรารีที่แบ่งใช้เป็นของแคชไฟล์ เพจที่ไม่มีการสำรองข้อมูลระบบไฟล์เรียกว่าเพจที่ไม่ระบุชื่อและประกอบด้วยข้อมูลรันไทม์เช่นพื้นที่สแต็กที่สงวนไว้สำหรับแอปพลิเคชันเป็นต้นโดยทั่วไปหน้าของแคชไฟล์จะถูกกว่าเพื่อขับออกจากหน่วยความจำ . เนื่องจากเพจที่ไม่ระบุชื่อไม่มีการสำรองระบบไฟล์จึงต้องคงอยู่ในหน่วยความจำตราบใดที่โปรแกรมนั้นต้องการเว้นแต่จะมีพื้นที่สว็อปเพื่อจัดเก็บไว้
มันเป็นความเข้าใจผิดที่พบบ่อยว่าพาร์ทิชัน swapจะทำให้ระบบของคุณช้าลง การไม่มีพาร์ติชั่นการแลกเปลี่ยนไม่ได้หมายความว่าเคอร์เนลจะไม่ขับไล่เพจออกจากหน่วยความจำ แต่ก็หมายความว่าเคอร์เนลมีตัวเลือกน้อยลงสำหรับการขับไล่เพจ จำนวนของการแลกเปลี่ยนที่มีจะไม่ส่งผลต่อจำนวนการใช้งาน
Linux สามารถรับมือกับการขาดพื้นที่สว็อปได้เนื่องจากโดยค่าเริ่มต้นนโยบายการบัญชีหน่วยความจำเคอร์เนลอาจทับหน่วยความจำมากเกินไป ข้อเสียคือเมื่อหน่วยความจำกายภาพหมดลงและเคอร์เนลไม่สามารถสลับหน้าเว็บที่ไม่ระบุชื่อไปยังดิสก์กลไกการหมดหน่วยความจำ (OOM-killer) กลไกจะเริ่มต้นการฆ่ากระบวนการ "โกง" ของหน่วยความจำเพื่อเพิ่มหน่วยความจำสำหรับ กระบวนการอื่น ๆ
vm.swappiness
ตัวเลือกปรับแต่งที่มีการเปลี่ยนแปลงความสมดุลระหว่างการสลับหน้าแคชไฟล์ในความโปรดปรานของหน้าเว็บที่ไม่ระบุชื่อได้ แคชไฟล์จะได้รับค่าลำดับความสำคัญตามอำเภอใจ 200 ซึ่งvm.swappiness
ตัวปรับจะถูกหัก ( file_prio=200-vm.swappiness
) โดยค่าเริ่มต้นหน้าไม่ระบุชื่อหน้าเริ่มต้นด้วย 60 ( anon_prio=vm.swappiness
) ซึ่งหมายความว่าโดยค่าเริ่มต้นน้ำหนักที่มีความสำคัญจะอยู่ในระดับปานกลางในความโปรดปรานของหน้าเว็บที่ไม่ระบุชื่อ ( anon_prio=60
, file_prio=200-60=140
) พฤติกรรมที่กำหนดไว้ในmm/vmscan.c
ต้นไม้แหล่งเคอร์เนล
เมื่อได้รับvm.swappiness
จาก100
ลำดับความสำคัญจะเท่ากัน ( file_prio=200-100=100
, anon_prio=100
) สิ่งนี้จะเหมาะสมสำหรับระบบหนักของ I / O หากไม่ต้องการให้เพจจากไฟล์แคชถูกขับไล่เพื่อให้ได้หน้านิรนาม
ตรงกันข้ามการตั้งค่าvm.swappiness
เพื่อ0
จะป้องกันไม่ให้เคอร์เนลจากขี้บ่นหน้าไม่ระบุชื่อในความโปรดปรานของหน้าจากแฟ้มแคช สิ่งนี้อาจมีประโยชน์หากโปรแกรมทำการแคชส่วนใหญ่ด้วยตนเองซึ่งอาจเป็นกรณีของฐานข้อมูลบางตัว ในระบบเดสก์ท็อปสิ่งนี้อาจปรับปรุงการโต้ตอบ แต่ข้อเสียคือประสิทธิภาพการทำงานของ I / O น่าจะได้รับผลกระทบ
ค่าเริ่มต้นมักถูกเลือกให้เป็นสื่อกลางโดยประมาณระหว่างสุดขั้วทั้งสองนี้ เช่นเดียวกับพารามิเตอร์ประสิทธิภาพใด ๆ การปรับvm.swappiness
ควรขึ้นอยู่กับข้อมูลมาตรฐานเปรียบเทียบกับปริมาณงานจริงไม่ใช่แค่ความรู้สึก