ไฟล์คำสั่ง / การกำหนดค่าใดควบคุมการเปิดไฟล์ จำกัด บน OS X มีคำสั่งต่าง ๆ สำหรับ OS X 10.5 / 10.6 / 10.7 หรือไม่ ตัวเลือกที่ผมสำรวจด้านล่างนี้มีulimit
, sysctl
และlaunchctl
"เห็นได้ชัดว่ามีไฟล์เปิดมากเกินไป" เป็นข้อผิดพลาดทั่วไปของ Leopard บางทีอาจเป็น OS X รุ่นอื่น:
มีหลายวิธี (ที่เกี่ยวข้อง?) เพื่อดูข้อ จำกัด ของไฟล์ที่เปิดอยู่:
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 2048
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 512
virtual memory (kbytes, -v) unlimited
$ launchctl limit
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 1024 2048
maxfiles 2048 4096
$ sysctl -a | grep files
kern.maxfiles = 32768
kern.maxfilesperproc = 16384
kern.maxfiles: 32768
kern.maxfilesperproc: 16384
kern.num_files: 2049
มีการอ้างสิทธิ์ในโพสต์ด้านบนบางรายการที่สามารถแก้ไขได้ด้วยคำสั่งต่อไปนี้:
sudo launchctl limit maxfiles 16384 32768
sudo ulimit -n 32768
sudo sysctl -w kern.maxfilesperproc=16384
sudo sysctl -w kern.maxfiles=32768
อย่างไรก็ตามจากคำสั่งข้างต้นเฉพาะคำสั่งเท่านั้นที่sysctl
มีผลกระทบที่ชัดเจน (เช่นulimit -n
และlaunchctl limit
ไม่แสดงการเปลี่ยนแปลงหลังจากป้อนคำสั่งข้างต้นแล้วในขณะที่sysctl -a
แสดงการเปลี่ยนแปลงที่ร้องขอ)
ตำแหน่งที่สอดคล้องกันเพื่อเปลี่ยนพารามิเตอร์เหล่านี้สำหรับระบบปฏิบัติการ ได้แก่ :
/etc/sysctl.conf
/etc/launchd.conf
ฉันยังค้นพบคำตอบเดียวที่อ่านว่าulimit
ควบคุมเชลล์ปัจจุบันเท่านั้น
ฉันจะปรับขีด จำกัดสูงสุดของไฟล์สูงสุด / ไฟล์สูงสุดที่เปิดได้บน macOS ได้อย่างไร