ฉันกำลังทำโปรเจ็กต์ที่ใช้หน่วยความจำจำนวนมากใน Python และได้รับข้อผิดพลาดอยู่เรื่อยๆ (137 SIGKILL 9 อะไรทำนองนั้น) ดังนั้นฉันจึงค้นหาวิธีแก้ไขและบอกว่าให้เปลี่ยนขนาดสว็อป ฉันคัดลอกและวางคำสั่งที่พบในเทอร์มินัล และเริ่มคัดลอกไฟล์บางไฟล์:
#ปิดการใช้งานการแลกเปลี่ยน
sudo swapoff -a
# สร้างไฟล์ SWAP ตรวจสอบว่าคุณมีพื้นที่เพียงพอในฮาร์ดดิสก์
# นี่คือขนาดของฉัน ขนาดรวมคือ bs*count B
sudo dd if=/dev/zero of=/swapfile bs=1024 count=136314880 status=progress
# เอาต์พุต:
# 139458259968 ไบต์ (139 GB, 130 GiB) คัดลอก, 472 วินาที, 295 MB/วินาที
#136314880+0 บันทึกใน
#136314880+0 บันทึกออก
# 139586437120 ไบต์ (140 GB, 130 GiB) คัดลอก, 472.372 วินาที, 296 MB/วินาที
# ทำเครื่องหมายไฟล์เป็นพื้นที่ SWAP:
sudo mkswap /swapfile
# เอาต์พุต:
# การตั้งค่า swapspace เวอร์ชัน 1 ขนาด = 130 GiB (139586433024 ไบต์)
# ไม่มีป้ายกำกับ UUID=25a565d9-d19c-4913-87a5-f02750ab625d
#เปิดใช้งานการแลกเปลี่ยน
sudo swapon /swapfile
# ตรวจสอบว่ามีการสร้าง SWAP หรือไม่
sudo swapon --แสดง
# เอาต์พุต:
# ชื่อ ประเภท ขนาด ที่ใช้ก่อน
# /swapfile ไฟล์ 130G 0B -2
# เมื่อตั้งค่าทุกอย่างเรียบร้อยแล้ว คุณต้องตั้งค่าไฟล์ SWAP เป็นถาวร มิฉะนั้น คุณจะสูญเสีย SWAP หลังจากรีบูต เรียกใช้คำสั่งนี้:
echo '/swapfile ไม่มีการแลกเปลี่ยน sw 0 0' | sudo tee -a /etc/fstab
หลังจากนั้นไม่นาน (ฉันคิดว่าถึงประมาณ 40 GB) ระบบของฉันก็ส่งข้อความแจ้งว่าพื้นที่เต็ม จากนั้นเทอร์มินัลทำงานเสร็จ ฉันวางคำสั่งที่เหลือเพื่อตั้งค่าการแลกเปลี่ยน และรีบูตเครื่องคอมพิวเตอร์ของฉัน จากนั้นเมื่อฉันบูตเครื่องอีกครั้ง ข้อความนี้แสดงว่า:
/dev/nvme0n1p6: สะอาด, 1090638/907808 ไฟล์, 35521979/36801792 บล็อก
และจะไม่บูตหลังจากนี้ ฉันเริ่มต้นในโหมดการกู้คืน ลองใช้ตัวเลือกบางอย่างที่นั่น (เช่น ล้างข้อมูล - ลองเพิ่มพื้นที่ว่าง ฯลฯ) แต่ไม่มีอะไรทำงาน นี่คือบทสรุปของระบบ:
ฉันเชื่อว่าฉันควรตรวจสอบว่าฉันมีพื้นที่เพียงพอในดิสก์หรือไม่ก่อนที่จะทำการเปลี่ยนแปลงการสลับ นอกจากนี้ ฉันคิดว่าสิ่งนี้อัปเกรดการแลกเปลี่ยนของฉันเป็น 40 + GB เมื่อฉันต้องการให้สูงสุด 8 GB... ฉันจะแก้ปัญหานี้และบันทึกข้อมูลของฉันได้อย่างไร โครงการนี้สำคัญมากสำหรับฉัน และฉันก็ไม่อยากเสียมันไป... ฉันสามารถย้อนกลับการเปลี่ยนแปลงที่ทำในเทอร์มินัลในโหมดการกู้คืนได้หรือไม่
ขอบคุณล่วงหน้า!!!