วิธีการกำหนดค่า swappiness ในการจัดการหน่วยความจำลินุกซ์?


11

พารามิเตอร์ swappiness ควบคุมแนวโน้มของเคอร์เนลเพื่อย้ายกระบวนการออกจากหน่วยความจำกายภาพและไปยัง swap disk ตั้งค่าเริ่มต้นคืออะไรและวิธีการกำหนดค่าที่จะปรับปรุงประสิทธิภาพโดยรวม ?


3
หลังจากเปลี่ยน swappiness ฉันพบว่ามีประโยชน์ในการล้างค่า swap ด้วยswapoff -aเพื่อเริ่มใหม่อีกครั้ง serverfault.com/a/354384/203035
Nemo

คำตอบ:


10

เคอร์เนล Linux จัดเตรียมการตั้งค่าที่สามารถปรับเปลี่ยนได้

$ cat /proc/sys/vm/swappiness
60  

เปิด/etc/sysctl.confเป็นรูต จากนั้นเปลี่ยนหรือเพิ่มบรรทัดนี้ในไฟล์:

vm.swappiness = 10

สำหรับการเปลี่ยนค่า swappiness ลองคำสั่งนี้ชั่วคราว:

$ echo 50 > /proc/sys/vm/swappiness

1
มันตอบอย่างไร "วิธีการตั้งค่าเพื่อปรับปรุงประสิทธิภาพโดยรวม"
techraf

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

2
คุณไม่จำเป็นต้องsudo sysctl -p /etc/sysctl.confทำการเปลี่ยนแปลงเพื่อให้มีผลหรือไม่
pkaramol

11

จากSwappiness, Wikipedia

คุณสามารถตั้งค่านี้ในไฟล์เสมือน/proc/sys/vm/swappiness ค่าที่กล่าวถึงจะตัดสินใจว่าควรใช้พื้นที่สว็อปด้านล่างนี้เป็นค่าที่มีเจตนา

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

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


@techraf อัปเดตคำตอบ
Keyshov Borate

1
ใน VMs ฉันแนะนำให้เปลี่ยนอย่างไรก็ตามถึง 10 ในกรณี
Rui F Ribeiro

2

ใน RedHat / CentOS ค่าเริ่มต้นคือ 60
"เพื่อปรับปรุงประสิทธิภาพ" เป็นคำที่กว้างมาก คุณพยายามปรับปรุงประสิทธิภาพการทำงานใด

คุณมีปัญหากับหน่วยความจำเหลือน้อยหรือไม่?
SWAP ระบบของคุณเมื่อยังมีหน่วยความจำว่าง / หน่วยความจำแคช?

ใน Linux free RAM = RAM ที่สูญเปล่าดังนั้นหน่วยความจำฟรีเกือบทั้งหมดจึงใช้สำหรับแคชดิสก์
มีบางกรณีที่มี swappiness = 60 ซึ่งหน้าเว็บในหน่วยความจำถูกย้ายไปที่ SWAP หากไม่ได้รับการเข้าถึงเป็นระยะเวลานานไม่ว่าคุณจะมี RAM ที่ไม่ได้ถูกจัดสรร
การย้ายหน้าหน่วยความจำไปที่ SWAP นั้นไม่จำเป็นว่าจะเป็นเรื่องเลวร้าย

โปรดอธิบายเพิ่มเติมเกี่ยวกับปัญหาของคุณเพื่อรับรายละเอียดเพิ่มเติม

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