ความสำคัญของการแบ่งพาร์ติชัน


34
  • วัตถุประสงค์ของการแลกเปลี่ยนพาร์ติชั่นคืออะไร?
  • ฉันจะรู้ได้อย่างไรว่าฉันมีพาร์ทิชัน swap เพียงพอ? ไม่มาก / น้อยเกินไป

Ubuntu PC ของฉันใช้สำหรับสิ่งของทั่วไป:

  • เว็บ (อีเมล, Facebook, ฯลฯ )
  • ภาพยนตร์บางเรื่อง
  • การเล่นเกมหายาก

ดูเหมือนว่าฉันมีการแลกเปลี่ยนมากเกินไป 3GB RAM, 300GB HD และพาร์ติชั่น 8GB สำหรับสลับ
lamcro

2
การสับเปลี่ยนพิเศษที่ไม่ได้ใช้จะไม่ทำร้ายคุณและการเรียกคืนไดรฟ์ 1.7% ของคุณเพื่อให้เล็กลงอาจไม่คุ้มค่ากับความพยายาม ใช่มันใหญ่เกินกว่าที่คุณจะเคยใช้ฉันไม่ต้องกังวลกับมัน
msw

1
นอกจากนี้คุณยังสามารถดูได้ว่าเป็นพาร์ทิชันสลับ "การพิสูจน์ในอนาคต" หากคุณเพิ่มหน่วยความจำเพิ่มเติมให้กับระบบของคุณคุณจะไม่ต้องขยายการแลกเปลี่ยน ... :)
JanC

คำตอบ:


15

พาร์ติชัน swap มีจุดประสงค์สองประการ

  • มันทำหน้าที่เป็น 'สำรอง' RAM นั่นคือถ้าคอมพิวเตอร์ของคุณไม่มี RAM มันจะใช้พื้นที่ swap เป็นแหล่งชั่วคราวของหน่วยความจำเพิ่มเติม โดยเฉพาะอย่างยิ่งมันจะ 'สลับ' รายการที่ไม่ได้ใช้จาก RAM ไปยังพื้นที่สลับเพื่อให้มีพื้นที่ว่างสำหรับแอปพลิเคชันที่ต้องการในทันทีนั้น ไม่เหมาะเนื่องจากอัตราการถ่ายโอนข้อมูลไปยังฮาร์ดไดรฟ์นั้นต่ำกว่า RAM ปกติของคุณอย่างมาก ในทางปฏิบัติหมายความว่ามันช้ากว่ามากในการดึงข้อมูลจากพื้นที่สว็อป

  • มันถูกใช้เมื่อคอมพิวเตอร์ไฮเบอร์เนต การไฮเบอร์เนตเกี่ยวข้องกับการถ่ายภาพ RAM ในสถานะปัจจุบัน (เช่น ISO แทนภาพ) และบันทึกลงในพื้นที่สลับ จากนั้นโหลดรูปภาพนี้ใหม่เมื่อคอมพิวเตอร์รีสตาร์ท

  • เพื่อให้มีประโยชน์มากที่สุดพื้นที่สว็อปควรเป็นอย่างน้อย (RAM * 1.5) ถึงแม้ว่าจะแนะนำให้ใช้มากกว่าก็ตาม ตัวอย่างเช่นในระบบของฉันที่มี RAM ขนาด 3gb ฉันมีพื้นที่สลับเป็น 7.2GB


หากคุณไม่ได้ใช้สิ่งที่ดีที่สุดคือการสลับไปยังดิสก์และใช้ RAM สำหรับสิ่งที่คุณใช้ (ตัวอย่างเช่นการย้าย CUPS หรือ daemons อื่น ๆ ที่คุณไม่ได้ใช้บ่อยครั้งมากในการสลับให้หน่วยความจำเพิ่มเติมสำหรับแคชดิสก์ ข้อมูลที่ใช้บ่อยมาก)
JanC

-1; "(RAM * 1.5) ถึงแม้ว่าจะแนะนำมากกว่า" - บนเดสก์ท็อปพีซี คุณกำลังทำซ้ำภูมิปัญญาดั้งเดิมที่เป็นเท็จมานานหลายปี

@ user280493 น่าสังเกตว่าคำตอบคือปีเก่า ... ปีที่ผ่านมาเมื่อคุณแสดงความคิดเห็น
Crisfole

7

นี่เป็นคำถามที่ใกล้เคียงกับคำถามนี้เกี่ยวกับขนาด“ ถูกต้อง” สำหรับพาร์ติชั่นสว็อป ข้อมูลเดียวกันจำนวนมากจากคำตอบของฉันมี - โดยทั่วไปถ้าคุณต้องการไฮเบอร์เนตโดยทั่วไปคุณต้องการให้พื้นที่สว็อปของคุณมีขนาดใหญ่เท่ากับ RAM ของคุณอย่างน้อยที่สุด เพราะแลกเปลี่ยนเป็นมากช้ากว่า RAM ถ้าคุณเติมขึ้นหลายกิกะไบต์แลกเปลี่ยนคอมพิวเตอร์ของคุณได้กลายเป็นเกือบแน่นอน unusably ช้า

นอกจากนี้ยังไม่มีความจำเป็นในการแลกเปลี่ยนพาร์ติชั่น - ไฟล์ swap (มีอยู่ในระบบไฟล์ linux หลัก) ให้ประสิทธิภาพเดียวกันและทำให้ง่ายขึ้นเล็กน้อยในการเพิ่มพื้นที่สว็อปถ้าคุณตัดสินใจว่าคุณยังไม่พอ


4

นี่เป็นข้อมูลที่ลึกมากเกี่ยวกับการแลกเปลี่ยน

บางคนพูดว่า ram คู่ของคุณ แต่ส่วนตัวฉันแนะนำนี้:

swap = 1.5 X รวม Ram

ตัวอย่าง:

หากคุณมี RAM 2Gb -> swap = 1.5 x 2 = 3

PD: Ubuntu Desktop ใช้ Swap เป็น Hibernate (ไม่ต้องใช้ PC, ไม่ต้องใช้ไฟ, บันทึกสถานะโปรแกรม) หากการไฮเบอร์เนตสำคัญสำหรับคุณให้มีพื้นที่สว็อปเพิ่มขึ้นจากนั้น ram + swap ล้น


2

freeคำสั่งสามารถบอกคุณว่าการแลกเปลี่ยนมากที่คุณกำลังใช้ ตัวอย่างเช่นในเครื่องนี้:

$ free -m
             total       used       free     buffers     cached
Mem:          1947       1863         84         312        758
-/+ buffers/cache:        792       1154
Swap:         4000          3       3997

แสดงให้ฉันเห็นว่าฉันมี 2GB (1947m) RAM และระบบใช้งานได้เกือบทั้งหมด อย่างไรก็ตาม 312m ใช้สำหรับบัฟเฟอร์ I / O และส่วนที่เหลือ (758m) ที่ระบบตัดสินใจเติมดิสก์แคช

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

นั่นคือสาเหตุที่มีบรรทัดที่สองแสดงว่าหากไม่มีการบัฟเฟอร์และแคชฉันจะมี RAM ครึ่งหนึ่ง (1154m) ให้ใช้งาน

บรรทัดที่สามแสดงให้เห็นว่าฉันมีพาร์ติชั่นสว็อปขนาดใหญ่มากเกินไป (มันอยู่ที่นั่นและไม่ได้ทำอะไรเลย) ซึ่งมีการใช้ 3m ขนาดมหึมา นี่คือสิ่งที่เคอร์เนลไม่ได้คาดหวังว่าจะต้องใช้ทุกเวลาในไม่ช้าดังนั้นมันจึงติดอยู่ที่ "ระเบียงด้านหลัง"

ในขณะที่freeให้สแนปชอตกับคุณในขณะนี้vmstatสามารถให้ภาพที่กำลังทำงาน:

$ vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0   3588  86236 316524 769132    0    0    14    13  126   81  4  1 95  0
 0  0   3588  83872 316532 770512    0    0     0    20  264 1229  3  1 96  0

มีข้อมูลมากมาย แต่สิ่งที่น่าสนใจคือไม่มีปริมาณการรับส่งข้อมูล (si) หรือสลับออก (ดังนั้น) ซึ่งหมายความว่าฉันไม่ได้ใช้การแลกเปลี่ยนเลยตลอด 10 วินาทีที่ผ่านมา


0
  • พื้นที่ Swap เป็นส่วนหนึ่งของพื้นที่ฮาร์ดดิสก์ที่ใช้เพื่อรองรับหน่วยความจำ RAM ในพื้นที่ จำกัด RAM มีขนาด จำกัด ดังนั้นบางแอปพลิเคชั่นต้องการ RAM มากกว่าพื้นที่ RAM ที่มีอยู่ในกรณีนี้ Swap Space หรือที่เรียกว่าเป็นหน่วยความจำเสมือนที่ใช้เพื่อสนับสนุน RAM
  • มันช้าลงเมื่อเทียบกับความเร็วของแรม เมื่อเราเรียกใช้แอพพลิเคชั่นขนาดใหญ่แล้วส่วนที่ใช้น้อยที่สุดของแอพพลิเคชั่นนั้นในการสลับไปที่ Swap Area บนฮาร์ดไดรฟ์มันจะถูกสลับกลับจาก Swap Area เมื่อจำเป็น สิ่งนี้ทำให้ระบบปฏิบัติการรู้สึกว่ามี RAM มากกว่าที่เป็นจริง
  • เป็นพาร์ติชันเฉพาะบนฮาร์ดดิสก์ที่สร้างขึ้นขณะติดตั้งระบบปฏิบัติการ
  • มันจะดีถ้าสร้างพื้นที่ Swap ของสองเท่าของขนาด RAM
  • คุณสามารถตรวจสอบการใช้พื้นที่สวอปที่ใช้แล้วและใช้ได้โดยใช้คำสั่งต่อไปนี้:

    $ cat /proc/swaps 
    Filename                Type        Size    Used    Priority
    /dev/sda10              partition   7812092  16      -1
    

0

ฉันมีแล็ปท็อปที่มีฮาร์ดไดรฟ์ช้า แต่มี RAM ค่อนข้างสูง (8GB) ในการตั้งค่านี้ฉันพบว่า swap drive มีประสิทธิภาพในการป้องกันด้วยเหตุผลดังต่อไปนี้:

  1. การเรียกคืนแอพพลิเคชั่นจากการสลับช้าเทียบได้กับการโหลดแอปพลิเคชันจากศูนย์ ฉันอยากจะมีสภาพแวดล้อมที่ตอบสนองอย่างรวดเร็วแม้ว่านั่นหมายความว่าบางครั้งฉันต้องปิดและโหลดแอปพลิเคชันใหม่กว่าสภาพแวดล้อมที่บางครั้งฉันค้างกะทันหัน

  2. ถ้าฉันต้องการความสามารถในการจำศีลนั่นหมายถึงการเขียนข้อมูลจำนวนมากลงดิสก์ นั่นจะเป็นการระบายแบตเตอรี่อย่างต่อเนื่องหากมีการทำอย่างต่อเนื่อง (พฤติกรรมเริ่มต้นของswappiness 60) หรือถ้าทำได้ในเวลาไฮเบอร์เนตเท่านั้น ฉันพบว่าการระงับเป็น RAM แทนที่จะหยุดการทำงานของดิสก์เป็นที่น่าพอใจ มันสามารถพักการทำงานไว้ได้สองสามวันและมันจะยกเลิกการระงับได้เร็วกว่าไฮเบอร์เนตทั้งหมด

  3. เนื่องจากฮาร์ดไดรฟ์ช้าฉันต้องการเก็บRAM 1GB ไว้สำหรับแคชดิสก์อย่างมีประสิทธิภาพการแลกเปลี่ยนหน่วยความจำเพื่อความเร็ว สิ่งนี้ทำให้เครื่องของฉันเร็ว แต่ก็หมายความว่าฉันสามารถใช้ RAM ขนาด 7GB เท่านั้นสำหรับแอปพลิเคชัน ซอฟต์แวร์ที่ฉันใช้เพื่อให้บรรลุผลนั้นคือช่วงต้นของช่วงต้นซึ่งฆ่าแท็บเบราว์เซอร์เก่าเมื่อใช้ 88% ของ RAM ฉันต้องโหลดแท็บเบราว์เซอร์เก่าที่ถูกฆ่าทิ้งเป็นครั้งคราว

คำแนะนำนี้จะไม่ใช้เมื่อใด

  • หากคุณมีฮาร์ดดิสก์ที่รวดเร็วหรือ SSD และมีความกังวลน้อยลงเกี่ยวกับแบตเตอรี่หมดแล้วข้อเสียที่ฉันระบุไว้ด้านบนจะไม่นำมาใช้ (แม้ว่า SSD ยุคต้นอาจมีปัญหาเกี่ยวกับการสึกหรอ แต่ฉันเชื่อว่า SSD ใด ๆ ที่ขายตั้งแต่ปี 2018 น่าจะใช้ได้)

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

  • หากคุณต้องการใช้โหมดไฮเบอร์เนตจริง ๆ (บางทีคุณอาจต้องการระงับแล็ปท็อปของคุณและเปิดใหม่หลังจากผ่านไปสองสามวันโดยไม่ต้องชาร์จ) ดังนั้นคุณต้องใช้ swap swap (แนะนำอย่างน้อยใหญ่เท่ากับ RAM)

ข้อแม้:

  • ซอฟต์แวร์บางตัวที่เราปล่อยให้ทำงานเป็นเวลานาน (โดยเฉพาะระบบปฏิบัติการและสภาพแวดล้อมเดสก์ท็อป) จะโหลดรหัสลงในหน่วยความจำซึ่งจะไม่ถูกใช้งานจริงอีกครั้ง สามารถย้ายหน้าเหล่านี้เพื่อสลับและไม่จำเป็นต้องดึงออกมาอีกดังนั้นจึงหลีกเลี่ยงข้อเสียที่ฉันกล่าวถึงก่อนหน้านี้ ด้วยเหตุนี้บางครั้งฉันจึงสร้างไฟล์สลับขนาด 512MB หรือ 1GB และปล่อยให้หน้าหน่วยความจำที่ไม่ได้ใช้สลับกัน นี่ทำให้ฉันมี RAM เพิ่มขึ้นเล็กน้อยสำหรับแอปพลิเคชัน (จำเป็น: เทคนิคในการวัดขนาดการสลับเพื่อช่วยปรับขนาดของไฟล์สวอปนี้)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.