จะปลอดภัยหรือไม่ที่จะปิดการแลกเปลี่ยนอย่างถาวร?


54

ระบบของฉันช้าลงโดยเฉพาะเมื่อฉันใช้เบราว์เซอร์เช่น Firefox / Chromium และ Virtual Machines ฉันสังเกตเห็นว่าฉันมี RAM ฟรีอย่างน้อย 3.2 GB (ใช้การตรวจสอบระบบ Gnome) และไม่มีการแลกเปลี่ยน

สิ่งที่ฉันทำตอนนี้คือswapoff -aและประสิทธิภาพของระบบเพิ่มขึ้น 30% ดังนั้นคำถามของฉันคือปลอดภัยswapoffหรือไม่ที่จะใช้ พีซีของฉันจะรีสตาร์ทด้วยจะปลอดภัยswapoffหรือไม่

ป้อนคำอธิบายรูปภาพที่นี่


1
คุณแน่ใจหรือไม่ว่า Ubuntu กำลังใช้ swap ของคุณก่อนที่มันจะใช้ ram อย่างสมบูรณ์หรือไม่ เอาต์พุตที่มีfree -mคืออะไร โดยปกติแล้วการปิด swap จะไม่สร้างความแตกต่างเนื่องจาก Ubuntu พยายามใช้ ram ให้มากที่สุดเท่าที่จะเป็นไปได้และไม่ควรเกิดขึ้นว่า ram ไม่ได้ใช้งานและมีการใช้ swap
ste_kwr

2
เพียงแค่ fyi ฉันไม่มี swap บนระบบ 8GB ของฉันด้วย SSD ตัวเดียว
Lekensteyn

3
คุณสามารถปิดการสลับซึ่งควรจะดีหรือปรับค่า swappiness สามารถพบได้ที่ / proc / sys / vm / swappiness ใช้ 'sysctl' เพื่อการเปลี่ยนแปลงที่ถาวรยิ่งขึ้น สิ่งหนึ่งที่ควรทราบก็คือจำศีลจำต้องสลับ ฉันคิดว่าการนอนไม่ได้ต้องการจริงๆ แต่จำศีลทำ
Marky

@ มีหลายอย่างที่ฉันทำหลังจาก 2.5 GB ram ... มันใช้ swap และฉันต้องรีสตาร์ทจากนั้นระบบก็จะทำงานได้ & บางครั้งหลังจาก 1 GB ระบบของฉันช้า
One Zero

@ ฉันได้ตรวจสอบสิ่งนี้ 5 ถึง 6 ครั้ง
One Zero

คำตอบ:


94

เคอร์เนล 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


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

1
@ TomBrossman ฉันทำได้คุณสามารถตรวจสอบได้ที่askubuntu.com/questions/103915/how-do-i-configure-swappiness
One Zero

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

2
@InkBlend แม้ประหลาดนี้ไม่ใช่คำตอบคือโดยถาม
underscore_d

ในกรณีใด ๆ ขอบคุณมากสำหรับเคล็ดลับ เป็นโลกใหม่ที่ใช้อูบุนตูคนนี้
Don Pflaster

17

อาจ. คุณควรอ่านส่วน 'ทำไมฉันต้องสลับ' ของหน้า FAQของ Ubuntu ที่นี่และตัดสินด้วยตัวคุณเอง

หากคุณให้ความสำคัญกับความเร็วมากกว่าการแลกเปลี่ยน net เพื่อความปลอดภัยคุณควรปิดการใช้งาน

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

หากคุณมี RAM จำนวนมาก (การรัน 4GB + VM ของคุณเป็นการโทรใกล้) คุณก็สามารถทำได้

สำหรับฉันฉันมีระบบปฏิบัติการของฉันบน SSD, RAM 8GB และไม่เคยหยุดนิ่ง ฉันไม่ต้องการ swap ไม่เคยเห็นมันใช้งานมาก่อนและฉันเพิ่งติดตั้งเมื่อติดตั้งจนติดเป็นนิสัย

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


1

ไม่ปลอดภัย เหตุผลก็คือเมื่อระบบไม่มี RAM และจะไม่สามารถสลับใด ๆ ได้ระบบอาจหยุดการทำงานโดยไม่มีโอกาสกู้คืนนอกจากฮาร์ดรีเซ็ต มันไม่ใช่แค่เกี่ยวกับความสามารถในการระงับหรือไม่
ที่มา: 14.04 ของฉันทำอย่างนั้น

คุณควรมีพื้นที่สว็อปขั้นต่ำดูที่คำถามที่พบบ่อยของ Ubuntuสำหรับหมายเลข

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