คำตอบสั้น ๆ :
ตั้งค่าไฟล์ swap ของคุณเป็น:
round(sqrt(RAM))
ถ้าคุณไม่ใช้การไฮเบอร์เนต
RAM+round(sqrt(RAM))
ถ้าคุณใช้การไฮเบอร์เนต
ตั้งค่าของคุณswappiness
เป็น 10 บนเดสก์ท็อปแต่ไม่ใช่บนเซิร์ฟเวอร์!
คำตอบที่ยาว:
ในอดีตที่ผ่านมา:
กฎของหัวแม่มือที่ใช้ในช่วง 25 ปีที่ผ่านมามีอย่างน้อย 1xRAM และ 2xRAM สูงสุดนั่นคือสิ่งที่คุณจะเห็นตลอดเวลา
ขั้นต่ำนั้นถูกย้อนกลับไปในยุคหินเมื่อฉันยังเป็นวัยรุ่นและไดโนเสาร์ยังคงท่องไปทั่วโลกและเนื่องจาก RAM มีราคาแพงเกินไปและคุณต้องการพื้นที่แลกเปลี่ยนนั้นเพื่อให้สามารถทำสิ่งใดให้สำเร็จ
จำนวนสูงสุดถูกตั้งค่าไว้ในขณะนั้นเนื่องจากผลตอบแทนลดลง: มันช้าเกินไปที่จะต้องเปลี่ยนหน่วยความจำมากเนื่องจากการเข้าถึง HDD นั้นช้ากว่า RAM 1,000 เท่า: ดีในกรณีฉุกเฉิน แต่ไม่ค่อยดีสำหรับการใช้งานทุกวัน! ในเวลานั้นเมื่อคุณมีพื้นที่สว็อปหมดมันถึงเวลาที่ต้องเพิ่มแรมอีก! (ซึ่งยังคงเป็นจริงในวันนี้)
ในปัจจุบัน:
หากคุณไม่ได้ใช้ไฮเบอร์เนตและหน่วยความจำของคุณอยู่ในส่วนที่เกินจาก 1GByte กฎใหม่ของหัวแม่มือเป็นround(sqrt(RAM))
ที่RAM
เห็นได้ชัดขนาด RAM ของคุณใน GB และsqrt
ราก :-)
หากคุณใช้การจำศีลคุณจะต้องสามารถสลับ RAM ทั้งหมด + RAM ที่สลับไปยังดิสก์ทั้งหมดแล้วสูตรจึงกลายเป็น: RAM+round(sqrt(RAM))
กฎของผลตอบแทนลดลงยังคงถือหุ้นในวันนี้สำหรับสูงสุด แต่จนกว่าคุณจะทดสอบการใช้งานจริงของคุณจะพา 2xRAM เป็นเพียงเสียพื้นที่ดิสก์จึงไม่ใช้สูงสุดถ้าคุณทำงานออกจากพื้นที่ swap โดยใช้วิธีการอื่น
ทั้งหมดเหล่านี้เข้าด้วยกันให้ตารางต่อไปนี้: (3 คอลัมน์สุดท้ายแสดงถึงพื้นที่สว็อป)
RAM No hibernation With Hibernation Maximum
1GB 1GB 2GB 2GB
2GB 1GB 3GB 4GB
3GB 2GB 5GB 6GB
4GB 2GB 6GB 8GB
5GB 2GB 7GB 10GB
6GB 2GB 8GB 12GB
8GB 3GB 11GB 16GB
12GB 3GB 15GB 24GB
16GB 4GB 20GB 32GB
24GB 5GB 29GB 48GB
32GB 6GB 38GB 64GB
64GB 8GB 72GB 128GB
128GB 11GB 139GB 256GB
256GB 16GB 272GB 512GB
512GB 23GB 535GB 1TB
1TB 32GB 1056GB 2TB
2TB 46GB 2094GB 4TB
4TB 64GB 4160GB 8TB
8TB 91GB 8283GB 16TB
ด้านบนเป็นเพียงกฎของหัวแม่มือ มันไม่ใช่กฎของแรงโน้มถ่วง!
คุณสามารถฝ่าฝืนกฎนี้ (ต่างจากกฎแรงโน้มถ่วง) หากกรณีการใช้งานเฉพาะของคุณแตกต่างกัน!
เคล็ดลับสำหรับมืออาชีพ: จัดสรร SWAP ทุกครั้งที่เริ่มต้น HDD เนื่องจากหัวจำเป็นต้องเคลื่อนย้ายที่ด้านในของดิสก์ให้น้อยลง
ใช่:บน SSD นั้นไม่สำคัญว่าคุณจะหาพื้นที่สว็อปอีกต่อไปแล้วเพราะพวกเขาใช้อุโมงค์ควอนตัมแทนหัวที่เคลื่อนที่และ SSD ที่ทันสมัยใช้เซลล์หน่วยความจำทั้งหมดของพวกเขา
วิธีทดสอบว่าการใช้งาน swap ของคุณแตกต่างจากกฎ "ทั่วไป" หรือไม่:
เพิ่งดำเนินการ:
for szFile in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile
done | sort --key 2 --numeric --reverse | more
ซึ่งจะให้รายการโปรแกรมที่รันอยู่ทั้งหมดซึ่งถูกสลับ (กับโปรแกรมที่ใช้พื้นที่สว็อปมากที่สุดอยู่ด้านบน)
หากคุณใช้งานมากกว่าสองสาม KB: ปรับขนาดให้มากขึ้นอย่างน้อยก็มิฉะนั้นอย่ากังวล ...
หากคุณอยู่บนเซิร์ฟเวอร์หยุดอ่านเดี๋ยวนี้: คุณพร้อมแล้ว!
ถ้าคุณอยู่ในลูกค้าเดสก์ทอป / แล็ปท็อป (ไม่เซิร์ฟเวอร์) ที่คุณต้องการ GUI ของคุณจะตอบสนองเป็นไปได้และแลกเปลี่ยนเฉพาะเมื่อคุณต้องการจริงๆ Ubuntu ได้รับการปรับให้เหมาะกับการแลกเปลี่ยนก่อนเพื่อการใช้เซิร์ฟเวอร์แต่ในไคลเอนต์ของคุณคุณต้องการแก้ไขรูปภาพดิบขนาดใหญ่ 250 เมกะพิกเซลgimp
เพื่อให้รวดเร็วดังนั้นการตั้งค่าswappiness
เป็น 10 จะทำให้เคอร์เนลไม่ต้องสลับเร็วเกินไป ไม่สลับสายเกินไป:
หากคุณมีsysctl.conf
ไฟล์
sudo nano /etc/sysctl.conf
หรือ
หากคุณมีsysctl.d
ไดเรกทอรี แต่ไม่มีsysctl.conf
ไฟล์ให้สร้างไฟล์ใหม่:
sudo nano /etc/sysctl.d/35_swap.conf
และในทั้งสองกรณีเพิ่ม:
# change "swappiness" from default 60 to 10
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10
ที่ส่วนท้ายของไฟล์ให้บันทึกไฟล์ ( Ctrl+ XY+ Enterในนาโน) และดำเนินการ a:
sysctl --system
เพื่อโหลดพารามิเตอร์หรือใช้วิธี Window $ และรีบูต ... :-)