Score:1

จัดการการแลกเปลี่ยน / หน่วยความจำโดยอัตโนมัติ

ธง bd

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

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

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

ความแตกต่างดูเหมือนจะเป็นว่า Ubuntu ไม่เคยแก้ไขสถานการณ์ รักษาขนาด swap ให้คงที่และส่งผลให้ล็อคทุก ๆ ห้าวินาทีตลอดไป จนกระทั่งเกิดความล้มเหลวอย่างรุนแรงและ Firefox หายไปอย่างไร้ร่องรอย เป็นสิ่งที่แทบจะไม่เคยเกิดขึ้นใน OS อื่นเลย สิ่งสำคัญที่สุดคือฉันไม่สามารถโต้ตอบกับส่วนที่เหลือของระบบได้

ฉันไม่รู้ แต่ฉันเข้าใจว่านี่จะไม่เป็นปัญหาหากขนาดสวอปเพิ่มขึ้นตามความต้องการ สำเร็จได้อย่างไร? มีการจัดการหน่วยความจำที่ดีกว่านี้หรือไม่?


ทดสอบการปรับปรุง

หลังจาก (ไม่เร็วนัก) ทำการทดสอบด่วนที่แนะนำในความคิดเห็นที่ฉันเพิ่มขนาดของ swapfile เป็นสองเท่า ฉันสามารถสรุปได้ว่ามันสร้างความแตกต่างในโลก ระบบยังคงตอบสนองตลอดการโหลดเดียวกัน ฉันสามารถสรุปได้ว่าขนาดสว็อปแบบปรับได้จะช่วยบรรเทาปัญหาที่อธิบายไว้ได้

$ ฟรี -h
              รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
หน่วยความจำ: 3.7Gi 3.1Gi 129Mi 374Mi 566Mi 105Mi
สลับ: 4.0Gi 3.0Gi 988Mi

$sysctl vm.swappiness
vm.swappiness = 60

$ แลกเปลี่ยน -s
ชื่อไฟล์ ประเภท ขนาด ลำดับความสำคัญที่ใช้
/swapfile_4G.img ไฟล์ 4194300 3180664 20

หมายเหตุเกี่ยวกับฮาร์ดแวร์

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

RAM ขนาด 4 GB ใช้งานได้ดีกับกรณีการใช้งานส่วนใหญ่. ใน Ubuntu ใน Windows ใน macOS สิ่งที่ดูเหมือนว่าจะทำงานได้ดีใน Windows และ macOS คือเมื่อคุณใช้พื้นที่สว็อปที่จัดสรรไว้จนหมด

กล่าวโดยย่อคือทันทีเดียวกับที่โซลูชันทำให้ Ubuntu ทำงาน สมควร กลายเป็น "ซื้อฮาร์ดแวร์ใหม่" จุดรวมของการทำงานมันกลายเป็นที่สงสัยสำหรับเครื่องเหล่านี้ทั้งหมด การอัปเกรดฮาร์ดแวร์อยู่นอกเหนือขอบเขตสำหรับคำถามนี้

ข้อกำหนดสำหรับ Ubuntu รุ่นมาตรฐานคือหน่วยความจำ 4 GB

Zanna avatar
kr flag
ความคิดเห็น [ย้ายไปที่แชท] (https://chat.stackexchange.com/rooms/126367/discussion-on-question-by-andreas-automatically-manage-swap-memory) (หวังว่าจะกลับมาโฟกัสที่คำถามของ มัน / เอฟเฟกต์ "adaptive swap" สามารถทำได้บน Ubuntu อย่างไร)
Score:1
ธง in

เคอร์เนล Linux นั้น... ไม่แน่นอนในแง่ของการรองรับการแลกเปลี่ยน Swap เป็นพลเมืองชั้นสอง จากมุมมองของนักพัฒนาหลายคน สิ่งที่ฉันหมายถึงก็คืออัลกอริทึมที่ใช้ในการดีดออกและดึงหน้านั้นค่อนข้างเรียบง่าย และสามารถพังได้เมื่อมีหน้าที่ใช้บ่อยจำนวนมาก

ทางออกที่ดีน่าจะเป็นการใช้ zswap สิ่งนี้คือการตั้งค่าก้อนหน่วยความจำให้เป็นหน่วยความจำแบบบีบอัดซึ่งหน้าจะถูกดีดออก ในการดำเนินการนี้ ให้แก้ไขพารามิเตอร์การบูตเคอร์เนลเพื่อเพิ่ม zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold. วิธีที่ง่ายที่สุดในการทำเช่นนี้บนระบบ Ubuntu คือการเพิ่มลงใน /etc/default/grub ไฟล์ ซึ่งเป็นส่วนหนึ่งของไฟล์ GRUB_CMDLINE_LINUX_DEFAULT กุญแจ. วิธีนี้จะช่วยเพิ่มปริมาณข้อมูลที่สามารถจัดเก็บใน RAM ได้อย่างมีประสิทธิภาพ ลด IO ของดิสก์และป้องกันการล็อก

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

หากต้องการเพิ่มพื้นที่สว็อป (โดยไม่ต้องแบ่งพาร์ติชั่นดิสก์ของคุณใหม่) คุณสามารถใช้ swapfile ในการทำเช่นนี้ให้เรียกใช้ sudo dd if=/dev/zero of=/swapfile count=1M bs=1024 status=progressซึ่งคัดลอก 1 ล้านบล็อกขนาด 1024 ไบต์ (เช่น 1 กิกะไบต์) ลงในไฟล์ จากนั้นเรียกใช้ sudo chmod 0600 /swapfile และ sudo mkswap /swapfile เพื่อเตรียมไฟล์สำหรับใช้เป็น swap เพิ่มลงใน /etc/fstab เพื่อให้ใช้งานได้เสมอ โดยต่อท้ายบรรทัดต่อไปนี้ในไฟล์นั้น: /swapfile swap ค่าเริ่มต้นของการแลกเปลี่ยน 0 0. จบขั้นตอนโทร sudo swapon -aซึ่งเปิดใช้งาน swapfile

ที่มา: ตัวฉันเองใช้ swapfiles และ zswap และอ้างอิง bash_histroy และ Arch wiki สำหรับคำสั่ง

bd flag
ขอบคุณสำหรับคำตอบที่เกี่ยวข้องฉันเพิ่งลองใช้การจัดสรรพื้นที่สลับแบบไดนามิกโดยใช้แพ็คเกจ `swapspace` ที่พร้อมใช้งาน ตามที่แนะนำในความคิดเห็น และคิดว่าตอนนี้ฉันจะดูคำแนะนำการบีบอัดหน่วยความจำของคุณ ระบบที่เป็นปัญหามีกระบวนการที่เรียกว่า `zswap-shrink' ทำงานอยู่ -- ไม่แน่ใจว่านั่นแสดงว่าเปิดใช้งาน zswap ในทางใดทางหนึ่งหรือไม่
bd flag
คำถามข้อหนึ่ง: มีวิธีใดบ้างที่ฉันสามารถยืนยันได้ว่าการบีบอัดหน่วยความจำทำงานได้หลังจากเปิดใช้งาน อย่างน้อยก็ดูเหมือนโปร่งใสอย่างสมบูรณ์ เช่น การตรวจสอบระบบไป
Calum McConnell avatar
in flag
จาก [คำตอบนี้](https://unix.stackexchange.com/a/412760/450166) วิธีที่ง่ายที่สุดคือ âsudo grep -R /sys/kernel/debug/zswapâ Grep ถูกใช้เนื่องจากไฟล์ใน /debug/ tree ไม่สามารถมองเห็นได้โดยผู้ใช้ ดังนั้นการขยายเชลล์จะไม่ทำงาน นอกจากนี้ยังเพิ่มป้ายกำกับไฟล์ถัดจากตัวเลขแต่ละตัว ทำให้สามารถอ่านข้อมูลได้จริง
bd flag
ขอขอบคุณ. คุณต้องการละเว้น regex (`.`) หรือไม่ หากไม่มีสิ่งนี้ สิ่งแปลกๆ จะเกิดขึ้น :) ด้วยสิ่งนี้ ฉันได้รับสถิติ อย่างไรก็ตาม ทุกอย่างเป็นศูนย์แม้ที่ RAM 93% และการใช้สว็อป 40% ไม่แน่ใจว่าจะตีความอย่างไร
Score:0
ธง bd

ตามที่กล่าวไว้ในความคิดเห็นโดย @Terrance สว็อปสเปซ เป็นวิธีแก้ปัญหานี้

ฉลาดติดตั้ง swapspace

ตอนนี้สิ่งที่คุณต้องควบคุมระบบของคุณคือพื้นที่เก็บข้อมูลฟรีบางส่วน ทดสอบและ ทำงาน.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา