ฉันได้รับปัญหานี้มานานแล้วและฉันไม่สามารถหาได้โดยทั่วไประบบ linux (32 บิต 3.2.6-3.fc16.i686.PAE) ของฉันปฏิเสธที่จะใช้การแลกเปลี่ยน เมื่อฉันวิ่ง
$ tail /dev/zero
tail: memory exhausted
มันไม่หันไปใช้การแลกเปลี่ยนเลย .. มันเพิ่งตายหลังจากใช้ RAM จริง นี่คือรายละเอียดที่เกี่ยวข้อง
$ free -m
total used free shared buffers cached
Mem: 8076 4652 3423 0 123 543
-/+ buffers/cache: 3985 4090
Swap: 8192 116 8076
$ cat /proc/sys/vm/swappiness
60
$ ulimit -m
unlimited
$ cat /proc/sys/vm/overcommit_ratio
50
$ cat /proc/sys/vm/overcommit_memory
0
ฉันพยายามตั้งค่าเป็น 1:
# sysctl vm.overcommit_memory=1
vm.overcommit_memory = 1
$ cat /proc/sys/vm/overcommit_memory
1
และลองอีกครั้งผลลัพธ์เดียวกัน ความคิดใด ๆ
vm.overcommit_memory=1
vm.overcommit_memory=0
ฉันเพิ่งเปลี่ยนไปและจะอัปเดตคำถามนี้เมื่อฉันรู้ว่านั่นจะหลอกลวงหรือไม่ ขอบคุณ!
tail /dev/zero
และมันใช้งานไม่ได้ การแลกเปลี่ยนยังไม่ถูกใช้ แต่free
บอกให้ฉันทราบว่าการแลกเปลี่ยนเปิดอยู่! โอ๊ะ