If คุณได้รับ error=12, Cannot allocate memory or error=12, Not enough space หมายความว่าระบบของคุณไม่มีหน่วยความจำหรือพื้นที่สว็อปเมื่อ Java พยายามแยก กระบวนการ ปัญหาเกิดขึ้นกับวิธีที่ Java จัดสรรหน่วยความจำเมื่อดำเนินการประมวลผล เมื่อ Java รันโปรเซส มันจะต้อง fork แล้ว exec
ฉันจะแก้ไขความล้มเหลวในการจัดสรรหน่วยความจำได้อย่างไร
วิธีแก้ปัญหา
- กดปุ่มโลโก้ Windows + ปุ่ม Pause/Break เพื่อเปิดคุณสมบัติของระบบ
- เลือกการตั้งค่าระบบขั้นสูง จากนั้นเลือกการตั้งค่าในส่วนประสิทธิภาพบนแท็บขั้นสูง
- เลือกแท็บขั้นสูง จากนั้นเลือกเปลี่ยนในส่วนหน่วยความจำเสมือน
ฉันจะจัดสรรหน่วยความจำเซิร์ฟเวอร์ได้อย่างไร
วิธีจัดสรรหน่วยความจำให้กับกระบวนการบนเซิร์ฟเวอร์
- เปิดโปรแกรมหรือแอปพลิเคชั่นพื้นหลังที่คุณต้องการจัดสรรหน่วยความจำให้ จากนั้นคลิกขวาที่ทาสก์บาร์ของ Windows แล้วเลือก "เริ่มตัวจัดการงาน" จากเมนูบริบท
- เปิดแท็บ "กระบวนการ" และเลื่อนดูรายการไปยังกระบวนการของโปรแกรมของคุณ
ฉันจะจัดสรรหน่วยความจำเพิ่มเติมให้กับ Linux ได้อย่างไร
Linux มี API ที่หลากหลายสำหรับการจัดสรรหน่วยความจำ คุณสามารถจัดสรร ชิ้นส่วนขนาดเล็กโดยใช้ kmalloc หรือ kmem_cache_alloc แฟมิลี่ พื้นที่ขนาดใหญ่ที่ต่อเนื่องกันโดยใช้ vmalloc และอนุพันธ์ของมัน หรือคุณสามารถขอหน้าได้โดยตรงจากตัวจัดสรรหน้าด้วย alloc_pages
จะตรวจสอบการใช้หน่วยความจำได้อย่างไรลินุกซ์?
การตรวจสอบการใช้หน่วยความจำใน Linux โดยใช้ GUI
- นำทางเพื่อแสดงแอปพลิเคชัน
- เข้าสู่การตรวจสอบระบบในแถบค้นหาและเข้าถึงแอปพลิเคชัน
- เลือกแท็บทรัพยากร
- ภาพรวมกราฟิกของการใช้หน่วยความจำของคุณแบบเรียลไทม์ รวมถึงข้อมูลในอดีตจะปรากฏขึ้น