เคอร์เนล Linux จัดเตรียมการตั้งค่าที่ปรับแต่งได้ซึ่งควบคุมความถี่ในการใช้ไฟล์สวอปที่เรียกว่า swappiness
การตั้งค่า swappiness ที่ศูนย์หมายความว่าดิสก์จะหลีกเลี่ยงเว้นแต่จำเป็นจริงๆ (หน่วยความจำของคุณหมด) ในขณะที่การตั้งค่า swappiness เท่ากับ100หมายความว่าโปรแกรมจะถูกสลับเป็นดิสก์เกือบจะในทันที
ระบบ Ubuntu มาพร้อมกับค่าเริ่มต้นที่ 60 หมายความว่าไฟล์ swap จะถูกใช้บ่อยหากการใช้หน่วยความจำอยู่ประมาณครึ่งหนึ่งของ RAM ของฉัน คุณสามารถตรวจสอบค่า swappiness ของระบบของคุณเองโดยการเรียกใช้:
one@onezero:~$ cat /proc/sys/vm/swappiness
60
เนื่องจากฉันมี RAM 4 GB ดังนั้นฉันต้องการเปลี่ยนให้เหลือ 10 หรือ 15 ไฟล์ swap จะถูกใช้เมื่อการใช้ RAM ของฉันประมาณ80หรือ90เปอร์เซ็นต์เท่านั้น เมื่อต้องการเปลี่ยนค่า swappiness /etc/sysctl.conf as root
ระบบเปิด จากนั้นเปลี่ยนหรือเพิ่มบรรทัดนี้ในไฟล์:
vm.swappiness = 10
รีบูตเพื่อให้การเปลี่ยนแปลงมีผล
คุณสามารถเปลี่ยนค่าในขณะที่ระบบของคุณยังคงทำงานได้
sysctl vm.swappiness=10
คุณสามารถล้างค่า swap ของคุณได้ด้วยการรันswapoff -a
จากนั้นswapon -a
เป็น root แทนที่จะรีบูตเครื่องเพื่อให้ได้ผลที่เหมือนกัน
เพื่อคำนวณสูตรการแลกเปลี่ยนของคุณ
free -m (total) / 100 = A
A * 10
root@onezero:/home/one# free -m
total used free shared buffers cached
Mem: 3950 2262 1687 0 407 952
-/+ buffers/cache: 903 3047
Swap: 1953 0 1953
ดังนั้นทั้งหมดคือ 3950/100 = 39.5 * 10 = 395
ดังนั้นความหมายคือเมื่อเหลือแรม10% 395 MB จึงเริ่มใช้ swapiness