การใช้ไฟล์เป็นหน่วยความจำการแลกเปลี่ยน (SWAP)

ผู้แต่ง: Maikel Llamaret เฮเรเดีย โพสต์บนเว็บไซต์ของ ลำไส้.

นานมาแล้ว, GNU / Linuxถูก จำกัด ให้ใช้พาร์ติชันหน่วยความจำ swap เดียวได้สูงสุด 128 MBสิ่งที่วิพากษ์วิจารณ์อย่างมากจากผู้ว่าแกนกลางของ Linus Torvalds

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

บางครั้งหลังจากติดตั้งระบบของเราเราพบว่าตัวเองต้องการเพิ่มหน่วยความจำ SWAP ที่เราได้กำหนดค่าไว้ในระหว่างการติดตั้งสิ่งที่สามารถทำได้ง่ายๆโดยการเพิ่มขนาดของพาร์ติชั่นที่เลือกเพื่อวัตถุประสงค์เหล่านี้ แต่ ... จะทำอย่างไรถ้าคุณไม่ต้องการสัมผัสกับตารางพาร์ติชัน?

SWAP คืออะไรและทำงานอย่างไร?

พื้นที่หน่วยความจำสลับหรือ แลกเปลี่ยนคือสิ่งที่เรียกว่าหน่วยความจำเสมือน ความแตกต่างระหว่างหน่วยความจำจริงและเสมือนคือหน่วยความจำเสมือนใช้พื้นที่บนฮาร์ดดิสก์แทนโมดูลหน่วยความจำ

เมื่อหน่วยความจำจริงหมดระบบจะคัดลอกเนื้อหาบางส่วนไปยังพื้นที่หน่วยความจำ swap โดยตรงเพื่อดำเนินการอื่น ๆ

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

ใช้ไฟล์เป็นหน่วยความจำสลับ

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

เมื่อพิจารณาว่าไฟล์ swap สามารถวางไว้ในไดเร็กทอรีใดก็ได้บนฮาร์ดดิสก์คำสั่งจะดำเนินการ ddโดยระบุว่าจะเขียนเลขศูนย์ (ถ้า = / dev / ศูนย์) เพื่อสร้างไฟล์ / swap (ของ = / swap)ในบล็อก 1024 ไบต์ (bs = 1024) จนกว่าจะเสร็จสิ้นจำนวนหนึ่งเป็นไบต์ (count = [ปริมาณคูณด้วยค่า bs]) ตัวอย่างต่อไปนี้ดำเนินการข้างต้นจนกว่า 524288000 ไบต์จะเสร็จสมบูรณ์ (หารด้วย 1024 เท่ากับ 512MB):

ในการสร้างไฟล์ที่เราจะใช้เป็น SWAP เราจะเปิดคอนโซลและพิมพ์สิ่งต่อไปนี้ (ในฐานะรูท):

dd if=/dev/zero of=/swap bs=1024 count=512000

ขั้นตอนข้างต้นอาจใช้เวลาสักครู่โปรดอดใจรอ จากนั้นในการจัดรูปแบบไฟล์ที่สร้างขึ้นเป็นหน่วยความจำสลับเราจะดำเนินการคำสั่ง mkswapดังต่อไปนี้ (เสมอเป็นรูท):

mkswap /swap

คุณจะถูกส่งกลับผลลัพธ์บนคอนโซลที่คล้ายกับสิ่งต่อไปนี้:

การตั้งค่า swapspace เวอร์ชัน 1 ขนาด = 511996 KiB no label, UUID = fed2aba5-77c6-4780-9a78-4ae5e19c506b

ในการเปิดใช้งานพาร์ติชันและนำไปใช้โดยระบบปฏิบัติการทันทีให้ดำเนินการคำสั่ง สวอปปอน. ในกรณีของเราเราจะเปิดใช้งานเป็นพาร์ติชันหน่วยความจำ swap ไฟล์ / swap ที่เราสร้างและจัดรูปแบบ SWAP ในขั้นตอนก่อนหน้านี้:

swapon /swap

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

เพื่อให้ไฟล์นี้ใช้เป็นหน่วยความจำสลับโดยอัตโนมัติในการบูตระบบครั้งต่อไปเราจะแก้ไข  / etc / fstab (โดยใช้ nano, gedit, kate, kwrite, vim หรือโปรแกรมแก้ไขข้อความธรรมดาที่คุณเลือก) เพิ่มบรรทัดที่เกี่ยวข้องดังต่อไปนี้โดยที่แทนอุปกรณ์เส้นทางของไฟล์ swap ที่สร้างขึ้นจะถูกใส่:

เราเปิดไฟล์

nano /etc/fstab

และเราเพิ่ม:

/swap         swap      swap     defaults               0 0

พร้อม !!!!

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

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   คอท dijo

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

    1.    auroszx dijo

      ใช่มันดีมากไม่มากก็น้อยนั่นคือวิธีที่ zramswap ที่ฉันติดตั้งทำ (ฉันไม่ชอบพาร์ติชั่นสลัดฉันไม่แยกอะไรเลย)
      หากคุณต้องการใช้ usb เป็น swap คุณเพียงแค่จัดรูปแบบพาร์ติชันเพื่อจุดประสงค์นั้นและเพิ่มลงใน fstab เปลี่ยน / swap เป็น / dev / sdb1 (สมมติว่าเส้นทางของ usb ของคุณคือ sdb1)

      1.    ซีก84 dijo

        คุณจะมีความสุขกับ btrfs และซับโวลุ่ม

      2.    คอท dijo

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

        เมื่อเห็นความคิดเห็นของ @nonamed สาเหตุของการแก้ปัญหาเช่นนี้ (และเป็นเพียงการมีส่วนร่วมเท่านั้นไม่ใช่เป็นการเริ่มต้นของสงครามทีมและด้วยความเคารพ) ในช่วงเวลาที่มีทีมที่มีประสิทธิภาพดีกว่าอยู่แล้วและดูเหมือนว่าไม่จำเป็น ฉันคิดได้ 3 คะแนน:

        ที่ 1. และชัดเจนที่สุดคือใช้ในอุปกรณ์เก่า
        ครั้งที่ 2. ฉันยังคิดถึงแล็ปท็อปรุ่นใหม่ที่มีความจุ 1GB หรือ 2gb "MINUS" ซึ่งเป็นหน่วยความจำที่กำหนดไว้สำหรับการ์ดแสดงผล
        วันที่ 3. มันชัดเจนใช่มั้ย? เพราะมันน่าสนใจและทำได้เพราะ ... ฮิฮิ! XD

        อาศิรพจน์

        1.    k1000 dijo

          หรือถ้าคุณลืมสร้าง SWAP และคุณไม่ต้องการยุ่งกับตารางพาร์ติชัน

        2.    คาเทเคียว dijo

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

    2.    Altair dijo

      ใช่คุณสร้างพาร์ติชัน swap บน usb และติดตั้งด้วย sudo swapon / dev / sdX และคุณสามารถเพิ่ม -s 60 เข้าไปเพื่อให้มีลำดับความสำคัญเหนือพาร์ติชัน swap อื่น ๆ นอกจากนี้คุณยังสามารถเพิ่มลงใน fstab เพื่อให้ติดตั้งโดยอัตโนมัติหรือสร้างไฟล์ swap ตามที่ระบุไว้ในคู่มือที่ยอดเยี่ยมเกี่ยวกับ usb 😉

  2.   สเลเยอร์กร dijo

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

  3.   เอเลนดิลนาซิล dijo

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

  4.   ไม่มีชื่อ dijo

    บางครั้งฉันสงสัยว่ามันคุ้มค่าที่จะมีการแลกเปลี่ยนหรือไม่ฉันมักจะมีมันอยู่ที่ 0% บางทีมันอาจเกี่ยวข้องกับหน่วยความจำฉันมีแรม 4Gb ฉันเดาว่าหน่วยความจำที่มากขึ้นก็ทำให้รู้สึกน้อยลงในการใช้ swap

    1.    แดเนียล โรจาส dijo

      ใช่ขึ้นอยู่กับหน่วยความจำที่คุณมีอยู่ในเครื่อง ฉันยังมีมันอยู่ที่ 0% เสมอและการมี RAM 4Gb ฉันให้แค่ 512MB กับพาร์ติชัน swap

      1.    pzero dijo

        ในการติดตั้งครั้งล่าสุดฉันได้ลบการแลกเปลี่ยน ถึงกระนั้นด้วย RAM 24GB ฉันเคยเห็นการใช้ swap เพียงเล็กน้อย (ไม่กี่ KB) ในบางครั้งแม้ว่าจะไม่ได้ใช้ RAM ส่วนใหญ่ก็ตาม ทำไม? ฉันไม่รู้

  5.   ซีก84 dijo

    ฉันต้องทำสิ่งนี้ใน sabayon ฉันไม่สามารถหาสาเหตุได้ว่าทำไมมันถึงกิน RAM และ swap ทั้งหมด

  6.   นายลินุกซ์ dijo

    ฉันจะพูดเสมอว่า DesdeLinix เป็นบล็อกอันดับหนึ่งด้วยบทความที่น่าสนใจเหล่านี้ ฉันพบกุญแจที่ Yoyo โยนออกมาจากคุกที่พวกเขามี Elav ฉันคิดว่าฉันจะเก็บมันไว้

    ทักทาย Elav

  7.   เมอร์ลินเดเบียน dijo

    มีประโยชน์มากขอบคุณสำหรับการมีส่วนร่วม

  8.   เหมาะสม dijo

    มันง่ายกว่า
    lvm lvresize /dev/vg_laptpop/vl_swap -L +4G
    หากคุณใช้ LVM clear (สมมติว่าคุณต้องการสลับ 4gigas)

    1.    เหมาะสม dijo

      อย่างไรก็ตามการมีส่วนร่วมนั้นคือ p% $ ให้กับแม่โดยไม่ทราบมาก่อนว่าฉันจะบันทึก xDDDD ได้กี่รูปแบบ

  9.   invisible15 dijo

    ฉันมีพาร์ติชั่น swap สองพาร์ติชั่น (หนึ่งอันในฮาร์ดไดรฟ์แต่ละตัว) และมี ram 1GB ฉันใช้ swap อย่างน้อยระหว่าง 200mb ถึง 500mb

  10.   คาล dijo

    หากคุณมีไดรฟ์ปากกา USB รุ่นเก่าหลายตัวคุณสามารถสลับบนอุปกรณ์ Raid 0 ของ N USB ได้ซึ่งจะเร่งประสิทธิภาพการแลกเปลี่ยนตามสัดส่วนของอุปกรณ์ USB ที่เจาะทะลุและเมื่อใดก็ตามที่เป็นไปได้ในฮับรูทที่แตกต่างกัน - ฉันคิดว่า! -. คุณต้องแจ้งตัวเองเกี่ยวกับการสนับสนุนดั้งเดิมของ raid โดย linux soft
    ลิงค์สำหรับข้อมูลเพิ่มเติม:
    http://www.kriptopolis.com/raid-1
    หรือการค้นหาทั่วไป
    https://www.google.es/search?q=raid+por+soft+en+linux&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=fflb

    1.    คาล dijo

      ฉันลืมบอกไปว่าการจู่โจมสามารถทำได้ที่ระดับพาร์ติชัน ดังนั้นหากเดือย usb มีขนาดไม่เท่ากันคุณสามารถสร้างพาร์ติชั่นให้มีขนาดของสไปค์ที่เล็กที่สุดและรูที่เหลือของยูเอสบีที่ใหญ่กว่าสามารถใช้กับสิ่งอื่น ๆ หรือเพื่อแลกเปลี่ยนเพิ่มเติมในระดับไฟล์หรือพาร์ติชัน ... ซึ่งก็คือ เป็นไปไม่ได้หรือไม่ที่จะทำการ raid กับไฟล์แลกเปลี่ยนหลาย ๆ ไฟล์ด้วยวิธีการที่คุณอธิบาย ??? …

  11.   คาร์ลอ dijo

    บทช่วยสอนที่ยอดเยี่ยมฉันถูกกระตุ้นให้เพิ่มการแลกเปลี่ยนที่ฉันมี (และ)

  12.   Jorge dijo

    แบบนี้ก็ดูดี ฉันจะลองกับหน่วยความจำ usb

  13.   เดอะกิลลอกซ์ dijo

    ยอดเยี่ยม…มันทำงานบนโทรศัพท์มือถือ Android หรือไม่? ฉันมีเคอร์เนลที่กำหนดเองแล้ว แต่ไม่ต้องการแบ่งพาร์ติชัน sd ฉันเดาว่านี่จะต้องได้ผล

  14.   เดลูกา dijo

    บทความที่ดีมาก

    อีกแนวคิดที่น่าสนใจเกี่ยวกับการแลกเปลี่ยนลินุกซ์คือความรวดเร็ว:

    http://www.sysadmit.com/2016/10/linux-swap-y-swappiness.html

  15.   เดวิดโคลแมน dijo

    สวัสดีชื่อของฉันคือ David Coleman ฉันอายุ 32 ปีจากโอไฮโอฉันกำลังศึกษาการเขียนโปรแกรมคอมพิวเตอร์ && วิทยาการคอมพิวเตอร์เพื่อรับปริญญา Associates ของฉันทั้งสองในเวลา 4 ปี!,
    คำถามของฉันเกี่ยวกับแอปพลิเคชัน (SWAP / no-root) APK นั้นง่ายหลังจากไฟล์ swap / swp ที่ฉันสร้างสำหรับ 2Gb 999Mb × 2 โดยพื้นฐานแล้วจะจัดเก็บที่ใดใน Android ของฉัน ฉันใช้ 3Gb ram 32gb memeroy +32 gb SanDisk SD เช่นกันบูต Stylo 5 โดยเพิ่มอุปกรณ์ Unrooted มือถือด้วย bootloader ปลดล็อคและซิมปลดล็อค! คำแนะนำใด ๆ ที่ชื่นชมยินดีอย่างยิ่ง thx
    Urs SENCERLY, David Coleman 32 จากโอไฮโอ สหรัฐอเมริกา.. ?