Laravel: failed to open stream: Too many open files

Office Worker with Mountain of Paperwork公司的 Team 開發的產品也越來越龐大了,API 的部份依賴 Laravel 內建整合的 PHPUnit 來進行自動化測試。

這回從 git repo 上拉了新的 code 後,照慣例跑一下 phpunit,然後就掛了…

PHP Warning: failed to open stream: Too many open files

好像沒見過這樣的訊息。Google 一下才知道是踩到了 Mac OS 檔案開啟上限的地雷。

$ 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) 256 # 這行
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited

ulimit -n 1024 臨時改為 1024 就可以正常跑完測試了。一時好奇借了同事的電腦看看,都是 Macbook Air (with Yosemite),其他人的 open files 值是 2560 耶,為什麼我的只有 256 ??? 不解。





Leave a Reply

Your email address will not be published. Required fields are marked *